liupeng 5 years ago
commit
2b18658874
100 changed files with 61327 additions and 0 deletions
  1. 14 0
      code/sapparent/.gitignore
  2. 419 0
      code/sapparent/pom.xml
  3. 14 0
      code/sapparent/sapcms/.gitignore
  4. 37 0
      code/sapparent/sapcms/pom.xml
  5. 50 0
      code/sapparent/sapcms/src/main/java/org/fouram/controller/TaskController.java
  6. 49 0
      code/sapparent/sapcms/src/main/java/org/fouram/listener/SystemInitListener.java
  7. 33 0
      code/sapparent/sapcms/src/main/java/org/fouram/util/GlobleValue.java
  8. 52 0
      code/sapparent/sapcms/src/main/resources/log4j2.xml
  9. 142 0
      code/sapparent/sapcms/src/main/resources/sap.sql
  10. 53 0
      code/sapparent/sapcms/src/main/resources/spring-content.xml
  11. 50 0
      code/sapparent/sapcms/src/main/resources/spring-servlet.xml
  12. 3 0
      code/sapparent/sapcms/src/main/webapp/META-INF/MANIFEST.MF
  13. 172 0
      code/sapparent/sapcms/src/main/webapp/WEB-INF/jsp/common/base.jsp
  14. 14 0
      code/sapparent/sapcms/src/main/webapp/WEB-INF/jsp/common/footer.jsp
  15. 22 0
      code/sapparent/sapcms/src/main/webapp/WEB-INF/jsp/common/header.jsp
  16. 62 0
      code/sapparent/sapcms/src/main/webapp/WEB-INF/jsp/common/menu.jsp
  17. 278 0
      code/sapparent/sapcms/src/main/webapp/WEB-INF/jsp/index.jsp
  18. 149 0
      code/sapparent/sapcms/src/main/webapp/WEB-INF/jsp/login.jsp
  19. 140 0
      code/sapparent/sapcms/src/main/webapp/WEB-INF/jsp/sys/sysmenu/sysmenu-add.jsp
  20. 141 0
      code/sapparent/sapcms/src/main/webapp/WEB-INF/jsp/sys/sysmenu/sysmenu-edit.jsp
  21. 273 0
      code/sapparent/sapcms/src/main/webapp/WEB-INF/jsp/sys/sysmenu/sysmenu-list.jsp
  22. 124 0
      code/sapparent/sapcms/src/main/webapp/WEB-INF/jsp/sys/sysrole/button-role.jsp
  23. 120 0
      code/sapparent/sapcms/src/main/webapp/WEB-INF/jsp/sys/sysrole/sysrole-add.jsp
  24. 126 0
      code/sapparent/sapcms/src/main/webapp/WEB-INF/jsp/sys/sysrole/sysrole-edit.jsp
  25. 347 0
      code/sapparent/sapcms/src/main/webapp/WEB-INF/jsp/sys/sysrole/sysrole-list.jsp
  26. 219 0
      code/sapparent/sapcms/src/main/webapp/WEB-INF/jsp/sys/sysuser/sysuser-add.jsp
  27. 280 0
      code/sapparent/sapcms/src/main/webapp/WEB-INF/jsp/sys/sysuser/sysuser-edit.jsp
  28. 381 0
      code/sapparent/sapcms/src/main/webapp/WEB-INF/jsp/sys/sysuser/sysuser-list.jsp
  29. 105 0
      code/sapparent/sapcms/src/main/webapp/WEB-INF/web.xml
  30. 24 0
      code/sapparent/sapcms/src/main/webapp/errors/404.jsp
  31. 24 0
      code/sapparent/sapcms/src/main/webapp/errors/500.jsp
  32. BIN
      code/sapparent/sapcms/src/main/webapp/public/css/.DS_Store
  33. 6165 0
      code/sapparent/sapcms/src/main/webapp/public/css/bootstrap.css
  34. 11 0
      code/sapparent/sapcms/src/main/webapp/public/css/custom.css
  35. BIN
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/.DS_Store
  36. BIN
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/elusive/.DS_Store
  37. 85 0
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/elusive/css/animation.css
  38. 272 0
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/elusive/css/elusive-codes.css
  39. 325 0
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/elusive/css/elusive-embedded.css
  40. 272 0
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/elusive/css/elusive-ie7-codes.css
  41. 283 0
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/elusive/css/elusive-ie7.css
  42. 323 0
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/elusive/css/elusive.css
  43. BIN
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/elusive/font/elusive.eot
  44. 282 0
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/elusive/font/elusive.svg
  45. BIN
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/elusive/font/elusive.ttf
  46. BIN
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/elusive/font/elusive.woff
  47. BIN
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/fontawesome/.DS_Store
  48. 1681 0
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/fontawesome/css/font-awesome.css
  49. 4 0
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/fontawesome/css/font-awesome.min.css
  50. BIN
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/fontawesome/fonts/FontAwesome.otf
  51. BIN
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/fontawesome/fonts/fontawesome-webfont.eot
  52. 520 0
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/fontawesome/fonts/fontawesome-webfont.svg
  53. BIN
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/fontawesome/fonts/fontawesome-webfont.ttf
  54. BIN
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/fontawesome/fonts/fontawesome-webfont.woff
  55. BIN
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/glyphicons/.DS_Store
  56. BIN
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/glyphicons/glyphicons-halflings-regular.eot
  57. 229 0
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/glyphicons/glyphicons-halflings-regular.svg
  58. BIN
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/glyphicons/glyphicons-halflings-regular.ttf
  59. BIN
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/glyphicons/glyphicons-halflings-regular.woff
  60. 0 0
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/glyphicons/index.html
  61. BIN
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/linecons/.DS_Store
  62. 85 0
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/linecons/css/animation.css
  63. 49 0
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/linecons/css/linecons-codes.css
  64. 102 0
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/linecons/css/linecons-embedded.css
  65. 49 0
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/linecons/css/linecons-ie7-codes.css
  66. 60 0
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/linecons/css/linecons-ie7.css
  67. 100 0
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/linecons/css/linecons.css
  68. BIN
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/linecons/font/linecons.eot
  69. 59 0
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/linecons/font/linecons.svg
  70. BIN
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/linecons/font/linecons.ttf
  71. BIN
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/linecons/font/linecons.woff
  72. BIN
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/meteocons/.DS_Store
  73. 85 0
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/meteocons/css/animation.css
  74. 48 0
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/meteocons/css/meteocons-codes.css
  75. 101 0
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/meteocons/css/meteocons-embedded.css
  76. 48 0
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/meteocons/css/meteocons-ie7-codes.css
  77. 59 0
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/meteocons/css/meteocons-ie7.css
  78. 99 0
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/meteocons/css/meteocons.css
  79. BIN
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/meteocons/font/meteocons.eot
  80. 58 0
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/meteocons/font/meteocons.svg
  81. BIN
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/meteocons/font/meteocons.ttf
  82. BIN
      code/sapparent/sapcms/src/main/webapp/public/css/fonts/meteocons/font/meteocons.woff
  83. 1 0
      code/sapparent/sapcms/src/main/webapp/public/css/video/video-js-cdn.min.css
  84. 1302 0
      code/sapparent/sapcms/src/main/webapp/public/css/video/video-js.css
  85. 1 0
      code/sapparent/sapcms/src/main/webapp/public/css/video/video-js.min.css
  86. 5736 0
      code/sapparent/sapcms/src/main/webapp/public/css/xenon-components.css
  87. 6835 0
      code/sapparent/sapcms/src/main/webapp/public/css/xenon-core.css
  88. 2568 0
      code/sapparent/sapcms/src/main/webapp/public/css/xenon-forms.css
  89. 6952 0
      code/sapparent/sapcms/src/main/webapp/public/css/xenon-skins.css
  90. 22561 0
      code/sapparent/sapcms/src/main/webapp/public/css/xenon.css
  91. BIN
      code/sapparent/sapcms/src/main/webapp/public/excel/exportOnlineCase.xlsx
  92. BIN
      code/sapparent/sapcms/src/main/webapp/public/excel/user.xlsx
  93. BIN
      code/sapparent/sapcms/src/main/webapp/public/images/.DS_Store
  94. BIN
      code/sapparent/sapcms/src/main/webapp/public/images/album-image-full.jpg
  95. BIN
      code/sapparent/sapcms/src/main/webapp/public/images/album-img-1.png
  96. BIN
      code/sapparent/sapcms/src/main/webapp/public/images/album-img-2.png
  97. BIN
      code/sapparent/sapcms/src/main/webapp/public/images/album-img-3.png
  98. BIN
      code/sapparent/sapcms/src/main/webapp/public/images/album-img-4.png
  99. BIN
      code/sapparent/sapcms/src/main/webapp/public/images/album-img-5.png
  100. 0 0
      code/sapparent/sapcms/src/main/webapp/public/images/album-img-6.png

+ 14 - 0
code/sapparent/.gitignore

@@ -0,0 +1,14 @@
+/target
+/.settings
+/.classpath
+/.project
+/work
+/.tomcatplugin
+/sshe.log
+/.idea
+/hmss.iml
+/hmss.log
+/.tomcatplugin
+/src/main/resources/rebel.xml
+/.#webclasspath
+/src/main/webapp/*.#webclasspath

+ 419 - 0
code/sapparent/pom.xml

@@ -0,0 +1,419 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>org.fouram</groupId>
+	<artifactId>sapparent</artifactId>
+	<version>0.1.0</version>
+	<packaging>pom</packaging>
+	<name>sapparent</name>
+	<modules>
+		<module>sapservice</module>
+		<module>sapcms</module>
+	</modules>
+	<properties>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+		<spring.version>4.3.0.RELEASE</spring.version>
+		<spring-session.version>1.3.0.RELEASE</spring-session.version>
+		<spring-data-redis.version>1.8.1.RELEASE</spring-data-redis.version>
+		<mysql.version>5.1.39</mysql.version>
+		<mybatis.version>3.2.1</mybatis.version>
+		<mybatis-spring.version>1.2.5</mybatis-spring.version>
+		<slf4j.version>1.7.9</slf4j.version>
+		<log4j.version>2.8.2</log4j.version>
+		<druid.version>1.0.27</druid.version>
+		<fastjson.version>1.2.28</fastjson.version>
+		<jedis.version>2.9.0</jedis.version>
+		<redisson.version>3.3.1</redisson.version>
+		<jackson.version>2.8.6</jackson.version>
+		<shiro.version>1.3.2</shiro.version>
+		<tomcat-coyote.version>7.0.85</tomcat-coyote.version>
+		<tomcat-catalina.version>7.0.85</tomcat-catalina.version>
+		<junit.version>4.12</junit.version>
+		<commons-net.version>3.4</commons-net.version>
+		<javax.servlet-api.version>3.1.0</javax.servlet-api.version>
+		<jstl.version>1.2</jstl.version>
+		<commons-lang3.version>3.4</commons-lang3.version>
+		<commons-lang.version>2.6</commons-lang.version>
+		<commons-codec.version>1.9</commons-codec.version>
+		<commons-digester.version>2.0</commons-digester.version>
+		<commons-beanutils.version>1.9.2</commons-beanutils.version>
+		<commons-fileupload.version>1.3.1</commons-fileupload.version>
+		<commons-io.version>2.5</commons-io.version>
+		<commons-logging.version>1.2</commons-logging.version>
+		<quartz-version>2.2.2</quartz-version>
+		<weixin-java-cp.version>3.5.0</weixin-java-cp.version>
+		<lombok.version>1.18.10</lombok.version>
+	</properties>
+
+	<dependencies>
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>${junit.version}</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>commons-net</groupId>
+			<artifactId>commons-net</artifactId>
+			<version>${commons-net.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.commons</groupId>
+			<artifactId>commons-lang3</artifactId>
+			<version>${commons-lang3.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>commons-lang</groupId>
+			<artifactId>commons-lang</artifactId>
+			<version>${commons-lang.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>commons-codec</groupId>
+			<artifactId>commons-codec</artifactId>
+			<version>${commons-codec.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>commons-digester</groupId>
+			<artifactId>commons-digester</artifactId>
+			<version>${commons-digester.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>commons-beanutils</groupId>
+			<artifactId>commons-beanutils</artifactId>
+			<version>${commons-beanutils.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>commons-fileupload</groupId>
+			<artifactId>commons-fileupload</artifactId>
+			<version>${commons-fileupload.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>commons-io</groupId>
+			<artifactId>commons-io</artifactId>
+			<version>${commons-io.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>commons-logging</groupId>
+			<artifactId>commons-logging</artifactId>
+			<version>${commons-logging.version}</version>
+		</dependency>
+		<!-- mybatis -->
+		<dependency>
+			<groupId>org.mybatis</groupId>
+			<artifactId>mybatis</artifactId>
+			<version>${mybatis.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.mybatis</groupId>
+			<artifactId>mybatis-spring</artifactId>
+			<version>${mybatis-spring.version}</version>
+		</dependency>
+		<!-- quartz -->
+		<dependency>
+			<groupId>org.quartz-scheduler</groupId>
+			<artifactId>quartz</artifactId>
+			<version>${quartz-version}</version>
+		</dependency>
+		<!-- spring核心包 -->
+		<dependency>
+			<groupId>org.springframework</groupId>
+			<artifactId>spring-jdbc</artifactId>
+			<version>${spring.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework</groupId>
+			<artifactId>spring-core</artifactId>
+			<version>${spring.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework</groupId>
+			<artifactId>spring-context-support</artifactId>
+			<version>${spring.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework</groupId>
+			<artifactId>spring-test</artifactId>
+			<version>${spring.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework</groupId>
+			<artifactId>spring-web</artifactId>
+			<version>${spring.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework</groupId>
+			<artifactId>spring-webmvc</artifactId>
+			<version>${spring.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework.session</groupId>
+			<artifactId>spring-session</artifactId>
+			<version>${spring-session.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework.data</groupId>
+			<artifactId>spring-data-redis</artifactId>
+			<version>${spring-data-redis.version}</version>
+		</dependency>
+		<!-- websocket -->
+		<dependency>
+			<groupId>org.springframework</groupId>
+			<artifactId>spring-websocket</artifactId>
+			<version>${spring.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework</groupId>
+			<artifactId>spring-messaging</artifactId>
+			<version>${spring.version}</version>
+		</dependency>
+		<!-- 缓存 -->
+		<dependency>
+			<groupId>redis.clients</groupId>
+			<artifactId>jedis</artifactId>
+			<version>${jedis.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.redisson</groupId>
+			<artifactId>redisson</artifactId>
+			<version>${redisson.version}</version>
+		</dependency>
+		<!-- 数据库 -->
+		<dependency>
+			<groupId>mysql</groupId>
+			<artifactId>mysql-connector-java</artifactId>
+			<version>${mysql.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>com.alibaba</groupId>
+			<artifactId>druid</artifactId>
+			<version>${druid.version}</version>
+			<type>jar</type>
+		</dependency>
+		<!-- alibaba工具包 -->
+		<dependency>
+			<groupId>com.alibaba</groupId>
+			<artifactId>fastjson</artifactId>
+			<version>${fastjson.version}</version>
+		</dependency>
+		<!-- 导入java ee -->
+		<dependency>
+			<groupId>javax.servlet</groupId>
+			<artifactId>javax.servlet-api</artifactId>
+			<version>${javax.servlet-api.version}</version>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>javax.servlet</groupId>
+			<artifactId>jstl</artifactId>
+			<version>${jstl.version}</version>
+			<scope>runtime</scope>
+		</dependency>
+		<!-- 日志文件管理包 -->
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-api</artifactId>
+			<version>${slf4j.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>log4j</groupId>
+			<artifactId>log4j</artifactId>
+			<version>1.2.17</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-core</artifactId>
+			<version>${log4j.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-api</artifactId>
+			<version>${log4j.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-slf4j-impl</artifactId>
+			<version>${log4j.version}</version>
+		</dependency>
+		<!-- jackson -->
+		<dependency>
+			<groupId>com.fasterxml.jackson.core</groupId>
+			<artifactId>jackson-core</artifactId>
+			<version>${jackson.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>com.fasterxml.jackson.core</groupId>
+			<artifactId>jackson-databind</artifactId>
+			<version>${jackson.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>com.fasterxml.jackson.core</groupId>
+			<artifactId>jackson-annotations</artifactId>
+			<version>${jackson.version}</version>
+		</dependency>
+		<!-- shiro -->
+		<dependency>
+			<groupId>org.apache.shiro</groupId>
+			<artifactId>shiro-spring</artifactId>
+			<version>${shiro.version}</version>
+		</dependency>
+		<!-- poi -->
+		<dependency>
+			<groupId>org.apache.poi</groupId>
+			<artifactId>poi</artifactId>
+			<version>3.14</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.poi</groupId>
+			<artifactId>poi-ooxml</artifactId>
+			<version>3.14</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.poi</groupId>
+			<artifactId>poi-ooxml-schemas</artifactId>
+			<version>3.14</version>
+		</dependency>
+		<dependency>
+			<groupId>com.ning</groupId>
+			<artifactId>async-http-client</artifactId>
+			<version>1.8.13</version>
+			<type>jar</type>
+		</dependency>
+		<dependency>
+			<groupId>com.github.binarywang</groupId>
+			<artifactId>java-emoji-converter</artifactId>
+			<version>0.1.1</version>
+		</dependency>
+		<dependency>
+			<groupId>net.coobird</groupId>
+			<artifactId>thumbnailator</artifactId>
+			<version>0.4.8</version>
+		</dependency>
+		<dependency>
+			<groupId>commons-httpclient</groupId>
+			<artifactId>commons-httpclient</artifactId>
+			<version>3.0.1</version>
+		</dependency>
+		<dependency>
+			<groupId>com.drewnoakes</groupId>
+			<artifactId>metadata-extractor</artifactId>
+			<version>2.11.0</version>
+		</dependency>
+		<dependency>
+			<groupId>com.lmax</groupId>
+			<artifactId>disruptor</artifactId>
+			<version>3.4.2</version>
+		</dependency>
+		<dependency>
+			<groupId>com.belerweb</groupId>
+			<artifactId>pinyin4j</artifactId>
+			<version>2.5.1</version>
+		</dependency>
+		<dependency>
+			<groupId>com.itextpdf</groupId>
+			<artifactId>itextpdf</artifactId>
+			<version>5.5.10</version>
+		</dependency>
+		<dependency>
+			<groupId>com.github.binarywang</groupId>
+			<artifactId>weixin-java-cp</artifactId>
+			<version>${weixin-java-cp.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.projectlombok</groupId>
+			<artifactId>lombok</artifactId>
+			<version>${lombok.version}</version>
+			<scope>provided</scope>
+		</dependency>
+	</dependencies>
+	<profiles>
+		<profile>
+			<id>develop</id>
+			<properties>
+				<env>src/main/resources/env/develop</env>
+			</properties>
+			<activation>
+				<activeByDefault>true</activeByDefault>
+			</activation>
+		</profile>
+		<profile>
+			<id>product</id>
+			<properties>
+				<env>src/main/resources/env/product</env>
+			</properties>
+		</profile>
+	</profiles>
+	<build>
+		<finalName>fouram</finalName>
+		<resources>
+			<resource>
+				<directory>src/main/resources</directory>
+				<excludes>
+					<exclude>env/develop/**</exclude>
+					<exclude>env/product/**</exclude>
+				</excludes>
+			</resource>
+			<resource>
+				<directory>src/main/java</directory>
+				<includes>
+					<include>**/*.xml</include>
+				</includes>
+				<filtering>false</filtering>
+			</resource>
+			<resource>
+				<directory>${env}</directory>
+			</resource>
+		</resources>
+		<plugins>
+			<!-- 编译的时候使用JDK8和UTF8编码 -->
+			<plugin>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<configuration>
+					<source>1.8</source>
+					<target>1.8</target>
+					<encoding>UTF-8</encoding>
+				</configuration>
+			</plugin>
+			<!-- 将源码打成jar包 -->
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-source-plugin</artifactId>
+				<version>3.0.1</version>
+				<configuration>
+					<attach>true</attach>
+				</configuration>
+				<executions>
+					<execution>
+						<phase>compile</phase>
+						<goals>
+							<goal>jar</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+			<!-- 编译jar包 -->
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-jar-plugin</artifactId>
+				<configuration>
+					<archive>
+						<addMavenDescriptor>false</addMavenDescriptor>
+						<manifest>
+							<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
+							<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
+						</manifest>
+					</archive>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.tomcat.maven</groupId>
+				<artifactId>tomcat7-maven-plugin</artifactId>
+				<version>2.2</version>
+				<configuration>
+					<port>8080</port> 
+					<uriEncoding>UTF-8</uriEncoding>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+</project>

+ 14 - 0
code/sapparent/sapcms/.gitignore

@@ -0,0 +1,14 @@
+/target
+/.settings
+/.classpath
+/.project
+/work
+/.tomcatplugin
+/sshe.log
+/.idea
+/hmss.iml
+/hmss.log
+/.tomcatplugin
+/src/main/resources/rebel.xml
+/.#webclasspath
+/src/main/webapp/*.#webclasspath

+ 37 - 0
code/sapparent/sapcms/pom.xml

@@ -0,0 +1,37 @@
+<?xml version="1.0"?>
+<project
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.fouram</groupId>
+		<artifactId>sapparent</artifactId>
+		<version>0.1.0</version>
+	</parent>
+	<artifactId>sapcms</artifactId>
+	<packaging>war</packaging>
+	<name>sapcms Maven Webapp</name>
+	<url>http://maven.apache.org</url>
+	<dependencies>
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>${junit.version}</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.fouram</groupId>
+			<artifactId>sapservice</artifactId>
+			<version>0.1.0</version>
+			<exclusions>
+				<exclusion>
+					<groupId>*</groupId>
+					<artifactId>*</artifactId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+	</dependencies>
+	<build>
+		<finalName>sapcms</finalName>
+	</build>
+</project>

+ 50 - 0
code/sapparent/sapcms/src/main/java/org/fouram/controller/TaskController.java

@@ -0,0 +1,50 @@
+package org.fouram.controller;
+
+import org.fouram.core.base.controller.BaseController;
+import org.fouram.core.util.AppUtil;
+import org.fouram.core.util.AppUtil.ResultConstant;
+import org.fouram.core.util.LoggerUtil;
+import org.fouram.service.TaskService;
+import org.fouram.service.TestUserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+@Controller
+@RequestMapping(value = "/task")
+public class TaskController extends BaseController {
+
+	@Autowired
+	private TaskService taskService;
+	@Autowired
+	private TestUserService testUserService;
+
+	@RequestMapping(value = "/syncWeixinUser", produces = "application/json;charset=utf-8")
+	@ResponseBody
+	public Object syncWeixinUser() {
+		try {
+			taskService.syncWeixinUser();
+			return AppUtil.success();
+		} catch (Exception e) {
+			LoggerUtil.error(e);
+			return AppUtil.error(ResultConstant.WEB_ERR_MSG);
+		}
+	}
+	
+	/**
+	 * http://localhost:8080/sapcms/task/createOrUpdateWXUsersAnon
+	 * @return
+	 */
+	@RequestMapping(value = "/createOrUpdateWXUsersAnon", produces = "application/json;charset=utf-8")
+	@ResponseBody
+	public Object createOrUpdateWXUsersAnon() {
+		try {
+			testUserService.createOrUpdateWXUsers();
+			return AppUtil.success();
+		} catch (Exception e) {
+			LoggerUtil.error(e);
+			return AppUtil.error(ResultConstant.WEB_ERR_MSG);
+		}
+	}
+}

+ 49 - 0
code/sapparent/sapcms/src/main/java/org/fouram/listener/SystemInitListener.java

@@ -0,0 +1,49 @@
+package org.fouram.listener;
+
+import javax.servlet.ServletContext;
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+
+import org.fouram.core.base.constants.SysConstants;
+import org.fouram.core.base.constants.SysConstants.ConstSession;
+import org.fouram.core.util.LoggerUtil;
+import org.fouram.service.SysDictionaryService;
+import org.springframework.web.context.WebApplicationContext;
+import org.springframework.web.context.support.WebApplicationContextUtils;
+
+/**
+ * 加载系统配置文件
+ * 
+ * @author liup
+ * 
+ */
+public class SystemInitListener implements ServletContextListener {
+
+	@Override
+	public void contextDestroyed(ServletContextEvent arg0) {
+		LoggerUtil.info("容器关闭……");
+	}
+
+	@Override
+	public void contextInitialized(ServletContextEvent config) {
+		ServletContext application = config.getServletContext();
+		try {
+			// 开启log4j2全异步模式
+			System.setProperty("Log4jContextSelector", "org.apache.logging.log4j.core.async.AsyncLoggerContextSelector");
+			WebApplicationContext springContext = WebApplicationContextUtils
+					.getWebApplicationContext(config.getServletContext());
+			SysDictionaryService sysDictionaryService = (SysDictionaryService) springContext
+					.getBean("sysDictionaryService");
+			String companyName = sysDictionaryService
+					.findOneByTypeAndKey(SysConstants.SysDictionaryTypeIndex, SysConstants.SysDictionaryKeyCompanyName)
+					.getValue();
+			String cmsName = sysDictionaryService
+					.findOneByTypeAndKey(SysConstants.SysDictionaryTypeIndex, SysConstants.SysDictionaryKeyCmsName)
+					.getValue();
+			application.setAttribute(ConstSession.SESSION_COMPANY_NAME, companyName);
+			application.setAttribute(ConstSession.SESSION_CMS_NAME, cmsName);
+		} catch (Exception e) {
+			LoggerUtil.error(e);
+		}
+	}
+}

+ 33 - 0
code/sapparent/sapcms/src/main/java/org/fouram/util/GlobleValue.java

@@ -0,0 +1,33 @@
+package org.fouram.util;
+
+import java.net.URL;
+
+import org.apache.commons.io.FileUtils;
+
+/**
+ * 获取项目路径
+ */
+public class GlobleValue {
+	/**
+	 * 项目root
+	 */
+	public static final String rootPath;
+
+	static {
+		GlobleValue gv = new GlobleValue();
+		rootPath = gv.getRootPath();
+	}
+
+	/**
+	 * 到项目根路径
+	 * 
+	 * @return
+	 */
+	private String getRootPath() {
+		URL url = getClass().getResource("GlobleValue.class");
+		String rootPath = FileUtils.toFile(url).toString();
+		int mark = rootPath.lastIndexOf("WEB-INF");
+		rootPath = rootPath.substring(0, mark).replaceAll("\\\\", "/");
+		return rootPath;
+	}
+}

+ 52 - 0
code/sapparent/sapcms/src/main/resources/log4j2.xml

@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration status="WARN" monitorInterval="600">
+	<Properties>
+		<Property name="LOG_HOME">${sys:catalina.home}/logs/medcms</Property>
+	</Properties>
+	<Appenders>
+		<Console name="console_appender" target="SYSTEM_OUT">
+			<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
+			<PatternLayout pattern="%5p [%t] %d{yyyy-MM-dd HH:mm:ss} (%F:%L) %m%n"/>
+		</Console>
+		<!-- INFO级别日志 -->
+		<RollingRandomAccessFile name="info_appender" immediateFlush="true" fileName="${LOG_HOME}/info.log"
+			filePattern="${LOG_HOME}/info/info - %d{yyyy-MM-dd HH_mm_ss}.log.gz">
+			<PatternLayout>
+				<pattern>%5p [%t] %d{yyyy-MM-dd HH:mm:ss} (%F:%L) %m%n</pattern>
+			</PatternLayout>
+			<Policies>
+				<SizeBasedTriggeringPolicy size="10MB"/>
+			</Policies>
+			<Filters>
+				<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/> 
+			</Filters>
+		</RollingRandomAccessFile>
+		<!-- ERROR级别日志 -->
+		<RollingRandomAccessFile name="error_appender" immediateFlush="true" fileName="${LOG_HOME}/error.log"
+			filePattern="${LOG_HOME}/error/error - %d{yyyy-MM-dd HH_mm_ss}.log.gz">
+			<PatternLayout>
+				<pattern>%5p [%t] %d{yyyy-MM-dd HH:mm:ss} (%F:%L) %m%n</pattern>
+			</PatternLayout>
+			<Policies>
+				<SizeBasedTriggeringPolicy size="10MB"/>
+			</Policies>
+			<Filters>
+				<ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
+			  </Filters>
+		</RollingRandomAccessFile>
+	</Appenders>
+	<Loggers>
+		<!-- 配置日志的根节点 -->
+		<root level="trace">
+			<appender-ref ref="console_appender"/>
+			<appender-ref ref="info_appender"/>
+			<appender-ref ref="error_appender"/>
+		</root>
+		<!-- 第三方日志系统 -->
+		<logger name="org.springframework.core" level="info"/>
+		<logger name="org.springframework.beans" level="info"/>
+		<logger name="org.springframework.context" level="info"/>
+		<logger name="org.springframework.web" level="info"/>
+		<logger name="org.apache.http" level="warn"/>
+	</Loggers>
+</Configuration>

+ 142 - 0
code/sapparent/sapcms/src/main/resources/sap.sql

@@ -0,0 +1,142 @@
+SET FOREIGN_KEY_CHECKS=0;
+
+-- ----------------------------
+-- Table structure for sap_user
+-- ----------------------------
+DROP TABLE IF EXISTS `sap_user`;
+CREATE TABLE `sap_user` (
+  `userId` varchar(50) NOT NULL,
+  `personId` varchar(255) DEFAULT NULL,
+  `username` varchar(255) DEFAULT NULL,
+  `name` varchar(255) DEFAULT NULL,
+  `company` varchar(255) DEFAULT NULL,
+  `formatCompany` varchar(255) DEFAULT NULL,
+  `departName` varchar(255) DEFAULT NULL,
+  `formatDepartName` varchar(255) DEFAULT NULL,
+  `position` varchar(255) DEFAULT NULL,
+  `formatPosition` varchar(255) DEFAULT NULL,
+  `mobile` varchar(255) DEFAULT NULL,
+  `formatMobile` varchar(255) DEFAULT NULL,
+  `gender` varchar(255) DEFAULT NULL,
+  `email` varchar(255) DEFAULT NULL,
+  `sapJson` longtext,
+  `wxUserResult` varchar(500) DEFAULT NULL,
+  `createDate` datetime DEFAULT NULL,
+  PRIMARY KEY (`userId`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+-- ----------------------------
+-- Records of sap_user
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for sys_dictionary
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_dictionary`;
+CREATE TABLE `sys_dictionary` (
+  `id` bigint(10) NOT NULL AUTO_INCREMENT,
+  `type` varchar(50) DEFAULT NULL,
+  `key` varchar(50) DEFAULT NULL,
+  `value` longtext,
+  `order_by` varchar(50) DEFAULT NULL,
+  `description` varchar(500) DEFAULT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4;
+
+-- ----------------------------
+-- Records of sys_dictionary
+-- ----------------------------
+INSERT INTO `sys_dictionary` VALUES ('1', 'index', 'company_name', 'SAP', '1', null);
+INSERT INTO `sys_dictionary` VALUES ('2', 'index', 'cms_name', '后台管理系统', '2', null);
+
+-- ----------------------------
+-- Table structure for sys_menu
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_menu`;
+CREATE TABLE `sys_menu` (
+  `id` int(11) NOT NULL,
+  `name` varchar(50) DEFAULT NULL,
+  `description` varchar(500) DEFAULT NULL,
+  `url` varchar(255) DEFAULT NULL,
+  `parent_id` varchar(50) DEFAULT NULL,
+  `order_by` int(11) DEFAULT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+-- ----------------------------
+-- Records of sys_menu
+-- ----------------------------
+INSERT INTO `sys_menu` VALUES ('1', '系统管理', '系统管理', '', '0', '1');
+INSERT INTO `sys_menu` VALUES ('2', '系统用户管理', '系统用户管理', 'sysUser', '1', '1');
+INSERT INTO `sys_menu` VALUES ('3', '系统角色管理', '系统角色管理', 'sysRole', '1', '2');
+INSERT INTO `sys_menu` VALUES ('4', '系统菜单管理', '系统菜单管理', 'sysMenu', '1', '3');
+
+-- ----------------------------
+-- Table structure for sys_role
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_role`;
+CREATE TABLE `sys_role` (
+  `id` varchar(50) NOT NULL,
+  `name` varchar(50) DEFAULT NULL,
+  `description` varchar(500) DEFAULT NULL,
+  `query_flag` varchar(255) DEFAULT NULL,
+  `add_flag` varchar(255) DEFAULT NULL,
+  `update_flag` varchar(255) DEFAULT NULL,
+  `delete_flag` varchar(255) DEFAULT NULL,
+  `data_level` varchar(255) DEFAULT NULL,
+  `create_by` varchar(50) DEFAULT NULL,
+  `create_date` datetime DEFAULT NULL,
+  `update_by` varchar(50) DEFAULT NULL,
+  `update_date` datetime DEFAULT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+-- ----------------------------
+-- Records of sys_role
+-- ----------------------------
+INSERT INTO `sys_role` VALUES ('1', '系统管理员', '系统管理员', '1032222', '1032222', '1032222', '1032254', 'all', '', '2017-04-15 21:16:08', '1', '2017-05-16 13:36:22');
+
+-- ----------------------------
+-- Table structure for sys_role_menu
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_role_menu`;
+CREATE TABLE `sys_role_menu` (
+  `id` varchar(50) NOT NULL,
+  `role_id` varchar(50) DEFAULT NULL,
+  `menu_id` varchar(50) DEFAULT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+-- ----------------------------
+-- Records of sys_role_menu
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for sys_user
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_user`;
+CREATE TABLE `sys_user` (
+  `id` varchar(50) NOT NULL,
+  `user_name` varchar(50) DEFAULT NULL,
+  `real_name` varchar(50) DEFAULT NULL,
+  `password` varchar(50) DEFAULT NULL,
+  `sex` varchar(50) DEFAULT NULL,
+  `province_code` varchar(50) DEFAULT NULL,
+  `city_code` varchar(50) DEFAULT NULL,
+  `phone` varchar(50) DEFAULT NULL,
+  `email` varchar(50) DEFAULT NULL,
+  `status` varchar(50) DEFAULT NULL,
+  `create_by` varchar(50) DEFAULT NULL,
+  `create_date` datetime DEFAULT NULL,
+  `update_by` varchar(50) DEFAULT NULL,
+  `update_date` datetime DEFAULT NULL,
+  `last_login` datetime DEFAULT NULL,
+  `role_id` varchar(50) DEFAULT NULL,
+  `del_flag` tinyint(1) DEFAULT '0',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+-- ----------------------------
+-- Records of sys_user
+-- ----------------------------
+INSERT INTO `sys_user` VALUES ('1', 'admin', '管理员', '74d7c8a3426acbbfabfdc457ab44d14332388033', '1', '', '', '1234567891', '111@111.com', 'QIYONG', '1', '2017-04-11 14:47:24', '1', '2017-04-19 15:50:42', '2019-09-17 15:48:08', '1', '0');

+ 53 - 0
code/sapparent/sapcms/src/main/resources/spring-content.xml

@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+	xmlns:mvc="http://www.springframework.org/schema/mvc"
+	xmlns:context="http://www.springframework.org/schema/context"
+	xmlns:aop="http://www.springframework.org/schema/aop" 
+	xmlns:tx="http://www.springframework.org/schema/tx"
+	xmlns:cache="http://www.springframework.org/schema/cache"
+	 xmlns:task="http://www.springframework.org/schema/task"
+	xsi:schemaLocation="http://www.springframework.org/schema/beans  
+		   http://www.springframework.org/schema/beans/spring-beans-4.3.xsd 
+		   http://www.springframework.org/schema/mvc 
+		   http://www.springframework.org/schema/mvc/spring-mvc.xsd	
+		   http://www.springframework.org/schema/aop   
+		   http://www.springframework.org/schema/aop/spring-aop-4.3.xsd  
+		   http://www.springframework.org/schema/tx  
+		   http://www.springframework.org/schema/tx/spring-tx-4.3.xsd  
+		   http://www.springframework.org/schema/cache
+		   http://www.springframework.org/schema/cache/spring-cache.xsd
+		   http://www.springframework.org/schema/context  
+		   http://www.springframework.org/schema/context/spring-context-4.3.xsd">
+	<!-- 加载配置文件 -->
+	<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+		<property name="locations">
+			<list>
+				<value>classpath:jdbc.properties</value>
+				<value>classpath:config.properties</value>
+			</list>
+		</property>
+	</bean>
+	<!-- import文件 -->
+	<import resource="spring/dataSource.xml"/>
+	<import resource="spring/shiro.xml"/>
+	<import resource="spring/quartz.xml"/>
+	<!-- 自动完成声明 -->
+	<context:annotation-config />
+	<!-- 设置上传文件的最大尺寸 -->
+	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  
+		<!-- 设置上传文件的最大尺寸为1G -->  
+		<property name="maxUploadSize">  
+			<value>1048576000</value>  
+		</property>  
+	</bean>
+	<!-- 扫描排除Controller -->
+	<context:component-scan base-package="org.fouram">
+		<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>   
+	</context:component-scan>
+	<!-- 会话管理配置 -->
+	<bean id="sessionManager" class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager"> 
+		<!-- 去掉 JSESSIONID -->
+		<property name="sessionIdUrlRewritingEnabled" value="false" />
+	</bean>
+</beans>

+ 50 - 0
code/sapparent/sapcms/src/main/resources/spring-servlet.xml

@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xmlns:p="http://www.springframework.org/schema/p"
+	xmlns:util="http://www.springframework.org/schema/util"
+	xmlns:mvc="http://www.springframework.org/schema/mvc"
+	xmlns:context="http://www.springframework.org/schema/context"
+	xsi:schemaLocation="
+		http://www.springframework.org/schema/beans
+		http://www.springframework.org/schema/beans/spring-beans.xsd
+		http://www.springframework.org/schema/context
+		http://www.springframework.org/schema/context/spring-context.xsd
+		 http://www.springframework.org/schema/util	
+		http://www.springframework.org/schema/util/spring-util.xsd
+		http://www.springframework.org/schema/mvc
+		http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd">
+	<!-- 设置配置方案 -->
+	<mvc:annotation-driven />
+	<!-- 解除servlet对静态资源文件访问的限制,使得静态资源先经过 -->
+	<mvc:default-servlet-handler />
+	<!-- 扫描Controller -->
+	<context:component-scan base-package="org.fouram" use-default-filters="false">  
+		<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
+	</context:component-scan>
+	<!-- jsp位置配置 -->
+	<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
+		<property name="viewResolvers">
+			<list>
+				<bean class="org.springframework.web.servlet.view.BeanNameViewResolver"/>
+				<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
+				 <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
+					<property name="prefix" value="/WEB-INF/jsp/"/>
+					<property name="suffix" value=".jsp"/>
+				</bean>
+			</list>
+		</property>
+		<property name="defaultViews">
+			<list>
+				<bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView" />
+			</list>
+		</property>
+	</bean>
+	<!-- 访问拦截-->
+	<mvc:interceptors>
+		<mvc:interceptor>
+			<mvc:mapping path="/**/**" />
+			<bean class="org.fouram.core.interceptor.TokenHandlerInterceptor" />
+		</mvc:interceptor>
+	</mvc:interceptors> 
+</beans>

+ 3 - 0
code/sapparent/sapcms/src/main/webapp/META-INF/MANIFEST.MF

@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Class-Path: 
+

+ 172 - 0
code/sapparent/sapcms/src/main/webapp/WEB-INF/jsp/common/base.jsp

@@ -0,0 +1,172 @@
+<%@ 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="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
+<c:set scope="application" var="ROOT_PATH" value="${pageContext.request.contextPath}"></c:set>
+<c:set scope="application" var="STATIC_VERSION" value="0.01"></c:set>
+
+<link rel="stylesheet" href="${ROOT_PATH}/public/css/fonts/linecons/css/linecons.css">
+<link rel="stylesheet" href="${ROOT_PATH}/public/css/fonts/fontawesome/css/font-awesome.min.css">
+<link rel="stylesheet" href="${ROOT_PATH}/public/css/bootstrap.css">
+<link rel="stylesheet" href="${ROOT_PATH}/public/css/xenon-core.css">
+<link rel="stylesheet" href="${ROOT_PATH}/public/css/xenon-forms.css">
+<link rel="stylesheet" href="${ROOT_PATH}/public/css/xenon-components.css">
+<link rel="stylesheet" href="${ROOT_PATH}/public/css/xenon-skins.css">
+<link rel="stylesheet" href="${ROOT_PATH}/public/css/custom.css">
+<link rel="stylesheet" href="${ROOT_PATH}/public/plugin/prettyPhoto-3.1.5/css/prettyPhoto.css">
+<link rel="stylesheet" href="${ROOT_PATH}/public/css/video/video-js.css">
+<link rel="stylesheet" href="${ROOT_PATH}/public/css/video/video-js-cdn.min.css">
+
+<script src="${ROOT_PATH}/public/js/jquery-1.11.1.min.js"></script>
+
+<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
+<!--[if lt IE 9]>
+	<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
+	<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
+<![endif]-->
+
+<!-- Bottom Scripts -->
+<script src="${ROOT_PATH}/public/js/bootstrap.min.js"></script>
+<script src="${ROOT_PATH}/public/js/TweenMax.min.js"></script>
+<script src="${ROOT_PATH}/public/js/resizeable.js"></script>
+<script src="${ROOT_PATH}/public/js/joinable.js"></script>
+<script src="${ROOT_PATH}/public/js/xenon-api.js"></script>
+<script src="${ROOT_PATH}/public/js/xenon-toggles.js"></script>
+<script src="${ROOT_PATH}/public/plugin/jquery-validate/jquery.validate.min.js"></script>
+<script src="${ROOT_PATH}/public/plugin/toastr/toastr.min.js"></script>
+<script src="${ROOT_PATH}/public/plugin/prettyPhoto-3.1.5/js/jquery.prettyPhoto.js"></script>
+<script src="${ROOT_PATH}/public/plugin/My97DatePicker/WdatePicker.js"></script>
+
+<!-- JavaScripts initializations and stuff -->
+<script src="${ROOT_PATH}/public/js/xenon-custom.js"></script>
+
+<!-- Imported styles on this page -->
+<link rel="stylesheet" href="${ROOT_PATH}/public/plugin/datatables/dataTables.bootstrap.css">
+
+<!-- Bottom Scripts -->
+<script src="${ROOT_PATH}/public/plugin/datatables/js/jquery.dataTables.min.js"></script>
+
+<!-- Imported scripts on this page -->
+<script src="${ROOT_PATH}/public/plugin/datatables/dataTables.bootstrap.js"></script>
+<script src="${ROOT_PATH}/public/plugin/datatables/yadcf/jquery.dataTables.yadcf.js"></script>
+<script src="${ROOT_PATH}/public/plugin/datatables/tabletools/dataTables.tableTools.min.js"></script>
+<script src="${ROOT_PATH}/public/js/jquery.form.js"></script>
+<script src="${ROOT_PATH}/public/js/common.js?v=${STATIC_VERSION}"></script>
+
+<!-- kindeditor -->
+<script type="text/javascript" src="${ROOT_PATH}/public/plugin/kindeditor-4.1.7/kindeditor-min.js"></script>
+<script type="text/javascript" src="${ROOT_PATH}/public/plugin/kindeditor-4.1.7/lang/zh_CN.js"></script>
+<link rel="stylesheet" href="${ROOT_PATH}/public/plugin/kindeditor-4.1.7/themes/default/default.css" type="text/css" media="screen" />
+<style>
+	table {
+		font-size: 13px;
+	}
+	
+	#toast-container.toast-top-full-width > div {
+		width: 300px;
+	}
+	
+	.sidebar-menu .logo-env {
+		padding: 30px 12px;
+	}
+	
+	.sidebar-menu {
+		width: 200px;
+	}
+	
+	.sidebar-menu .main-menu {
+		padding-left: 10px;
+		padding-right: 25px;
+	}
+	
+	.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, 
+	.col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, 
+	.col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, 
+	.col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, 
+	.col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, 
+	.col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, 
+	.col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, 
+	.col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, 
+	.col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, 
+	.col-sm-12, .col-md-12, .col-lg-12 {
+		padding-left: 0;
+	}
+</style>
+<script type="text/javascript">
+	var Constants = {
+		reloadTime: 1000,
+		rootPath : "${ROOT_PATH}",
+		netError : "操作失败,网络异常",
+		imageError : "请上传图片(格式BMP、JPG、JPEG、PNG、GIF)",
+		mp4Error : "请上传视频(格式MP4)",
+		loadingMsg : "保存中,请稍等",
+		emailReg : /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
+		phoneReg : /^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$/
+	};
+	
+	var opts = {
+		"closeButton": true,
+		"debug": false,
+		"positionClass": "toast-top-full-width",
+		"onclick": null,
+		"showDuration": "300",
+		"hideDuration": "1000",
+		"timeOut": "5000",
+		"extendedTimeOut": "1000",
+		"showEasing": "swing",
+		"hideEasing": "linear",
+		"showMethod": "fadeIn",
+		"hideMethod": "fadeOut"
+	};
+	
+	function enableBtn(id) {
+		$(id).removeAttr("disabled"); 
+	}
+
+	function checkStr(str){
+		if(str == null || str == ""){
+			return false;
+		}
+		var re = /^\s+$/;
+		if(re.exec(str)) {
+			return false;
+		}
+		return true;
+	}
+	
+	function createKindEditor(id){
+		return KindEditor.create('textarea[name="' + id + '"]', {
+			themeType : 'simple',
+			uploadJson : '${ROOT_PATH}/kindEditorUpload/fileUpload',
+ 			resizeType : 1,
+			allowImageUpload : true,
+			filterMode : false,
+			items : [
+				'source', '|', 'fontname', 'fontsize', '|', 'forecolor', 'hilitecolor', 'bold', 'italic', 'underline',
+				'removeformat', '|', 'justifyleft', 'justifycenter', 'justifyright', 'insertorderedlist',
+				'insertunorderedlist', '|', 'emoticons', 'image', 'link'
+			]
+		});
+	}
+	
+	function getCheckedValue(name){
+		var chk_value = ''; 
+		$('input[name="' + name + '"]:checked').each(function(){ 
+			chk_value += $(this).val() + ','; 
+		});
+		if(chk_value.length > 0){
+			chk_value = chk_value.substring(0, chk_value.length - 1);
+		}
+		return chk_value;
+	}
+	
+	function isNumber(val){
+		var r = /^\d+$/; // 非负整数
+		return r.test(val);
+	}
+	
+	function isDouble(val){
+		var r = /^\d+(\.\d+)?$/; // 非负数
+		return r.test(val);
+	}
+</script>

+ 14 - 0
code/sapparent/sapcms/src/main/webapp/WEB-INF/jsp/common/footer.jsp

@@ -0,0 +1,14 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<footer class="main-footer sticky footer-type-1">
+	<div class="footer-inner">
+		<div class="footer-text">
+			&copy; 2019 
+			<strong>${SESSION_COMPANY_NAME}</strong>${SESSION_CMS_NAME}
+		</div>
+		<div class="go-up">
+			<a href="#" rel="go-top">
+				<i class="fa-angle-up"></i>
+			</a>
+		</div>
+	</div>
+</footer>

+ 22 - 0
code/sapparent/sapcms/src/main/webapp/WEB-INF/jsp/common/header.jsp

@@ -0,0 +1,22 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<nav class="navbar user-info-navbar" role="navigation">
+	<ul class="user-info-menu right-links list-inline list-unstyled">
+		<li class="dropdown user-profile">
+			<a href="#" data-toggle="dropdown">
+				<img src="${ROOT_PATH}/public/images/user-4.png" alt="user-image" class="img-circle img-inline userpic-32" width="28" />
+				<span>
+					${SESSION_CMS_USER.userName }
+					<i class="fa-angle-down"></i>
+				</span>
+			</a>
+			<ul class="dropdown-menu user-profile-menu list-unstyled">
+				<li class="last">
+					<a href="${ROOT_PATH}/logout">
+						<i class="fa-lock"></i>
+						退出系统
+					</a>
+				</li>
+			</ul>
+		</li>
+	</ul>
+</nav>

+ 62 - 0
code/sapparent/sapcms/src/main/webapp/WEB-INF/jsp/common/menu.jsp

@@ -0,0 +1,62 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<script type="text/javascript">
+	function loadMenu(url, menuId, menuKey){
+		$.ajax({  
+			type: 'POST',  
+			dataType : "json",
+			data : {"menuId":menuId, "menuKey":menuKey},
+			url: "${ROOT_PATH}/setSessionMenuAnon",//请求的action路径  
+			success:function(data){ //请求成功后处理函数。
+				location.href = "${ROOT_PATH}/" + url;
+			}
+		}); 
+	}
+</script>
+<div class="sidebar-menu toggle-others fixed">
+	<div class="sidebar-menu-inner">
+		<header class="logo-env">
+		<div class="logo">
+			<a href="#" class="logo-expanded" style="color: white; font-size: 15px;">
+				<span style="text-align: center; margin-left: 32px;">功能导航</span>
+			</a>
+		</div>
+		</header>
+		<ul id="main-menu" class="main-menu">
+			<c:forEach items="${SESSION_MENU_LIST}" var="menu">
+				<c:set var="menuActive" value="false"></c:set>
+				<c:if test="${fn:contains(menu.key, SESSION_MENU_KEY)}">
+					<c:set var="menuActive" value="true"></c:set>
+				</c:if>
+				<c:if test="${menu.hasMenu}">
+					<li <c:if test="${menuActive}">class="active opened expanded has-sub"</c:if>>
+						<a href="javascript:void(0);">
+							<i class="linecons-cog"></i>
+							<span class="title">${menu.name }</span>
+						</a>
+						<ul>
+							<c:forEach items="${menu.subMenu}" var="sub">
+								<c:set var="subActive" value="false"></c:set>
+								<c:if test="${fn:contains(sub.key, SESSION_MENU_KEY)}">
+									<c:set var="subActive" value="true"></c:set>
+								</c:if>
+								<li data-title="${sub.id }" <c:if test="${subActive}">class="active"</c:if>>
+									<a href="javascript:;" onclick="loadMenu('${sub.url}', '${sub.id}', '${sub.key}');">
+										<span class="title">${sub.name }</span>
+									</a>
+								</li>
+							</c:forEach>
+						</ul>
+					</li>
+				</c:if>
+				<c:if test="${!menu.hasMenu}">
+					<li <c:if test="${menuActive}">class="active"</c:if>>
+						<a href="javascript:;" onclick="loadMenu('${menu.url}', '${menu.id}', '${menu.key}');">
+							<i class="linecons-cog"></i>
+							<span class="title">${menu.name }</span>
+						</a>
+					</li>
+				</c:if>
+			</c:forEach>
+		</ul>
+	</div>
+</div>

+ 278 - 0
code/sapparent/sapcms/src/main/webapp/WEB-INF/jsp/index.jsp

@@ -0,0 +1,278 @@
+<%@ 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="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+	<meta charset="utf-8">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	
+	<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+	<meta name="description" content="Xenon Boostrap Admin Panel" />
+	<meta name="author" content="" />
+	<title>用户管理</title>
+</head>
+<body class="page-body">
+	<div class="page-container">
+		<%@ include file="common/menu.jsp"%>
+		<div class="main-content">
+			<%@ include file="common/header.jsp"%>
+			<div class="page-title">
+				<div class="title-env">
+					<h1 class="title">用户管理</h1>
+				</div>
+				<div class="breadcrumb-env">
+					<ol class="breadcrumb bc-1">
+						<li>
+							<a href="#"><i class="fa-home"></i>系统管理</a>
+						</li>
+						<li class="active">
+							<strong>用户管理</strong>
+						</li>
+					</ol>
+				</div>
+			</div>			
+			<!-- Removing search and results count filter -->
+			<div class="panel panel-default">
+				<form class="form-horizontal" role="form" method="post">
+					<div class="form-group">
+						<label class="col-sm-1 control-label">姓名</label>
+						<div class="col-sm-2">
+							<input type="text" class="form-control" id="field-1">
+						</div>
+						<label class="col-sm-1 control-label" for="field-1">手机号码</label>
+						<div class="col-sm-2">
+							<input type="text" class="form-control" id="field-1">
+						</div>
+						<button type="button" class="btn btn-info">查询</button>
+						<button type="button" class="btn btn-add" onclick="toInfo();">新增</button>
+						<button type="button" class="btn btn-red" onclick="deleteTip();">删除</button>
+					</div>
+				</form>
+				
+				<div class="panel-body">
+					
+					<script type="text/javascript">
+					jQuery(document).ready(function($)
+					{
+						$("#table-list").dataTable({
+							dom: "t" + "<'row'<'col-xs-6'i><'col-xs-6'p>>",
+							aoColumns: [
+								{bSortable: false},
+								null,
+								null,
+								null,
+								null,
+								null,
+								null,
+								null,
+								null,
+								null
+							],
+							columnDefs: [
+								{ orderable: false, targets: [0,1,2,3,4,5,6,7,8,9] }
+							]
+						});
+						
+						// Replace checkboxes when they appear
+						var $state = $("#table-list thead input[type='checkbox']");
+						
+						$("#table-list").on('draw.dt', function()
+						{
+							cbr_replace();
+							
+							$state.trigger('change');
+						});
+						
+						// Script to select all checkboxes
+						$state.on('change', function(ev)
+						{
+							var $chcks = $("#table-list tbody input[type='checkbox']");
+							
+							if($state.is(':checked'))
+							{
+								$chcks.prop('checked', true).trigger('change');
+							}
+							else
+							{
+								$chcks.prop('checked', false).trigger('change');
+							}
+						});
+					});
+					</script>
+					
+					<table class="table table-bordered table-striped" id="table-list">
+						<thead>
+							<tr>
+								<th class="no-sorting">
+									<input type="checkbox" class="cbr">
+								</th>
+								<th>用户名</th>
+								<th>姓名</th>
+								<th>手机号码</th>
+								<th>邮箱</th>
+								<th>性别</th>
+								<th>角色</th>
+								<th>状态</th>
+								<th>创建时间</th>
+								<th>操作</th>
+							</tr>
+						</thead>
+						
+						<tbody class="middle-align">
+						
+							<tr>
+								<td>
+									<input type="checkbox" class="cbr">
+								</td>
+								<td>test</td>
+								<td>测试账号</td>
+								<td>13405000000</td>
+								<td>test@139.com</td>
+								<td>男</td>
+								<td>管理员</td>
+								<td>开启</td>
+								<td>2017-01-01</td>
+								<td>
+									<a href="javascript:;" class="btn btn-secondary btn-sm btn-icon icon-left" onclick="toInfo();">
+										修改
+									</a>
+									<a href="javascript:;" class="btn btn-danger btn-sm btn-icon icon-left" onclick="deleteTip();">
+										删除
+									</a>
+									<a href="javascript:;" class="btn btn-white btn-sm btn-icon icon-left" onclick="stopTip();">
+										停用
+									</a>
+								</td>
+							</tr>
+							<tr>
+								<td>
+									<input type="checkbox" class="cbr">
+								</td>
+								<td>test</td>
+								<td>测试账号</td>
+								<td>13405000000</td>
+								<td>test@139.com</td>
+								<td>男</td>
+								<td>管理员</td>
+								<td>开启</td>
+								<td>2017-01-01</td>
+								<td>
+									<a href="javascript:;" class="btn btn-secondary btn-sm btn-icon icon-left" onclick="toInfo();">
+										修改
+									</a>
+									<a href="javascript:;" class="btn btn-danger btn-sm btn-icon icon-left" onclick="deleteTip();">
+										删除
+									</a>
+									<a href="javascript:;" class="btn btn-white btn-sm btn-icon icon-left" onclick="stopTip();">
+										停用
+									</a>
+								</td>
+							</tr>
+							<tr>
+								<td>
+									<input type="checkbox" class="cbr">
+								</td>
+								<td>test</td>
+								<td>测试账号</td>
+								<td>13405000000</td>
+								<td>test@139.com</td>
+								<td>男</td>
+								<td>管理员</td>
+								<td>开启</td>
+								<td>2017-01-01</td>
+								<td>
+									<a href="javascript:;" class="btn btn-secondary btn-sm btn-icon icon-left" onclick="toInfo();">
+										修改
+									</a>
+									<a href="javascript:;" class="btn btn-danger btn-sm btn-icon icon-left" onclick="deleteTip();">
+										删除
+									</a>
+									<a href="javascript:;" class="btn btn-white btn-sm btn-icon icon-left" onclick="stopTip();">
+										停用
+									</a>
+								</td>
+							</tr>
+							<tr>
+								<td>
+									<input type="checkbox" class="cbr">
+								</td>
+								<td>test</td>
+								<td>测试账号</td>
+								<td>13405000000</td>
+								<td>test@139.com</td>
+								<td>男</td>
+								<td>管理员</td>
+								<td>开启</td>
+								<td>2017-01-01</td>
+								<td>
+									<a href="javascript:;" class="btn btn-secondary btn-sm btn-icon icon-left" onclick="toInfo();">
+										修改
+									</a>
+									<a href="javascript:;" class="btn btn-danger btn-sm btn-icon icon-left" onclick="deleteTip();">
+										删除
+									</a>
+									<a href="javascript:;" class="btn btn-white btn-sm btn-icon icon-left" onclick="stopTip();">
+										停用
+									</a>
+								</td>
+							</tr>
+							<tr>
+								<td>
+									<input type="checkbox" class="cbr">
+								</td>
+								<td>test</td>
+								<td>测试账号</td>
+								<td>13405000000</td>
+								<td>test@139.com</td>
+								<td>男</td>
+								<td>管理员</td>
+								<td>停用</td>
+								<td>2017-01-01</td>
+								<td>
+									<a href="javascript:;" class="btn btn-secondary btn-sm btn-icon icon-left" onclick="toInfo();">
+										修改
+									</a>
+									<a href="javascript:;" class="btn btn-danger btn-sm btn-icon icon-left" onclick="deleteTip();">
+										删除
+									</a>
+									<a href="javascript:;" class="btn btn-white btn-sm btn-icon icon-left" onclick="openTip();">
+										开启
+									</a>
+								</td>
+							</tr>
+							<tr>
+								<td>
+									<input type="checkbox" class="cbr">
+								</td>
+								<td>test</td>
+								<td>测试账号</td>
+								<td>13405000000</td>
+								<td>test@139.com</td>
+								<td>男</td>
+								<td>管理员</td>
+								<td>开启</td>
+								<td>2017-01-01</td>
+								<td>
+									<a href="javascript:;" class="btn btn-secondary btn-sm btn-icon icon-left" onclick="toInfo();">
+										修改
+									</a>
+									<a href="javascript:;" class="btn btn-danger btn-sm btn-icon icon-left" onclick="deleteTip();">
+										删除
+									</a>
+									<a href="javascript:;" class="btn btn-white btn-sm btn-icon icon-left" onclick="stopTip();">
+										停用
+									</a>
+								</td>
+							</tr>
+							
+						</tbody>
+					</table>
+					
+				</div>
+			</div>
+			<%@ include file="common/footer.jsp"%>
+		</div>
+	</div>
+</body>
+</html>

+ 149 - 0
code/sapparent/sapcms/src/main/webapp/WEB-INF/jsp/login.jsp

@@ -0,0 +1,149 @@
+<%@ 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="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+	<meta charset="utf-8">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+	<meta name="description" content="Xenon Boostrap Admin Panel" />
+	<meta name="author" content="" />
+	<title>${SESSION_COMPANY_NAME}${SESSION_CMS_NAME}</title>
+</head>
+<body class="page-body login-page login-light" style="background-image: url('${ROOT_PATH}/public/images/login_bg.jpg');">
+	<div class="login-container" style="width: 480px;">
+		<div class="row">
+			<div class="col-sm-12">
+				<!-- Errors container -->
+				<div class="errors-container"></div>
+				<!-- Add class "fade-in-effect" for login form effect -->
+				<form method="post" role="form" id="loginForm" class="login-form fade-in-effect">
+					<div class="login-header">
+						<a href="javascript:void(0);" class="logo">
+							<span style="color: black; font-size: 18px;">
+								${SESSION_COMPANY_NAME}${SESSION_CMS_NAME}
+							</span>
+						</a>
+					</div>
+					<div class="form-group">
+						<!-- <label class="control-label" for="user_name">用户名</label>  -->
+						<input type="text" class="form-control" name="user_name" placeholder="用户名" id="user_name" autocomplete="off" />
+					</div>
+					<div class="form-group">
+						<!-- <label class="control-label" for="password">密码</label>  -->
+						<input type="password" class="form-control" name="password" placeholder="密码" id="password" autocomplete="off" />
+					</div>
+					<div class="form-group">
+						<button type="submit" id="btn_login" class="btn btn-primary  btn-block text-left" style="text-align: center;">
+							<i class="fa-lock"></i> 登录
+						</button>
+					</div>
+				</form>
+			</div>
+		</div>
+	</div>
+	<script type="text/javascript">
+		jQuery(document)
+				.ready(
+						function($) {
+							// Reveal Login form
+							setTimeout(function() {
+								$(".fade-in-effect").addClass('in');
+							}, 1);
+
+							// Validation and Ajax action
+							$("#loginForm")
+									.validate(
+											{
+												rules : {
+													user_name : {
+														required : true
+													},
+
+													password : {
+														required : true
+													}
+												},
+
+												messages : {
+													user_name : {
+														required : '请输入账号.'
+													},
+
+													password : {
+														required : '请输入密码'
+													}
+												},
+
+												// Form Processing via AJAX
+												submitHandler : function(form) {
+													show_loading_bar(70); // Fill progress bar to 70% (just a given value)
+
+													var user_name = $("#loginForm #user_name").val();
+													var password = $("#loginForm #password").val();
+													var code = "qq258345742fh" + user_name + ",fh," + password;
+													$("#btn_login").attr("disabled","disabled");  
+													$.ajax({
+														url : "login_login",
+														method : 'POST',
+														dataType : 'json',
+														cache : false,
+														data : {
+															KEYDATA : code,
+															tm : new Date().getTime()
+														},
+														error : function() {
+															$(".errors-container .alert").slideUp('fast');
+															$("#btn_login").removeAttr("disabled"); 
+															$(".errors-container").html(
+																'<div class="alert alert-danger">'
+																		+ '<button type="button" class="close" data-dismiss="alert">'
+																		+ '<span aria-hidden="true">&times;</span>'
+																		+ '<span class="sr-only">Close</span>'
+																		+ '</button>'
+																		+ '登陆异常'
+																		+ '</div>');
+
+															$(".errors-container .alert").hide().slideDown();
+														},
+														success : function(
+																resp) {
+															
+															show_loading_bar({
+																delay : .5,
+																pct : 100,
+																finish : function() {
+																	$("#btn_login").removeAttr("disabled"); 
+																	if (resp.result == '01') {
+																		window.location.href = 'main/index';
+																	} else {
+																		$(".errors-container .alert").slideUp('fast');
+																		
+																			$(".errors-container").html(
+																				'<div class="alert alert-danger">'
+																						+ '<button type="button" class="close" data-dismiss="alert">'
+																						+ '<span aria-hidden="true">&times;</span>'
+																						+ '<span class="sr-only">Close</span>'
+																						+ '</button>'
+																						+ resp.msg
+																						+ '</div>');
+
+																			$(".errors-container .alert").hide().slideDown();
+																		
+																	}
+
+																}
+															});
+
+														}
+													});
+
+												}
+											});
+
+						});
+	</script>
+</body>
+
+</html>

+ 140 - 0
code/sapparent/sapcms/src/main/webapp/WEB-INF/jsp/sys/sysmenu/sysmenu-add.jsp

@@ -0,0 +1,140 @@
+<%@ 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="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+	<meta charset="utf-8">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+	<meta name="description" content="Xenon Boostrap Admin Panel" />
+	<meta name="author" content="" />
+	<title>系统菜单管理</title>
+</head>
+<body class="page-body">
+	<div class="page-container">
+		<%@ include file="../../common/menu.jsp"%>
+		<div class="main-content">
+			<%@ include file="../../common/header.jsp"%>
+			<div class="page-title">
+				<div class="title-env">
+					<h1 class="title">新增系统菜单</h1>
+				</div>
+				<div class="breadcrumb-env">
+					<ol class="breadcrumb bc-1">
+						<li>
+							<a href="#"><i class="fa-home"></i>系统管理</a>
+						</li>
+						<li class="active">
+							<strong>新增系统菜单</strong>
+						</li>
+					</ol>
+				</div>
+			</div>
+			<!-- Removing search and results count filter -->
+			<div class="row">
+				<div class="col-sm-12">
+					<div class="panel panel-default">
+						<div class="panel-body">
+							<form role="form" id="addUserForm" class="form-horizontal">
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="name">菜单名</label>
+									<div class="col-sm-4">
+										<input type="text" class="form-control" id="name" name="name" value="">
+									</div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="description">描述</label>
+									<div class="col-sm-4">
+										<input type="text" class="form-control" id="description" name="description" value=""  />
+									</div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="url">路径</label>
+									<div class="col-sm-4">
+										<input type="text" class="form-control" id="url" name="url" value="" />
+									</div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="order_by">排序</label>
+									<div class="col-sm-4">
+										<input type="text" class="form-control" name="order_by" id="order_by" value="">
+									</div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" >父菜单</label>
+									<div class="col-sm-4">
+										<select class="form-control" id="parent_id" name="parent_id">
+											<option value="0">无</option>
+											<c:forEach var="r" items="${parent_menu }" >
+												<option value="${r.id }">${r.name }</option>
+											</c:forEach>
+										</select>		
+									</div>
+								</div>
+								<div class="form-group-separator"></div>
+								<div class="form-group">
+									<div class="col-sm-6" style="text-align: center;">
+										<button type="button" id="btn_save" class="btn btn-info" >保存</button>
+										<button type="button" id="btn_cancel" class="btn btn-white" >返回</button>
+										<input id="token" type="hidden" name="token" value="${SESSION_TOKEN }"/>
+									</div>
+								</div>
+							</form>
+						</div>
+					</div>
+				</div>
+			</div>
+			<%@ include file="../../common/footer.jsp"%>
+		</div>
+	</div>
+	
+	<script type="text/javascript">
+		$(function() {
+			$("#btn_save").click(function(){
+				var name = $("#name").val();
+				var url = $("#url").val();
+				var order_by = $("#order_by").val();
+				if(!checkStr(name)){
+					toastr.error("菜单名不能为空", null, opts);
+					return false;
+				}
+				if(!checkStr(url)){
+					toastr.error("url不能为空", null, opts);
+					return false;
+				}
+				if(!isNull(order_by) && !isPositiveNumber(order_by)){
+					toastr.error("排序请输入正整数", null, opts);
+					return false;
+				}
+				$("#btn_save").attr("disabled","disabled");
+				$("#addUserForm").ajaxSubmit({  
+						type:'post',
+						dataType: "json",
+						url : "${ROOT_PATH}/sysMenu/save.do",
+						success:function(data){  
+							window.setTimeout("enableBtn('#btn_save');",Constants.reloadTime);
+							if (data.result == '01') {
+								toastr.success("新增成功", null, opts);
+								window.location.href = '${ROOT_PATH}/sysMenu';
+							}
+							else
+							{
+								toastr.error(data.msg, null, opts);
+							}
+						},  
+						error:function(XmlHttpRequest,textStatus,errorThrown){  
+							window.setTimeout("enableBtn('#btn_save');",Constants.reloadTime);
+							toastr.error(Constants.netError, null, opts);
+						}
+					}); 
+			});
+			
+			$("#btn_cancel").click(function(){
+				history.back(-1);
+			});
+		});
+		
+		</script>
+</body>
+</html>

+ 141 - 0
code/sapparent/sapcms/src/main/webapp/WEB-INF/jsp/sys/sysmenu/sysmenu-edit.jsp

@@ -0,0 +1,141 @@
+<%@ 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="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+	<meta charset="utf-8">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+	<meta name="description" content="Xenon Boostrap Admin Panel" />
+	<meta name="author" content="" />
+	<title>系统菜单管理</title>
+</head>
+<body class="page-body">
+	<div class="page-container">
+		<%@ include file="../../common/menu.jsp"%>
+		<div class="main-content">
+			<%@ include file="../../common/header.jsp"%>
+			<div class="page-title">
+				<div class="title-env">
+					<h1 class="title">修改系统菜单</h1>
+				</div>
+				<div class="breadcrumb-env">
+					<ol class="breadcrumb bc-1">
+						<li>
+							<a href="#"><i class="fa-home"></i>系统管理</a>
+						</li>
+						<li class="active">
+							<strong>修改系统菜单</strong>
+						</li>
+					</ol>
+				</div>
+			</div>
+			<!-- Removing search and results count filter -->
+			<div class="row">
+				<div class="col-sm-12">
+					<div class="panel panel-default">
+						<div class="panel-body">
+							<form role="form" id="editUserForm" class="form-horizontal" >
+								<input type="hidden" name="id" id="id" value="${menu.id}"/>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="field-1">用户名</label>
+									<div class="col-sm-4">
+										<input type="text" class="form-control" id="name" name="name" value="${menu.name}" >
+									</div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="description">描述</label>
+									<div class="col-sm-4">
+										<input type="text" class="form-control" id="description" name="description" value="${menu.description}"  />
+									</div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="url">路径</label>
+									<div class="col-sm-4">
+										<input type="text" class="form-control" id="url" name="url" value="${menu.url}" />
+									</div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="order_by">排序</label>
+									<div class="col-sm-4">
+										<input type="text" class="form-control" name="order_by" id="order_by" value="${menu.order_by }">
+									</div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" >父菜单</label>
+									<div class="col-sm-4">
+										<select class="form-control" id="parent_id" name="parent_id">
+											<option value="0">无</option>
+											<c:forEach var="r" items="${parent_menu }" >
+											    <option value="${r.id }" <c:if test="${menu.parent_id == r.id }">selected="selected"</c:if> >${r.name }</option>
+											</c:forEach>
+										</select>		
+									</div>
+								</div>
+								<div class="form-group-separator"></div>
+								<div class="form-group">
+									<div class="col-sm-6" style="text-align: center;">
+										<button type="button" id="btn_save" class="btn btn-info" >保存</button>
+										<button type="button" id="btn_cancel" class="btn btn-white" >返回</button>
+										<input id="token" type="hidden" name="token" value="${SESSION_TOKEN }"/>
+									</div>
+								</div>
+							</form>
+						</div>
+					</div>
+				</div>
+			</div>
+			<%@ include file="../../common/footer.jsp"%>
+		</div>
+	</div>
+	
+	<script type="text/javascript">
+		$(function() {
+			
+			$("#btn_save").click(function(){
+				var name = $("#name").val();
+				var url = $("#url").val();
+				var order_by = $("#order_by").val();
+				if(!checkStr(name)){
+					toastr.error("菜单名不能为空", null, opts);
+					return false;
+				}
+				if(!checkStr(url)){
+					toastr.error("url不能为空", null, opts);
+					return false;
+				}
+				if(!isNull(order_by) && !isPositiveNumber(order_by)){
+					toastr.error("排序请输入正整数", null, opts);
+					return false;
+				}
+				$("#btn_save").attr("disabled","disabled");
+				$("#editUserForm").ajaxSubmit({  
+		                type:'post',  
+		                dataType: "json",
+		                url : "${ROOT_PATH}/sysMenu/save.do",
+		                success:function(data){  
+		                	window.setTimeout("enableBtn('#btn_save');",Constants.reloadTime);
+		                	if (data.result == '01') {
+		                		toastr.success("修改成功", null, opts);
+		                		window.location.href = '${ROOT_PATH}/sysMenu';
+		                	}
+		                	else
+		                	{
+		                		toastr.error(data.msg, null, opts);
+		                	}
+		                },  
+		                error:function(XmlHttpRequest,textStatus,errorThrown){  
+		                	window.setTimeout("enableBtn('#btn_save');",Constants.reloadTime);
+		                	toastr.error(Constants.netError, null, opts);
+		                }  
+		            }); 
+			});
+	
+			$("#btn_cancel").click(function(){
+				history.back(-1);
+			});
+		});
+		</script>
+</body>
+</html>

+ 273 - 0
code/sapparent/sapcms/src/main/webapp/WEB-INF/jsp/sys/sysmenu/sysmenu-list.jsp

@@ -0,0 +1,273 @@
+<%@ 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="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+	<meta charset="utf-8">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+	<meta name="description" content="Xenon Boostrap Admin Panel" />
+	<meta name="author" content="" />
+	<title>菜单管理</title>
+</head>
+<body class="page-body">
+	<div class="page-container">
+		<%@ include file="../../common/menu.jsp"%>
+		<div class="main-content">
+			<%@ include file="../../common/header.jsp"%>
+			<div class="page-title">
+				<div class="title-env">
+					<h1 class="title">系统菜单管理</h1>
+				</div>
+				<div class="breadcrumb-env">
+					<ol class="breadcrumb bc-1">
+						<li>
+							<a href="#"><i class="fa-home"></i>系统管理</a>
+						</li>
+						<li class="active">
+							<strong>系统菜单管理</strong>
+						</li>
+					</ol>
+				</div>
+			</div>			
+			<!-- Removing search and results count filter -->
+			<div class="panel panel-default">
+			  <c:if test="${PERMISSION.query}">
+				<form class="form-horizontal" role="form" method="post">
+					<div class="form-group">
+						<label class="col-sm-1 control-label">菜单名</label>
+						<div class="col-sm-2">
+							<input type="text" id="name" name="name" class="form-control" id="field-1">
+						</div>
+						<label class="col-sm-1 control-label" for="field-1">父菜单</label>
+						<div class="col-sm-2">
+							<select class="form-control" id="parent_id" name="parent_id"> 
+								<option value="" selected>所有</option>
+							    <c:forEach items="${parent_menu }" var="r">
+							      <option value="${r.id }">${r.name }</option>
+							    </c:forEach>
+							</select>
+						</div>
+						<button type="button" id="btn_search" class="btn btn-info">查询</button>
+						<c:if test="${PERMISSION.add}">
+							<button type="button" class="btn btn-add" onclick="toSave();">新增</button>
+						</c:if>
+					</div>
+				</form>
+			  </c:if>
+				<div class="panel-body">
+					<table class="table table-bordered table-striped" id="table-list">
+						<thead>
+							<tr>
+								<th style="text-align: center;">菜单名</th>
+								<th style="text-align: center;">描述</th>
+								<th style="text-align: center;">url</th>
+								<th style="text-align: center;">排序</th>
+								<th style="text-align: center;">父菜单</th>
+								<th style="text-align: center;">操作</th>
+							</tr>
+						</thead>
+					</table>
+				</div>
+			</div>
+			<%@ include file="../../common/footer.jsp"%>
+		</div>
+	</div>
+	
+	<div class="modal fade" id="modal-delete" data-backdrop="static">
+		<div class="modal-dialog">
+			<div class="modal-content">
+				<div class="modal-header">
+					<h4 class="modal-title">删除提示</h4>
+				</div>
+				<div id="modal-change-status-div" class="modal-body">
+					确定删除该菜单吗?
+				</div>
+				<form role="form" class="form-horizontal">
+					<div class="modal-footer">
+						<input type="hidden" name="ids" id="ids">
+						<button type="button" id="btn_delete" class="btn btn-info" onclick="deleteInfo();">确定</button>
+						<button type="button" class="btn btn-white" data-dismiss="modal">取消</button>
+					</div>
+				</form>
+			</div>
+		</div>
+	</div>
+	
+	<script type="text/javascript">
+		function formReset(){
+			setTimeout(function(){
+				$('#search').click();
+			},100);
+	    }
+		
+		var table;
+		$(function() {
+			//table
+			table = $('#table-list').dataTable({
+				"dom": "t" + "<'row'<'col-xs-6'i><'col-xs-6'p>>",
+				"aaSorting": [
+				//	[3, "asc"]
+				], //默认第几个排序
+				"ordering": false,
+				"aoColumnDefs": [
+					//{"bVisible": false, "aTargets": [ 3 ]} //控制列的隐藏显示
+					{"orderable":false,"aTargets":[0,1,2,3,4,5]} 
+				],
+				"bStateSave": false, //状态保存
+				"bProcessing": false, // 是否显示取数据时的那个等待提示
+                "bServerSide": true,//这个用来指明是通过服务端来取数据
+                "sAjaxSource": "${ROOT_PATH}/sysMenu/findList.do",//这个是请求的地址
+                "bLengthChange" : true,// 每行显示记录数  
+                "iDisplayLength" : 10,// 每页显示行数  
+                "bSort" : true,// 排序
+                "bAutoWidth" : false, //是否自适应宽度  
+                "oLanguage": {  	// 分页语言
+                    "sLengthMenu": "每页显示 _MENU_  条",  
+                    "sZeroRecords": "没有找到符合条件的数据",  
+                    "sProcessing": "我也是醉了,正在加载数据...",  
+                    "sInfo": "当前第 _START_ - _END_ 条 共计 _TOTAL_ 条",  
+                    "sInfoEmpty": "没有记录",  
+                    "sInfoFiltered": "(从 _MAX_ 条记录中过滤)",  
+                    "sSearch": "搜索:",  
+                    "oPaginate": {  
+                        "sFirst": "首页",  
+                        "sPrevious": "前一页",  
+                        "sNext": "后一页",  
+                        "sLast": "尾页"  
+                    }  
+        		},
+				"aoColumns": [
+					 {  
+                        "sClass":"center", 
+                        "mDataProp" : "name", 
+                        "aTargets":[0],  
+                        "mData":"name"
+                    },
+                    {  
+                        "sClass":"center", 
+                        "mDataProp" : "description", 
+                        "aTargets":[1],  
+                        "mData":"description"
+                    }, 
+                    {  
+                        "sClass":"center", 
+                        "mDataProp" : "url", 
+                        "aTargets":[2],  
+                        "mData":"url"
+                    },
+                    {  
+                        "sClass":"center", 
+                        "mDataProp" : "order_by", 
+                        "aTargets":[3],
+                        "mData":"order_by"
+                    },
+                    {  
+                        "sClass":"center", 
+                        "mDataProp" : "p_name", 
+                        "aTargets":[4],  
+                        "mData":"p_name"
+                    },
+					{  
+                    	"sClass":"center",  
+                        "aTargets":[5],  
+                        "mRender":function(a,b,c,d){//a表示statCleanRevampId对应的值,c表示当前记录行对象  
+							var ru = '';
+                        	var _sysMenu = true;
+                        	if(c.id != '1' && c.id != '2' && c.id != '3' && c.id != '4' && c.id != '5'){
+                        		_sysMenu = false;
+                        	}
+							if('${PERMISSION.update}' == 'true' && !_sysMenu){
+                        		ru += '<a href=\"javascript:;\" class=\"btn btn-secondary btn-sm btn-icon icon-left\" onclick=\"toModify(\''+ c.id +'\');\">修改</a>';
+							}
+							if('${PERMISSION.delete}' == 'true' && !_sysMenu){
+								ru += '<a href=\"javascript:;\" class=\"btn btn-danger btn-sm btn-icon icon-left\" onclick=\"deleteTip(\''+ c.id +'\',\''+c.p_name+'\');\">删除</a>';
+							}
+							if('${PERMISSION.update}' != 'true' && '${PERMISSION.delete}' != 'true'){
+								ru = '无权限';
+							}
+						    return ru;   
+                        }  
+                    }
+				],
+				 "fnServerData" : function(sSource, aoData, fnCallback) {  
+	                //获取检索参数
+					var name = $("#name").val();
+					var parent_id = $("#parent_id").val();
+					 $.ajax({
+			                url : sSource,//这个就是请求地址对应sAjaxSource
+			                data : {"aoData":JSON.stringify(aoData),"name":name,"parent_id":parent_id},//这个是把datatable的一些基本数据传给后台,比如起始位置,每页显示的行数
+			                type : 'post',
+			                dataType : 'json',
+			                async : false,
+			                success : function(result) {
+			                	fnCallback(result);//把返回的数据传给这个方法就可以了,datatable会自动绑定数据的
+			    				//表格数据居中
+			    				$("td").attr("style","text-align:center");
+			                },
+			                error : function(msg) {
+			                }
+			            });
+		           }  
+			});
+			//检索
+			$('#btn_search').click( function() {
+			    table.fnDraw();
+			});
+		});
+		
+		/** 添加系统菜单 */
+		function toSave()
+		{
+			window.location.href='${ROOT_PATH}/sysMenu/toAdd';
+		}
+		
+		/** 修改系统菜单 */
+		function toModify(id)
+		{
+			window.location.href='${ROOT_PATH}/sysMenu/toEdit.do?id=' + id;
+		}
+		
+		/** 菜单删除 */
+		function deleteInfo()
+		{
+			var id = $("#ids").val();
+			$("#btn_delete").attr("disabled","disabled");
+			$.ajax({
+                url : "${ROOT_PATH}/sysMenu/delete.do",
+                data : {"id":id},
+                type : 'post',
+                dataType : 'json',
+                async : false,
+                success : function(data) {
+                	window.setTimeout("enableBtn('#btn_delete');",Constants.reloadTime);
+                	if(data.result == '01'){
+                		$("#modal-delete").modal('hide');
+                		table.fnDraw();
+	                }
+                	else
+                	{
+                		$("#modal-delete").modal('hide');
+                	}
+                },
+                error : function(msg) {
+                	window.setTimeout("enableBtn('#btn_delete');",Constants.reloadTime);
+                	$("#modal-delete").modal('hide');
+                }
+            });
+		}
+		
+		/** 账号删除 */
+		function deleteTip(id,name){
+			$("#ids").val(id);
+			if(name == null || name == "" || name == "null")
+			{
+				$("#modal-change-status-div").html("该菜单包含子菜单,确定删除该菜单吗?");
+			}
+			jQuery('#modal-delete').modal('show', {backdrop: 'static'});
+		}
+
+	</script>
+</body>
+</html>

+ 124 - 0
code/sapparent/sapcms/src/main/webapp/WEB-INF/jsp/sys/sysrole/button-role.jsp

@@ -0,0 +1,124 @@
+<%@ 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="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+	<meta charset="utf-8">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+	<meta name="description" content="Xenon Boostrap Admin Panel" />
+	<meta name="author" content="" />
+	<link rel="stylesheet" href="${ROOT_PATH}/public/plugin/zTree/v3/css/zTreeStyle/zTreeStyle.css" type="text/css">
+	<title>权限分配</title>
+</head>
+<body class="page-body">
+	<article style="height: 200px;" class="page-container">
+		<table class="table">
+			<tr>
+				<td class="va-t"><ul id="ztree" class="ztree"></ul></td>  
+			</tr>
+			<tr>
+				<td class="va-t">
+				<div class="row cl">
+					<div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-2">
+						<button type="button" id="btn_setting"  class="btn btn-info" onclick="save();">确定</button>
+						<button type="button" class="btn btn-white" onclick="disMissModel()">取消</button>   
+					 </div>
+				</div>
+				</td> 
+			</tr>
+		</table> 
+	</article>
+	
+	<script type="text/javascript" src="${ROOT_PATH}/public/plugin/zTree/v3/js/jquery.ztree.all-3.5.min.js"></script> 
+	<script type="text/javascript">
+	var setting = {
+		   view: {
+			dblClickExpand: false,//双击节点时,是否自动展开父节点的标识
+			showLine: true,//是否显示节点之间的连线
+			selectedMulti: false,//设置是否允许同时选中多个节点
+		},
+		check:{
+			/* chkboxType: { "Y":"ps", "N": "ps" }, */
+			chkStyle: "checkbox",//复选框类型
+			enable: true //每个节点上是否显示 CheckBox 
+		  },
+		data: {
+			simpleData: {//简单数据模式
+				enable:true,
+				idKey: "id",
+				pIdKey: "pId",
+				rootPId: ""
+			}
+		}, 
+		callback: {
+			beforeClick: function(treeId, treeNode) {
+				var zTree = $.fn.zTree.getZTreeObj("tree");
+				if (treeNode.isParent) {
+					zTree.expandNode(treeNode);//如果是父节点,则展开该节点
+				} else {
+					zTree.checkNode(treeNode, !treeNode.checked, true, true);//单击勾选,再次单击取消勾选
+				}
+			}
+		}
+	};
+	
+	var zNodes =JSON.parse('${zTreeNodes}');
+	var size = '${size}';
+	var code;
+
+	function showCode(str) {
+		if (!code) code = $("#code");
+		code.empty();
+		code.append("<li>"+str+"</li>");
+	}
+			
+	$(document).ready(function(){
+		var t = $("#ztree");
+		if(size <= 0){
+			$("#modal-setting-body").html("请先设置菜单权限");
+			$("#modal-footer").removeAttr("hidden");
+		}else{
+			t = $.fn.zTree.init(t, setting, zNodes);
+			$("#modal-footer").attr("hidden","hidden");
+		}
+	});
+	
+	function save(){
+		var zTree = $.fn.zTree.getZTreeObj("ztree")
+		var nodes = zTree.getCheckedNodes();
+		var tmpNode;
+		var ids = "";
+		for(var i=0; i<nodes.length; i++){
+			tmpNode = nodes[i];
+			if(i!=nodes.length-1){
+				ids += tmpNode.id+",";
+			}else{
+				ids += tmpNode.id;
+			}
+		}
+		
+		var roleId = "${roleId}";
+		var msg = "${msg}";
+		var url = "${ROOT_PATH}/sysRole/saveButton.do";
+		var postData = {"ROLE_ID":roleId,"menuIds":ids,"msg":msg};
+		$("#btn_setting").attr("disabled","disabled");
+		$.post(url,postData,function(result){
+			window.setTimeout("enableBtn('#btn_setting');",Constants.reloadTime);
+			if(result.status == 1){ 
+				$("#modal-setting").modal('hide');
+				toastr.success("操作成功", null, opts);
+			}else{
+				toastr.error(result.msg, null, opts);
+			}
+			location.reload();
+		});
+	}
+	
+	function disMissModel(){
+    	location.reload();
+	}
+</script>	
+</body>
+</html>

+ 120 - 0
code/sapparent/sapcms/src/main/webapp/WEB-INF/jsp/sys/sysrole/sysrole-add.jsp

@@ -0,0 +1,120 @@
+<%@ 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="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+	<meta charset="utf-8">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+	<meta name="description" content="Xenon Boostrap Admin Panel" />
+	<meta name="author" content="" />
+	<title>系统角色管理</title>
+</head>
+<body class="page-body">
+	<div class="page-container">
+		<%@ include file="../../common/menu.jsp"%>
+		<div class="main-content">
+			<%@ include file="../../common/header.jsp"%>
+			<div class="page-title">
+				<div class="title-env">
+					<h1 class="title">新增系统角色</h1>
+				</div>
+				<div class="breadcrumb-env">
+					<ol class="breadcrumb bc-1">
+						<li>
+							<a href="javascript:;"><i class="fa-home"></i>系统管理</a>
+						</li>
+						<li class="active">
+							<strong>新增系统角色</strong>
+						</li>
+					</ol>
+				</div>
+			</div>
+			<!-- Removing search and results count filter -->
+			<div class="row">
+				<div class="col-sm-12">
+					<div class="panel panel-default">
+						<div class="panel-body">
+							<form role="form" id="addUserForm" class="form-horizontal">
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="name">角色名</label>
+									<div class="col-sm-4">
+										<input type="text" class="form-control" id="name" name="name" value="">
+									</div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="description">描述</label>
+									<div class="col-sm-4">
+										<input type="text" class="form-control" id="description" name="description" value=""  />
+									</div>
+								</div>
+								<div class="form-group" style="display: none;">
+									<label class="col-sm-2 control-label" for="description">数据权限</label>
+									<div class="col-sm-4">
+										<label class="radio-inline">
+											<input type="radio" value="personal" name="data_level" style="margin-top: 2px;">
+											仅查看自己相关
+										</label>
+										<label class="radio-inline">
+											<input type="radio" value="all" checked="checked" name="data_level" style="margin-top: 2px;">
+											查看所有
+										</label>
+									</div>
+								</div>
+								<div class="form-group-separator"></div>
+								<div class="form-group">
+									<div class="col-sm-6" style="text-align: center;">
+										<button type="button" id="btn_save" class="btn btn-info" >保存</button>
+										<button type="button" id="btn_cancel" class="btn btn-white" >返回</button>
+										<input id="token" type="hidden" name="token" value="${SESSION_TOKEN }"/>
+									</div>
+								</div>
+							</form>
+						</div>
+					</div>
+				</div>
+			</div>
+			<%@ include file="../../common/footer.jsp"%>
+		</div>
+	</div>
+	
+	<script type="text/javascript">
+		$(function() {
+			$("#btn_save").click(function(){
+				var name = $("#name").val();
+				if(!checkStr(name)){
+					toastr.error("角色名不能为空", null, opts);
+					return false;
+				}
+				
+				$("#btn_save").attr("disabled","disabled");
+				
+				 $("#addUserForm").ajaxSubmit({  
+		                type:'post',
+		                dataType: "json",
+		                url : "${ROOT_PATH}/sysRole/save.do",
+		                success:function(data){  
+		                	window.setTimeout("enableBtn('#btn_save');",Constants.reloadTime);
+		                	if (data.result == '01') {
+		                		toastr.success("新增成功", null, opts);
+		                		window.location.href = '${ROOT_PATH}/sysRole';
+		                	}else{
+		                		toastr.error(data.msg, null, opts);
+		                	}
+		                },  
+		                error:function(XmlHttpRequest,textStatus,errorThrown){
+		                	window.setTimeout("enableBtn('#btn_save');",Constants.reloadTime);
+		                	toastr.error(Constants.netError, null, opts);
+		                }  
+		            }); 
+				
+			});
+			
+			$("#btn_cancel").click(function(){
+				history.back(-1);
+			});
+		});
+	</script>
+</body>
+</html>

+ 126 - 0
code/sapparent/sapcms/src/main/webapp/WEB-INF/jsp/sys/sysrole/sysrole-edit.jsp

@@ -0,0 +1,126 @@
+<%@ 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="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+	<meta charset="utf-8">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+	<meta name="description" content="Xenon Boostrap Admin Panel" />
+	<meta name="author" content="" />
+	<title>系统角色管理</title>
+</head>
+<body class="page-body">
+	<div class="page-container">
+		<%@ include file="../../common/menu.jsp"%>
+		<div class="main-content">
+			<%@ include file="../../common/header.jsp"%>
+			<div class="page-title">
+				<div class="title-env">
+					<h1 class="title">修改系统角色</h1>
+				</div>
+				<div class="breadcrumb-env">
+					<ol class="breadcrumb bc-1">
+						<li>
+							<a href="javascript:;"><i class="fa-home"></i>系统管理</a>
+						</li>
+						<li class="active">
+							<strong>修改系统角色</strong>
+						</li>
+					</ol>
+				</div>
+			</div>
+			<!-- Removing search and results count filter -->
+			<div class="row">
+				<div class="col-sm-12">
+					<div class="panel panel-default">
+						<div class="panel-body">
+							<form role="form" id="addUserForm" class="form-horizontal">
+								<input type="hidden" name="id" id="id" value="${role.id}"/>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="name">角色名</label>
+									<div class="col-sm-4">
+										<input type="text" class="form-control" id="name" name="name" value="${role.name}">
+									</div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="description">描述</label>
+									<div class="col-sm-4">
+										<input type="text" class="form-control" id="description" name="description" value="${role.description}"/>
+									</div>
+								</div>
+								<div class="form-group" style="display: none;">
+									<label class="col-sm-2 control-label" for="description">数据权限</label>
+									<div class="col-sm-4">
+										<label class="radio-inline">
+											<input type="radio" value="personal" name="data_level" style="margin-top: 2px;" 
+												<c:if test="${role.data_level != 'all'}">checked="checked"</c:if>>
+											仅查看自己相关
+										</label>
+										<label class="radio-inline">
+											<input type="radio" value="all" name="data_level" style="margin-top: 2px;" 
+												<c:if test="${role.data_level == 'all'}">checked="checked"</c:if>>
+											查看所有
+										</label>
+									</div>
+								</div>
+								<div class="form-group-separator"></div>
+								<div class="form-group">
+									<div class="col-sm-6" style="text-align: center;">
+										<button type="button" id="btn_save" class="btn btn-info" >保存</button>
+										<button type="button" id="btn_cancel" class="btn btn-white" >返回</button>
+										<input id="token" type="hidden" name="token" value="${SESSION_TOKEN }"/>
+									</div>
+								</div>
+							</form>
+						</div>
+					</div>
+				</div>
+			</div>
+			<%@ include file="../../common/footer.jsp"%>
+		</div>
+	</div>
+	
+	<script type="text/javascript">
+		
+		$(function() {
+			
+			$("#btn_save").click(function(){
+				var name = $("#name").val();
+				if(!checkStr(name)){
+					toastr.error("角色名不能为空", null, opts);
+					return false;
+				}
+				$("#btn_save").attr("disabled","disabled");
+				 $("#addUserForm").ajaxSubmit({  
+		                type:'post',
+		                dataType: "json",
+		                url : "${ROOT_PATH}/sysRole/save.do",
+		                success:function(data){  
+		                	window.setTimeout("enableBtn('#btn_save');",Constants.reloadTime);
+		                	if (data.result == '01') {
+		                		toastr.success("修改成功", null, opts);
+		                		window.location.href = '${ROOT_PATH}/sysRole';
+		                	}
+		                	else
+		                	{
+		                		toastr.error(data.msg, null, opts);
+		                	}
+		                },  
+		                error:function(XmlHttpRequest,textStatus,errorThrown){  
+		                	window.setTimeout("enableBtn('#btn_save');",Constants.reloadTime);
+		                	toastr.error(Constants.netError, null, opts);
+		                }  
+		            }); 
+				
+			});
+			
+			$("#btn_cancel").click(function(){
+				history.back(-1);
+			});
+		});
+		
+		</script>
+</body>
+</html>

+ 347 - 0
code/sapparent/sapcms/src/main/webapp/WEB-INF/jsp/sys/sysrole/sysrole-list.jsp

@@ -0,0 +1,347 @@
+<%@ 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="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+	<meta charset="utf-8">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+	<meta name="description" content="Xenon Boostrap Admin Panel" />
+	<meta name="author" content="" />
+	<title>系统角色管理</title>
+</head>
+<body class="page-body">
+	<div class="page-container">
+		<%@ include file="../../common/menu.jsp"%>
+		<div class="main-content">
+			<%@ include file="../../common/header.jsp"%>
+			<div class="page-title">
+				<div class="title-env">
+					<h1 class="title">系统角色管理</h1>
+				</div>
+				<div class="breadcrumb-env">
+					<ol class="breadcrumb bc-1">
+						<li>
+							<a href="#"><i class="fa-home"></i>角色管理</a>
+						</li>
+						<li class="active">
+							<strong>系统角色管理</strong>
+						</li>
+					</ol>
+				</div>
+			</div>			
+			<!-- Removing search and results count filter -->
+			<div class="panel panel-default">
+			  <c:if test="${PERMISSION.query}">
+				<form class="form-horizontal" role="form" method="post">
+					<div class="form-group">
+						<label class="col-sm-1 control-label">角色名</label>
+						<div class="col-sm-2">
+							<input type="text" id="name" name="name" class="form-control" id="field-1">
+						</div>
+						<button type="button" id="btn_search" class="btn btn-info">查询</button>
+						<c:if test="${PERMISSION.add}">
+							<button type="button" class="btn btn-add" onclick="toSave();">新增</button>
+						</c:if>
+					</div>
+				</form>
+			  </c:if>
+				<div class="panel-body">
+					<table class="table table-bordered table-striped" id="table-list">
+						<thead>
+							<tr>
+								<th style="text-align: center;">角色名</th>
+								<th style="text-align: center;">查询</th>
+								<th style="text-align: center;">新增</th>
+								<th style="text-align: center;">修改</th>
+								<th style="text-align: center;">删除</th>
+								<!-- <th style="text-align: center;">数据权限</th> -->
+								<th style="text-align: center;">创建人</th>
+								<th style="text-align: center;">操作</th>
+							</tr>
+						</thead>
+					</table>
+				</div>
+			</div>
+			<%@ include file="../../common/footer.jsp"%>
+		</div>
+	</div>
+	
+	<div class="modal fade" id="modal-delete" data-backdrop="static">
+		<div class="modal-dialog">
+			<div class="modal-content">
+				<div class="modal-header">
+					<h4 class="modal-title">删除提示</h4>
+				</div>
+				<div id="modal-body" class="modal-body">
+					确定删除该角色吗?
+				</div>
+				<form role="form" class="form-horizontal">
+					<div class="modal-footer">
+						<input type="hidden" name="ids" id="ids">
+						<button type="button" id="btn_delete" class="btn btn-info" onclick="deleteInfo();">确定</button>
+						<button type="button"  class="btn btn-white" data-dismiss="modal">取消</button>
+					</div>
+				</form>
+			</div>
+		</div>
+	</div>
+	
+	<div class="modal fade" id="modal-setting" data-backdrop="static">
+		<div class="modal-dialog">
+			<div class="modal-content">
+				<div class="modal-header">
+					<h4 id="modal-title" class="modal-title">权限设置</h4>
+				</div>
+				<div id="modal-setting-body" class="modal-body">
+				</div>
+				<div id="modal-footer" hidden="hidden" class="modal-footer">
+					<button type="button" class="btn btn-white" data-dismiss="modal">取消</button>
+				</div>
+			</div>
+		</div>
+	</div>
+	
+	<script type="text/javascript">
+		function formReset(){
+			setTimeout(function(){
+				$('#search').click();
+			},100);
+	    }
+		
+		var table;
+		$(function() {
+			//table
+			table = $('#table-list').dataTable({
+				"dom": "t" + "<'row'<'col-xs-6'i><'col-xs-6'p>>",
+				"aaSorting": [
+				//	[7, "desc"]
+				], //默认第几个排序
+				"ordering": false,
+				"aoColumnDefs": [
+					//{"bVisible": false, "aTargets": [ 3 ]} //控制列的隐藏显示
+					{"orderable":false,"aTargets":[0,1,2,3,4,5,6]} 
+				],
+				"bStateSave": false, //状态保存
+				"bProcessing": false, // 是否显示取数据时的那个等待提示
+                "bServerSide": true,//这个用来指明是通过服务端来取数据
+                "sAjaxSource": "${ROOT_PATH}/sysRole/findList.do",//这个是请求的地址
+                "bLengthChange" : true,// 每行显示记录数  
+                "iDisplayLength" : 10,// 每页显示行数  
+                "bSort" : true,// 排序
+                "bAutoWidth" : false, //是否自适应宽度  
+                "oLanguage": {  	// 分页语言
+                    "sLengthMenu": "每页显示 _MENU_  条",  
+                    "sZeroRecords": "没有找到符合条件的数据",  
+                    "sProcessing": "我也是醉了,正在加载数据...",  
+                    "sInfo": "当前第 _START_ - _END_ 条 共计 _TOTAL_ 条",  
+                    "sInfoEmpty": "没有记录",  
+                    "sInfoFiltered": "(从 _MAX_ 条记录中过滤)",  
+                    "sSearch": "搜索:",  
+                    "oPaginate": {  
+                        "sFirst": "首页",  
+                        "sPrevious": "前一页",  
+                        "sNext": "后一页",  
+                        "sLast": "尾页"  
+                    }  
+        		},
+				"aoColumns": [
+					 {  
+                        "sClass":"center", 
+                        "mDataProp" : "name", 
+                        "aTargets":[0],  
+                        "mData":"name"
+                    },
+                    {  
+                        "sClass":"center", 
+                        "mDataProp" : "query_flag", 
+                        "aTargets":[1],  
+                        "mRender":function(a,b,c,d){//a表示statCleanRevampId对应的值,c表示当前记录行对象  
+                        	var ru = '';
+                        	if('${PERMISSION.update}' == 'true'){
+                        		ru += '<a href=\"javascript:;\" class=\"btn btn-white btn-sm btn-icon icon-left\" onclick=\"settingTip(\''+ c.id +'\',\'query_flag\');\">配置权限</a>';
+                        	}
+ 						   	return ru;   
+                         }  
+                    },
+                    {  
+                        "sClass":"center", 
+                        "mDataProp" : "add_flag", 
+                        "aTargets":[2],  
+                        "mRender":function(a,b,c,d){//a表示statCleanRevampId对应的值,c表示当前记录行对象  
+                        	var ru = '';
+                        	if('${PERMISSION.update}' == 'true'){
+                        		ru += '<a href=\"javascript:;\" class=\"btn btn-white btn-sm btn-icon icon-left\" onclick=\"settingTip(\''+ c.id +'\',\'add_flag\');\">配置权限</a>';
+                        	}
+ 						   	return ru;   
+                         }  
+                    },
+                    {  
+                        "sClass":"center", 
+                        "mDataProp" : "update_flag", 
+                        "aTargets":[3],  
+                        "mRender":function(a,b,c,d){//a表示statCleanRevampId对应的值,c表示当前记录行对象  
+                        	var ru = '';
+                        	if('${PERMISSION.update}' == 'true'){
+                        		ru += '<a href=\"javascript:;\" class=\"btn btn-white btn-sm btn-icon icon-left\" onclick=\"settingTip(\''+ c.id +'\',\'update_flag\');\">配置权限</a>';
+                        	}
+ 						   	return ru;   
+                         }  
+                    },
+                    {  
+                        "sClass":"center", 
+                        "mDataProp" : "delete_flag", 
+                        "aTargets":[4],  
+                        "mRender":function(a,b,c,d){//a表示statCleanRevampId对应的值,c表示当前记录行对象  
+                        	var ru = '';
+                        	if('${PERMISSION.update}' == 'true'){
+                        		ru += '<a href=\"javascript:;\" class=\"btn btn-white btn-sm btn-icon icon-left\" onclick=\"settingTip(\''+ c.id +'\',\'delete_flag\');\">配置权限</a>';
+                        	}
+ 						    return ru;   
+                         }  
+                    },
+                    /* {  
+                        "sClass":"center", 
+                        "mDataProp" : "data_level", 
+                        "aTargets":[5],  
+                        "mRender":function(a,b,c,d){//a表示statCleanRevampId对应的值,c表示当前记录行对象  
+                        	if(c.data_level == 'personal'){
+                        		return "仅查看自己相关";
+                        	}else if(c.data_level == 'all'){
+                        		return "查看所有";
+                        	}else{
+                        		return "";
+                        	}
+                         }  
+                    }, */
+                    {  
+                        "sClass":"center", 
+                        "mDataProp" : "create_by", 
+                        "aTargets":[5],  
+                        "mData":"create_by"
+                    },
+					{  
+                    	"sClass":"center",  
+                        "aTargets":[6],  
+                        "mRender":function(a,b,c,d){//a表示statCleanRevampId对应的值,c表示当前记录行对象  
+							var ru = '';
+							if('${PERMISSION.update}' == 'true'){
+	                        	ru += '<a href=\"javascript:;\" class=\"btn btn-secondary btn-sm btn-icon icon-left\" onclick=\"toModify(\''+ c.id +'\');\">修改</a>';
+								ru += '<a href=\"javascript:;\" class=\"btn btn-white btn-sm btn-icon icon-left\" onclick=\"settingTip(\''+ c.id +'\',\'all\');\">配置菜单</a>';
+							}
+							if('${PERMISSION.delete}' == 'true'){
+								ru += '<a href=\"javascript:;\" class=\"btn btn-danger btn-sm btn-icon icon-left\" onclick=\"deleteTip(\''+ c.id +'\');\">删除</a>';
+							}
+							if('${PERMISSION.update}' != 'true' && '${PERMISSION.delete}' != 'true'){
+								ru = '无权限';
+							}
+						    return ru;   
+                        }  
+                    }
+				],
+				 "fnServerData" : function(sSource, aoData, fnCallback) {  
+	                //获取检索参数
+					var name = $("#name").val();
+					 $.ajax({
+			                url : sSource,//这个就是请求地址对应sAjaxSource
+			                data : {"aoData":JSON.stringify(aoData),"name":name},//这个是把datatable的一些基本数据传给后台,比如起始位置,每页显示的行数
+			                type : 'post',
+			                dataType : 'json',
+			                async : false,
+			                success : function(result) {
+			                	fnCallback(result);//把返回的数据传给这个方法就可以了,datatable会自动绑定数据的
+			    				//表格数据居中
+			    				$("td").attr("style","text-align:center");
+			                },
+			                error : function(msg) {
+			                }
+			            });
+		           }  
+			});
+			//检索
+			$('#btn_search').click( function() {
+			    table.fnDraw();
+			});
+		});
+		
+		/** 添加系统角色 */
+		function toSave()
+		{
+			window.location.href='${ROOT_PATH}/sysRole/toSave.do';
+		}
+		
+		/** 修改系统角色 */
+		function toModify(id)
+		{
+			window.location.href='${ROOT_PATH}/sysRole/toEdit.do?id=' + id;
+		}
+		
+		/** 账号删除 */
+		function deleteInfo()
+		{
+			var id = $("#ids").val();
+			$("#btn_setting").attr("disabled","disabled");
+			$.ajax({
+                url : "${ROOT_PATH}/sysRole/delete.do",
+                data : {"id":id},
+                type : 'post',
+                dataType : 'json',
+                async : false,
+                success : function(data) {
+                	window.setTimeout("enableBtn('#btn_setting');",Constants.reloadTime);
+                	if(data.result == '01'){
+                		$("#modal-delete").modal('hide');
+                		table.fnDraw();
+	                }
+                	else
+                	{
+                		$("#modal-delete").modal('hide');
+                	}
+                },
+                error : function(msg) {
+                	window.setTimeout("enableBtn('#btn_setting');",Constants.reloadTime);
+                	$("#modal-delete").modal('hide');
+                }
+            });
+		}
+		
+		/** 账号删除 */
+		function deleteTip(id){
+			$("#ids").val(id);
+			jQuery('#modal-delete').modal('show', {backdrop: 'static'});
+		}
+		
+		//按钮权限
+		function settingTip(id,role){
+			var title;
+			if(role == "all"){
+				title="角色权限设置";
+			}else if(role == "query_flag"){
+				title="查询权限设置";
+			}else if(role == "add_flag"){
+				title="新增权限设置";
+			}else if(role == "update_flag"){
+				title="修改权限设置";
+			}else if(role == "delete_flag"){
+				title="删除权限设置";
+			}
+			$.ajax({
+                url : "${ROOT_PATH}/sysRole/button.do?ROLE_ID="+id+"&msg="+role,
+                data : {"id":id},
+                type : 'post',
+                dataType : 'html',
+                async : false,
+                success : function(data) {
+                	$("#modal-setting-body").html(data);
+                },
+                error : function(msg) {
+                	$("#modal-setting").modal('hide');
+                }
+            });
+			$("#modal-title").html(title);
+			jQuery('#modal-setting').modal('show', {backdrop: 'static'});
+		}
+	</script>
+</body>
+</html>

+ 219 - 0
code/sapparent/sapcms/src/main/webapp/WEB-INF/jsp/sys/sysuser/sysuser-add.jsp

@@ -0,0 +1,219 @@
+<%@ 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="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+	<meta charset="utf-8">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+	<meta name="description" content="Xenon Boostrap Admin Panel" />
+	<meta name="author" content="" />
+	<title>系统用户管理</title>
+</head>
+<body class="page-body">
+	<div class="page-container">
+		<%@ include file="../../common/menu.jsp"%>
+		<div class="main-content">
+			<%@ include file="../../common/header.jsp"%>
+			<div class="page-title">
+				<div class="title-env">
+					<h1 class="title">新增系统用户</h1>
+				</div>
+				<div class="breadcrumb-env">
+					<ol class="breadcrumb bc-1">
+						<li>
+							<a href="${ROOT_PATH}/sysUser"><i class="fa-home"></i>系统管理</a>
+						</li>
+						
+						<li class="active">
+							<strong>新增系统用户</strong>
+						</li>
+					</ol>
+				</div>
+			</div>
+			<!-- Removing search and results count filter -->
+			<div class="row">
+				<div class="col-sm-12">
+					<div class="panel panel-default">
+						<div class="panel-body">
+							<form role="form" id="addUserForm" class="form-horizontal">
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="user_name"><font color="red">*</font>用户名</label>
+									<div class="col-sm-4">
+										<input type="text" class="form-control" id="user_name" name="user_name" value="">
+									</div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="password"><font color="red">*</font>密码</label>
+									<div class="col-sm-4">
+										<input type="password" class="form-control" id="password" name="password" value=""  />
+									</div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label"><font color="red">*</font>性别</label>
+									<div class="col-sm-4">
+											<label class="radio-inline">
+												<input type="radio" value="1" checked="checked" id="sex" name="sex" style="margin-top: 2px;">
+												男
+											</label>
+											<label class="radio-inline">
+												<input type="radio" value="2" id="sex" name="sex" style="margin-top: 2px;">
+												女
+											</label>
+									</div>
+									<div class="col-sm-6"></div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="real_name"><font color="red">*</font>真实姓名</label>
+									<div class="col-sm-4">
+										<input type="text" class="form-control" id="real_name" name="real_name" value="" />
+									</div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="phone"><font color="red">*</font>手机号码</label>
+									<div class="col-sm-4">
+										<input type="text" class="form-control" name="phone" id="phone" value="">
+									</div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="email">邮箱</label>
+									<div class="col-sm-4">
+										<input type="text" class="form-control" name="email" id="email" value="">
+									</div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" ><font color="red">*</font>用户角色</label>
+									<div class="col-sm-4">
+										<select class="form-control" id="role" name="role">
+											<option value=""  >请选择用户角色</option>
+											<c:forEach var="r" items="${rList }" >
+											    <option value="${r.id }">${r.name }</option>
+											</c:forEach>
+										</select>		
+									</div>
+								</div>
+								<div class="form-group-separator"></div>
+								<div class="form-group">
+									<div class="col-sm-6" style="text-align: center;">
+										<button type="button" id="btn_save" class="btn btn-info" >保存</button>
+										<button type="button" id="btn_cancel" class="btn btn-white" >返回</button>
+										<input id="token" type="hidden" name="token" value="${SESSION_TOKEN }"/>
+									</div>
+								</div>
+							</form>
+						</div>
+					</div>
+				</div>
+			</div>
+			<%@ include file="../../common/footer.jsp"%>
+		</div>
+	</div>
+	
+	<script type="text/javascript">
+		
+		$(function() {
+			
+			$("#btn_save").click(function(){
+				var user_name = $("#user_name").val();
+				var password = $("#password").val();
+				var real_name = $("#real_name").val();
+				var phone = $("#phone").val();
+				var role = $("#role").val();
+				var email = $("#email").val();
+				if(!checkStr(user_name)){
+					toastr.error("用户名不能为空", null, opts);
+					return false;
+				}
+				if(!checkStr(password)){
+					toastr.error("密码不能为空", null, opts);
+					return false;
+				}
+				if(!checkStr(real_name)){
+					toastr.error("真实姓名不能为空", null, opts);
+					return false;
+				}
+				if(!checkStr(user_name)){
+					toastr.error("手机号码不能为空", null, opts);
+					return false;
+				}
+				if(!Constants.phoneReg.test(phone)){    
+		            toastr.error("请输入正确的手机号码", null, opts);
+		            return false;
+		        }
+				if(!isNull(email) && !Constants.emailReg.test(email)){    
+		            toastr.error("请输入正确的邮箱", null, opts);
+		            return false;
+		        }
+				if(!checkStr(role)){
+					toastr.error("用户角色不能为空", null, opts);
+					return false;
+				}
+				$("#btn_save").attr("disabled","disabled");
+				 $("#addUserForm").ajaxSubmit({  
+		                type:'post',
+		                dataType: "json",
+		                url : "${ROOT_PATH}/sysUser/addUser.do",
+		                success:function(data){  
+		                	window.setTimeout("enableBtn('#btn_save');",Constants.reloadTime);
+		                	if (data.result == '01') {
+		                		toastr.success("新增成功", null, opts);
+		                		window.setTimeout("reloadPage();",Constants.reloadTime);
+		                	} else {
+		                		toastr.error(data.msg, null, opts);
+		                	}
+		                },  
+		                error:function(XmlHttpRequest,textStatus,errorThrown){
+		                	window.setTimeout("enableBtn('#btn_save');",Constants.reloadTime);
+		                	toastr.error(Constants.netError, null, opts);
+		                }  
+		            }); 
+				
+			});
+			
+			
+			$("#btn_cancel").click(function(){
+				history.back(-1);
+			});
+			
+			//根据省份id获取城市列表
+			$("#province_code").bind("change",function(){
+				//清除city下拉框下的下拉项  
+				$("#city_code option:not(:first)").remove();
+				if ($(this).val() == '') {  
+			        return false;  
+			    }else{  
+			        var province_id = $(this).val();  
+			     	// 根据省查找城市
+				    $.ajax({
+		                url : "${ROOT_PATH}/pcd/cityListByProvince.do",
+		                data : {"province_id":province_id},
+		                type : 'post',
+		                dataType : 'json',
+		                async : false,
+		                success : function(data) {
+		                	 //得到回调数据  
+		    		        if (data.citys.length != 0) {
+		    		        	for (var i = 0; i < data.citys.length; i++) {
+		    		                var id = data.citys[i].id;  
+		    		                var cityName = data.citys[i].name;
+		    		                //添加下拉项  
+		    		                $("#city_code").append("<option value="+ id +">"+ cityName +"</option>"); 		    		                
+		    		            }
+		    		        }
+		                },
+		                error : function(msg) {
+		                	
+		                	
+		                }
+		            });
+			    }  
+			});
+		});
+		
+		function reloadPage(){
+			window.location.href = '${ROOT_PATH}/sysUser';
+		}
+	</script>
+</body>
+</html>

+ 280 - 0
code/sapparent/sapcms/src/main/webapp/WEB-INF/jsp/sys/sysuser/sysuser-edit.jsp

@@ -0,0 +1,280 @@
+<%@ 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="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+	<meta charset="utf-8">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+	<meta name="description" content="Xenon Boostrap Admin Panel" />
+	<meta name="author" content="" />
+	<title>系统用户管理</title>
+</head>
+<body class="page-body">
+	<div class="page-container">
+		<%@ include file="../../common/menu.jsp"%>
+		<div class="main-content">
+			<%@ include file="../../common/header.jsp"%>
+			<div class="page-title">
+				<div class="title-env">
+					<h1 class="title">修改系统用户</h1>
+				</div>
+				<div class="breadcrumb-env">
+					<ol class="breadcrumb bc-1">
+						<li>
+							<a href="${ROOT_PATH}/sysUser"><i class="fa-home"></i>系统管理</a>
+						</li>
+						<li class="active">
+							<strong>修改系统用户</strong>
+						</li>
+					</ol>
+				</div>
+			</div>
+			<!-- Removing search and results count filter -->
+			<div class="row">
+				<div class="col-sm-12">
+					<div class="panel panel-default">
+						<div class="panel-body">
+							<form role="form" id="editUserForm" class="form-horizontal" >
+								<input type="hidden" name="id" id="id" value="${user.id}"/>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="field-1"><font color="red">*</font>用户名</label>
+									<div class="col-sm-4">
+										<input type="text" class="form-control" id="user_name" name="user_name" value="${user.user_name}" >
+									</div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="password">密码</label>
+									<div class="col-sm-4" style="display: none;" id="password-div">
+										<input type="text" class="form-control" id="password" name="password"/>
+									</div>
+									<button type="button" id="cancel-change-password" style="display: none;" class="btn btn-info" >取消修改密码</button>
+									<button type="button" id="change-password" class="btn btn-info" >修改密码</button>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label"><font color="red">*</font>性别</label>
+									<div class="col-sm-4">
+											<label class="radio-inline">
+												<input <c:if test="${user.sex == '1' }">checked="checked"</c:if> type="radio" value="1" id="sex" name="sex" style="margin-top: 2px;">
+												男
+											</label>
+											<label class="radio-inline">
+												<input <c:if test="${user.sex == '2' }">checked="checked"</c:if> type="radio" value="2" id="sex" name="sex" style="margin-top: 2px;">
+												女
+											</label>
+									</div>
+									<div class="col-sm-6"></div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="real_name"><font color="red">*</font>真实姓名</label>
+									<div class="col-sm-4">
+										<input type="text" class="form-control" id="real_name" name="real_name" value="${user.real_name}" />
+									</div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="phone"><font color="red">*</font>手机号码</label>
+									<div class="col-sm-4">
+										<input type="text" class="form-control" name="phone" id="phone" value="${user.phone }">
+									</div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" for="email">邮箱</label>
+									<div class="col-sm-4">
+										<input type="text" class="form-control" name="email" id="email" value="${user.email }">
+									</div>
+								</div>
+								<div class="form-group">
+									<label class="col-sm-2 control-label" ><font color="red">*</font>用户角色</label>
+									<div class="col-sm-4">
+										<select class="form-control" id="role" name="role">
+											<option value=""  >请选择用户角色</option>
+											<c:forEach var="r" items="${rList }" >
+											    <option value="${r.id }" <c:if test="${user.role_id == r.id }">selected="selected"</c:if> >${r.name }</option>
+											</c:forEach>
+										</select>		
+									</div>
+								</div>
+								<div class="form-group-separator"></div>
+								<div class="form-group">
+									<div class="col-sm-6" style="text-align: center;">
+										<button type="button" id="btn_save" class="btn btn-info" >保存</button>
+										<button type="button" id="btn_cancel" class="btn btn-white" >返回</button>
+										<input id="token" type="hidden" name="token" value="${SESSION_TOKEN }"/>
+									</div>
+								</div>
+							</form>
+						</div>
+					</div>
+				</div>
+			</div>
+			<%@ include file="../../common/footer.jsp"%>
+		</div>
+	</div>
+	
+	<script type="text/javascript">
+		$(function() {
+			var changePasswordFlag = false;
+			$("#change-password").click(function(){
+				$('#password-div').show();
+				$('#change-password').hide();
+				$('#cancel-change-password').show();
+				changePasswordFlag = true;
+			});
+			
+			$("#cancel-change-password").click(function(){
+				$('#password-div').hide();
+				$('#cancel-change-password').hide();
+				$('#change-password').show();
+				changePasswordFlag = false;
+			});
+			
+			$("#btn_save").click(function(){
+				var user_name = $("#user_name").val();
+				var password = $("#password").val();
+				var real_name = $("#real_name").val();
+				var phone = $("#phone").val();
+				var role = $("#role").val();
+				var email = $("#email").val();
+				if(!checkStr(user_name)){
+					toastr.error("用户名不能为空", null, opts);
+					return false;
+				}
+				if(changePasswordFlag && !checkStr(password)){
+					toastr.error("密码不能为空", null, opts);
+					return false;
+				}
+				if(!checkStr(real_name)){
+					toastr.error("真实姓名不能为空", null, opts);
+					return false;
+				}
+				if(!checkStr(phone)){
+					toastr.error("手机号不能为空", null, opts);
+					return false;
+				}
+				if(!Constants.phoneReg.test(phone)){    
+		            toastr.error("请输入正确的手机号码", null, opts);
+		            return false;
+		        }
+				if(!isNull(email) && !Constants.emailReg.test(email)){    
+		            toastr.error("请输入正确的邮箱", null, opts);
+		            return false;
+		        }
+				if(!checkStr(role)){
+					toastr.error("用户角色不能为空", null, opts);
+					return false;
+				}
+				if(!changePasswordFlag){
+					$('#password').val('');
+				}
+				$("#btn_save").attr("disabled","disabled");
+				 $("#editUserForm").ajaxSubmit({  
+		                type:'post',  
+		                dataType: "json",
+		                url : "${ROOT_PATH}/sysUser/editUser.do",
+		                success:function(data){  
+		                	window.setTimeout("enableBtn('#btn_save');",Constants.reloadTime);
+		                	if (data.result == '01') {
+		                		toastr.success("修改成功", null, opts);
+		                		window.setTimeout("reloadPage();",Constants.reloadTime);
+		                	}
+		                	else
+		                	{
+		                		toastr.error(data.msg, null, opts);
+		                	}
+		                },  
+		                error:function(XmlHttpRequest,textStatus,errorThrown){  
+		                	window.setTimeout("enableBtn('#btn_save');",Constants.reloadTime);
+		                	toastr.error(Constants.netError, null, opts);
+		                }  
+		            }); 
+			});
+			
+			$("#btn_cancel").click(function(){
+				history.back(-1);
+			});
+			
+			var user_province_id = "${user.province_code}"; 
+			var user_city_id = "${user.city_code}";
+			if(user_province_id != null && user_province_id != undefined && user_province_id != '')
+			{
+				// 根据省查找城市
+			    $.ajax({
+	                url : "${ROOT_PATH}/pcd/cityListByProvince.do",
+	                data : {"province_id":user_province_id},
+	                type : 'post',
+	                dataType : 'json',
+	                async : false,
+	                success : function(data) {
+	                	 //得到回调数据  
+	    		        if (data.citys.length != 0) {  
+	    		        	for (var i = 0; i < data.citys.length; i++) {  
+	    		                var id = data.citys[i].id;  
+	    		                var cityName = data.citys[i].name;  
+	    		                //添加下拉项  
+	    		                if(id == user_city_id){
+	    		                    $("#city_code").append("<option selected='selected' value="+ id +">"+ cityName +"</option>");
+	    		                }else{
+	    		                	$("#city_code").append("<option value="+ id +">"+ cityName +"</option>"); 
+	    		                }
+	    		                
+	    		            }  
+	    		        }
+	                },
+	                error : function(msg) {
+	                	
+	                	
+	                }
+	            });
+			    
+			 	
+			}
+			
+			
+			//根据省份id获取城市列表
+			$("#province_code").bind("change",function(){
+				//清除city下拉框下的下拉项  
+				$("#city_code option:not(:first)").remove();
+				if ($(this).val() == '') {  
+			        return false;  
+			    }else{  
+			        var province_id = $(this).val();  
+			     	// 根据省查找城市
+				    $.ajax({
+		                url : "${ROOT_PATH}/pcd/cityListByProvince.do",
+		                data : {"province_id":province_id},
+		                type : 'post',
+		                dataType : 'json',
+		                async : false,
+		                success : function(data) {
+		                	 //得到回调数据  
+		    		        if (data.citys.length != 0) {
+		    		        	for (var i = 0; i < data.citys.length; i++) {
+		    		                var id = data.citys[i].id;  
+		    		                var cityName = data.citys[i].name;
+		    		                //添加下拉项  
+		    		                if(id == user_city_id){
+		    		                    $("#city_code").append("<option selected='selected' value="+ id +">"+ cityName +"</option>");
+		    		                }else{
+		    		                	$("#city_code").append("<option value="+ id +">"+ cityName +"</option>"); 
+		    		                }
+		    		                
+		    		            }
+		    		        }
+		                },
+		                error : function(msg) {
+		                	
+		                	
+		                }
+		            });
+			    }  
+			});
+			
+		});
+		
+		function reloadPage(){
+			window.location.href = '${ROOT_PATH}/sysUser';
+		}
+	</script>
+</body>
+</html>

+ 381 - 0
code/sapparent/sapcms/src/main/webapp/WEB-INF/jsp/sys/sysuser/sysuser-list.jsp

@@ -0,0 +1,381 @@
+<%@ 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="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+	<meta charset="utf-8">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+	<meta name="description" content="Xenon Boostrap Admin Panel" />
+	<meta name="author" content="" />
+	<title>系统用户管理</title>
+</head>
+<body class="page-body">
+	<div class="page-container">
+		<%@ include file="../../common/menu.jsp"%>
+		<div class="main-content">
+			<%@ include file="../../common/header.jsp"%>
+			<div class="page-title">
+				<div class="title-env">
+					<h1 class="title">系统用户管理</h1>
+				</div>
+				<div class="breadcrumb-env">
+					<ol class="breadcrumb bc-1">
+						<li>
+							<a href="#"><i class="fa-home"></i>系统管理</a>
+						</li>
+						<li class="active">
+							<strong>系统用户管理</strong>
+						</li>
+					</ol>
+				</div>
+			</div>			
+			<!-- Removing search and results count filter -->
+			<div class="panel panel-default">
+			  <c:if test="${PERMISSION.query}">
+				<form class="form-horizontal" role="form" method="post">
+					<div class="form-group">
+						<label class="col-sm-1 control-label">用户名</label>
+						<div class="col-sm-2">
+							<input type="text" id="user_name" name="user_name" class="form-control" id="field-1">
+						</div>
+						<label class="col-sm-1 control-label" for="field-1">手机号码</label>
+						<div class="col-sm-2">
+							<input type="text" id="phone" name="phone" class="form-control" id="field-1">
+						</div>
+						<label class="col-sm-1 control-label" for="field-1">用户角色</label>
+						<div class="col-sm-2">
+							<select class="form-control" id="role_id" name="role_id"> 
+								<option value="" selected>所有</option>
+							    <c:forEach items="${rList }" var="r">
+							      <option value="${r.id }">${r.name }</option>
+							    </c:forEach>
+							</select>
+						</div>
+						<button type="button" id="btn_search" class="btn btn-info">查询</button>
+						<c:if test="${PERMISSION.add}">
+							<button type="button" class="btn btn-add" onclick="toSave();">新增</button>
+						</c:if>
+					</div>
+				</form>
+			  </c:if>
+				<div class="panel-body">
+					<table class="table table-bordered table-striped" id="table-list">
+						<thead>
+							<tr>
+								<th style="text-align: center;">用户名</th>
+								<th style="text-align: center;">姓名</th>
+								<th style="text-align: center;">手机号码</th>
+								<th style="text-align: center;">邮箱</th>
+								<th style="text-align: center;">性别</th>
+								<th style="text-align: center;">用户角色</th>
+								<th style="text-align: center;">状态</th>
+								<th style="text-align: center;">创建时间</th>
+								<th style="text-align: center;">操作</th>
+							</tr>
+						</thead>
+					</table>
+				</div>
+			</div>
+			<%@ include file="../../common/footer.jsp"%>
+		</div>
+	</div>
+	
+	<div class="modal fade" id="modal-delete" data-backdrop="static">
+		<div class="modal-dialog">
+			<div class="modal-content">
+				<div class="modal-header">
+					<h4 class="modal-title">删除提示</h4>
+				</div>
+				<div class="modal-body">
+					确定删除该用户吗?
+				</div>
+				<form role="form" class="form-horizontal">
+					<div class="modal-footer">
+						<input type="hidden" name="ids" id="ids">
+						<button type="button" id="btn_delete" class="btn btn-info" onclick="deleteInfo();">确定</button>
+						<button type="button" class="btn btn-white" data-dismiss="modal">取消</button>
+					</div>
+				</form>
+			</div>
+		</div>
+	</div>
+	<div class="modal fade" id="modal-change-status" data-backdrop="static">
+		<div class="modal-dialog">
+			<div class="modal-content">
+				<div class="modal-header">
+					<h4 class="modal-title">提示</h4>
+				</div>
+				<div id="modal-change-status-div" class="modal-body">
+					确定停用该用户吗?
+				</div>
+				<input type="hidden" id="changeUserId" value="" />
+				<input type="hidden" id="changeUserStatus" value="" />
+				<div class="modal-footer">
+					<button type="button" class="btn btn-info"  id="btn_change_info" onclick="changeInfo(this);">确定</button>
+					<button type="button" class="btn btn-white" data-dismiss="modal">取消</button>
+				</div>
+			</div>
+		</div>
+	</div>
+	
+	<script type="text/javascript">
+		function formReset(){
+			setTimeout(function(){
+				$('#search').click();
+			},100);
+	    }
+		
+		var table;
+		$(function() {
+			//table
+			table = $('#table-list').dataTable({
+				"dom": "t" + "<'row'<'col-xs-6'i><'col-xs-6'p>>",
+				"aaSorting": [
+					[7, "desc"]
+				], //默认第几个排序
+				"aoColumnDefs": [
+					//{"bVisible": false, "aTargets": [ 3 ]} //控制列的隐藏显示
+					{"orderable":false,"aTargets":[0,1,2,3,4,5,6,8]} 
+				],
+				"bStateSave": false, //状态保存
+				"bProcessing": false, // 是否显示取数据时的那个等待提示
+                "bServerSide": true,//这个用来指明是通过服务端来取数据
+                "sAjaxSource": "${ROOT_PATH}/sysUser/findList.do",//这个是请求的地址
+                "bLengthChange" : true,// 每行显示记录数  
+                "iDisplayLength" : 10,// 每页显示行数  
+                "bSort" : true,// 排序
+                "bAutoWidth" : false, //是否自适应宽度  
+                "oLanguage": {  	// 分页语言
+                    "sLengthMenu": "每页显示 _MENU_  条",  
+                    "sZeroRecords": "没有找到符合条件的数据",  
+                    "sProcessing": "我也是醉了,正在加载数据...",  
+                    "sInfo": "当前第 _START_ - _END_ 条 共计 _TOTAL_ 条",  
+                    "sInfoEmpty": "没有记录",  
+                    "sInfoFiltered": "(从 _MAX_ 条记录中过滤)",  
+                    "sSearch": "搜索:",  
+                    "oPaginate": {  
+                        "sFirst": "首页",  
+                        "sPrevious": "前一页",  
+                        "sNext": "后一页",  
+                        "sLast": "尾页"  
+                    }  
+        		},
+				"aoColumns": [
+					 {  
+                        "sClass":"center", 
+                        "mDataProp" : "user_name", 
+                        "aTargets":[0],  
+                        "mData":"user_name"
+                    },
+                    {  
+                        "sClass":"center", 
+                        "mDataProp" : "real_name", 
+                        "aTargets":[1],  
+                        "mData":"real_name"
+                    },
+                    {  
+                    	"sClass":"center", 
+                       	"mDataProp" : "phone",  
+                        "aTargets":[2],  
+                        "mData":"phone"  
+                    },
+                    {  
+                    	"sClass":"center", 
+                       	"mDataProp" : "email",  
+                        "aTargets":[3],  
+                        "mData":"email"  
+                    },
+                    {  
+                        "sClass":"center", 
+                        "mDataProp" : "sex", 
+                        "aTargets":[4],  
+                        "mRender":function(a,b,c,d){//a表示statCleanRevampId对应的值,c表示当前记录行对象  
+ 						   	var ru =  ''
+ 							if(c.sex == '1'){
+ 								ru = '男';
+ 							}else if(c.sex == '2'){
+ 								ru = '女';
+ 							}
+ 							return ru;   
+                         }  
+                    },
+                    {  
+                        "sClass":"center", 
+                        "mDataProp" : "role_name", 
+                        "aTargets":[5],  
+                        "mData":"role_name"
+                    },
+                    {  
+                        "sClass":"center", 
+                        "mDataProp" : "status", 
+                        "aTargets":[6],  
+                        "mRender":function(a,b,c,d){//a表示statCleanRevampId对应的值,c表示当前记录行对象  
+ 						   	var ru =  ''
+ 						   	if(c.status == ''){
+ 						   		ru = '未知状态';
+ 							}else if(c.status == 'QIYONG'){
+ 								ru = '启用';
+ 							}else if(c.status == 'TINGYONG'){
+ 								ru = '停用';
+ 							}
+ 						   	return ru;   
+                         }  
+                    },
+                    {  
+                        "sClass":"center", 
+                        "mDataProp" : "create_date", 
+                        "aTargets":[7],  
+                        "mData":"create_date"
+                    },
+					{  
+                    	"sClass":"center",  
+                        "aTargets":[8],  
+                        "mRender":function(a,b,c,d){//a表示statCleanRevampId对应的值,c表示当前记录行对象  
+							var ru = '';
+							if('${PERMISSION.update}' == 'true'){
+								ru += '<a href=\"javascript:;\" class=\"btn btn-secondary btn-sm btn-icon icon-left\" onclick=\"toModify(\''+ c.id +'\');\">修改</a>';
+							}
+							if('${PERMISSION.update}' == 'true' && c.user_name != 'admin'){
+								ru = ru + '<a href=\"javascript:;\" class=\"btn btn-white btn-sm btn-icon icon-left" onclick=\"changeTip(\''+ c.id +'\',this,\''+c.status+'\');\">';
+								if(c.status == 'QIYONG'){
+									ru = ru +  '停用';
+	 							}else if(c.status == 'TINGYONG'){
+	 								ru = ru +  '启用';
+	 							}
+								ru = ru + '</a>';
+							}
+							if('${PERMISSION.delete}' == 'true' && c.user_name != 'admin'){
+								ru = ru + '<a href=\"javascript:;\" class=\"btn btn-danger btn-sm btn-icon icon-left\" onclick=\"deleteTip(\''+ c.id +'\');\">删除</a>';
+							}
+							if('${PERMISSION.update}' != 'true' && '${PERMISSION.delete}' != 'true'){
+								ru = '无权限';
+							}
+							return ru;   
+                        }  
+                    }
+				],
+				 "fnServerData" : function(sSource, aoData, fnCallback) {  
+	                //获取检索参数
+					var user_name = $("#user_name").val();
+					var phone = $("#phone").val();
+					var role_id = $("#role_id").val();
+					 $.ajax({
+			                url : sSource,//这个就是请求地址对应sAjaxSource
+			                data : {"aoData":JSON.stringify(aoData),"user_name":user_name,"phone":phone,"role_id":role_id},//这个是把datatable的一些基本数据传给后台,比如起始位置,每页显示的行数
+			                type : 'post',
+			                dataType : 'json',
+			                async : false,
+			                success : function(result) {
+			                	fnCallback(result);//把返回的数据传给这个方法就可以了,datatable会自动绑定数据的
+			    				//表格数据居中
+			    				$("td").attr("style","text-align:center");
+			    				
+			                },
+			                error : function(msg) {
+			                }
+			            });
+		           }  
+			});
+			//检索
+			$('#btn_search').click( function() {
+			    table.fnDraw();
+			});
+		});
+		
+		/** 添加系统用户 */
+		function toSave()
+		{
+			window.location.href='${ROOT_PATH}/sysUser/toSave.do';
+		}
+		
+		/** 修改系统用户 */
+		function toModify(id)
+		{
+			window.location.href='${ROOT_PATH}/sysUser/toEdit.do?id=' + id;
+		}
+		
+		/** 账号禁用/启用 */
+		function changeInfo(src)
+		{
+			var userId = $("#changeUserId").val();
+			var status = $("#changeUserStatus").val();
+			$("#btn_change_info").attr("disabled","disabled");  
+			$.ajax({
+                url : "${ROOT_PATH}/sysUser/changeUserStatus.do",
+                data : {"id":userId,"status":status},
+                type : 'post',
+                dataType : 'json',
+                async : false,
+                success : function(data) {
+                	
+                	window.setTimeout("enableBtn('#btn_change_info');",Constants.reloadTime);
+                	if(data.result == '01'){
+                		$("#modal-change-status").modal('hide');
+                		toastr.success('更新成功', null, opts);
+                		table.fnDraw();
+	                } else {
+                		toastr.error(data.msg, null, opts);
+                		$("#modal-change-status").modal('hide');
+                	}
+                },
+                error : function(msg) {
+                	window.setTimeout("enableBtn('#btn_change_info');",Constants.reloadTime);
+                	$("#modal-change-status").modal('hide');
+                }
+            });
+		}
+		
+		/** 账号禁用/启用 */
+		function changeTip(userId,src, status)
+		{
+			
+			$("#changeUserId").val(userId);
+			if(status == 'QIYONG'){
+				$("#modal-change-status-div").html("确认要停用吗?");
+				$("#changeUserStatus").val('TINGYONG');
+			}else if(status == 'TINGYONG'){
+				$("#modal-change-status-div").html("确认要启用吗?");
+				$("#changeUserStatus").val('QIYONG');
+			}
+			$("#modal-change-status").modal('show', {backdrop: 'static'});
+		}
+		
+		/** 账号删除 */
+		function deleteInfo()
+		{
+			var id = $("#ids").val();
+			$("#btn_delete").attr("disabled","disabled");  
+			$.ajax({
+                url : "${ROOT_PATH}/sysUser/delete.do",
+                data : {"id":id},
+                type : 'post',
+                dataType : 'json',
+                async : false,
+                success : function(data) {
+                	window.setTimeout("enableBtn('#btn_delete');",Constants.reloadTime);
+                	if(data.result == '01'){
+                		$("#modal-delete").modal('hide');
+                		table.fnDraw();
+	                }
+                	else
+                	{
+                		$("#modal-delete").modal('hide');
+                	}
+                },
+                error : function(msg) {
+                	window.setTimeout("enableBtn('#btn_delete');",Constants.reloadTime);
+                	$("#modal-delete").modal('hide');
+                }
+            });
+		}
+		/** 账号删除 */
+		function deleteTip(id){
+			$("#ids").val(id);
+			jQuery('#modal-delete').modal('show', {backdrop: 'static'});
+		}
+
+	</script>
+</body>
+</html>

+ 105 - 0
code/sapparent/sapcms/src/main/webapp/WEB-INF/web.xml

@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xmlns="http://java.sun.com/xml/ns/javaee"
+	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
+	id="WebApp_ID" version="3.0">
+	<display-name>medcms</display-name>
+	<welcome-file-list>
+		<welcome-file>login.jsp</welcome-file>
+	</welcome-file-list>
+	<!-- spring加载 -->
+	<context-param>
+		<param-name>contextConfigLocation</param-name>
+		<param-value>classpath:spring-content.xml</param-value>
+	</context-param>
+	<listener>
+		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
+	</listener>
+	<!-- 系统初始 -->
+	<listener>
+		<listener-class>org.fouram.listener.SystemInitListener</listener-class>
+	</listener>
+	<servlet>
+		<servlet-name>DruidWebStatFilter</servlet-name>
+		<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
+		<init-param>
+			<param-name>exclusions</param-name>
+			<param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value>
+		</init-param>
+	</servlet>
+	<servlet-mapping>
+		<servlet-name>DruidWebStatFilter</servlet-name>
+		<url-pattern>/druid/*</url-pattern>
+	</servlet-mapping>
+	<!-- corsFilter -->
+	<filter>
+		<filter-name>corsFilter</filter-name>
+		<filter-class>org.fouram.core.filter.CorsFilter</filter-class>
+	</filter>
+	<filter>
+		<filter-name>characterEncoding</filter-name>
+		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
+		<init-param>
+			<param-name>encoding</param-name>
+			<param-value>UTF-8</param-value>
+		</init-param>
+	</filter>
+	<filter-mapping>
+		<filter-name>characterEncoding</filter-name>
+		<url-pattern>/*</url-pattern>
+	</filter-mapping>
+	<filter>
+		<filter-name>shiroFilter</filter-name>
+		<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
+		<init-param>
+			<param-name>targetFilterLifecycle</param-name>
+			<param-value>true</param-value>
+		</init-param>
+	</filter>
+	<filter-mapping>
+		<filter-name>shiroFilter</filter-name>
+		<url-pattern>/*</url-pattern>
+	</filter-mapping>
+	<filter>
+		<filter-name>multipartResolverFilter</filter-name>
+		<filter-class>org.fouram.core.filter.MultipartResolverFilter</filter-class>
+	</filter>
+	<filter-mapping>
+		<filter-name>multipartResolverFilter</filter-name>
+		<url-pattern>/*</url-pattern>
+	</filter-mapping>
+	<servlet>
+		<servlet-name>springmvc</servlet-name>
+		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
+		<init-param>
+			<param-name>contextConfigLocation</param-name>
+			<param-value>classpath:spring-servlet.xml</param-value>
+		</init-param>
+		<load-on-startup>1</load-on-startup>
+	</servlet>
+	<servlet-mapping>
+		<servlet-name>springmvc</servlet-name>
+		<url-pattern>/</url-pattern>
+	</servlet-mapping>
+	<session-config>
+		<session-timeout>30</session-timeout>
+	</session-config>
+	<!-- 支持对JSP的批量配置 -->
+	<jsp-config>
+		<jsp-property-group>
+			<url-pattern>*.jsp</url-pattern>
+			<el-ignored>false</el-ignored>
+			<page-encoding>UTF-8</page-encoding>
+			<scripting-invalid>false</scripting-invalid>
+			<include-prelude>/WEB-INF/jsp/common/base.jsp</include-prelude>
+		</jsp-property-group>
+	</jsp-config>
+	<error-page>
+		<error-code>404</error-code>
+		<location>/errors/404.jsp</location>
+	</error-page>
+	<error-page>
+		<error-code>500</error-code>
+		<location>/errors/500.jsp</location>
+	</error-page>
+</web-app>

+ 24 - 0
code/sapparent/sapcms/src/main/webapp/errors/404.jsp

@@ -0,0 +1,24 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+	<title>404</title>
+</head>
+<body class="page-body page-error-env">
+	<div class="page-error centered">
+		<div class="error-symbol">
+			<i class="fa-warning"></i>
+		</div>
+		<h2>
+			Error 404
+			<small>页面没找到!</small>
+		</h2>
+	</div>
+	<div class="page-error-search centered">
+		<a href="${ROOT_PATH}/main/index" class="go-back">
+			<i class="fa-angle-left"></i>
+			返回首页
+		</a>
+	</div>
+</body>
+</html>

+ 24 - 0
code/sapparent/sapcms/src/main/webapp/errors/500.jsp

@@ -0,0 +1,24 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+	<title>500</title>
+</head>
+<body class="page-body page-error-env">
+	<div class="page-error centered">
+		<div class="error-symbol">
+			<i class="fa-warning"></i>
+		</div>
+		<h2>
+			Error 500
+			<small>服务端发生异常!</small>
+		</h2>
+	</div>
+	<div class="page-error-search centered">
+		<a href="${ROOT_PATH}/main/index" class="go-back">
+			<i class="fa-angle-left"></i>
+			返回首页
+		</a>
+	</div>
+</body>
+</html>

BIN
code/sapparent/sapcms/src/main/webapp/public/css/.DS_Store


File diff suppressed because it is too large
+ 6165 - 0
code/sapparent/sapcms/src/main/webapp/public/css/bootstrap.css


+ 11 - 0
code/sapparent/sapcms/src/main/webapp/public/css/custom.css

@@ -0,0 +1,11 @@
+/**
+ *
+ * Apply your custom CSS here
+ *
+*/
+
+body {	
+}
+
+a {
+}

BIN
code/sapparent/sapcms/src/main/webapp/public/css/fonts/.DS_Store


BIN
code/sapparent/sapcms/src/main/webapp/public/css/fonts/elusive/.DS_Store


+ 85 - 0
code/sapparent/sapcms/src/main/webapp/public/css/fonts/elusive/css/animation.css

@@ -0,0 +1,85 @@
+/*
+   Animation example, for spinners
+*/
+.animate-spin {
+  -moz-animation: spin 2s infinite linear;
+  -o-animation: spin 2s infinite linear;
+  -webkit-animation: spin 2s infinite linear;
+  animation: spin 2s infinite linear;
+  display: inline-block;
+}
+@-moz-keyframes spin {
+  0% {
+    -moz-transform: rotate(0deg);
+    -o-transform: rotate(0deg);
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+
+  100% {
+    -moz-transform: rotate(359deg);
+    -o-transform: rotate(359deg);
+    -webkit-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}
+@-webkit-keyframes spin {
+  0% {
+    -moz-transform: rotate(0deg);
+    -o-transform: rotate(0deg);
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+
+  100% {
+    -moz-transform: rotate(359deg);
+    -o-transform: rotate(359deg);
+    -webkit-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}
+@-o-keyframes spin {
+  0% {
+    -moz-transform: rotate(0deg);
+    -o-transform: rotate(0deg);
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+
+  100% {
+    -moz-transform: rotate(359deg);
+    -o-transform: rotate(359deg);
+    -webkit-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}
+@-ms-keyframes spin {
+  0% {
+    -moz-transform: rotate(0deg);
+    -o-transform: rotate(0deg);
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+
+  100% {
+    -moz-transform: rotate(359deg);
+    -o-transform: rotate(359deg);
+    -webkit-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}
+@keyframes spin {
+  0% {
+    -moz-transform: rotate(0deg);
+    -o-transform: rotate(0deg);
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+
+  100% {
+    -moz-transform: rotate(359deg);
+    -o-transform: rotate(359deg);
+    -webkit-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}

+ 272 - 0
code/sapparent/sapcms/src/main/webapp/public/css/fonts/elusive/css/elusive-codes.css

@@ -0,0 +1,272 @@
+
+.el-glass:before { content: '\e800'; } /* '' */
+.el-music:before { content: '\e801'; } /* '' */
+.el-search:before { content: '\e802'; } /* '' */
+.el-search-circled:before { content: '\e803'; } /* '' */
+.el-mail:before { content: '\e804'; } /* '' */
+.el-mail-circled:before { content: '\e805'; } /* '' */
+.el-heart:before { content: '\e806'; } /* '' */
+.el-heart-circled:before { content: '\e807'; } /* '' */
+.el-heart-empty:before { content: '\e808'; } /* '' */
+.el-star:before { content: '\e809'; } /* '' */
+.el-star-circled:before { content: '\e80a'; } /* '' */
+.el-star-empty:before { content: '\e80b'; } /* '' */
+.el-user:before { content: '\e80c'; } /* '' */
+.el-group:before { content: '\e80d'; } /* '' */
+.el-group-circled:before { content: '\e80e'; } /* '' */
+.el-torso:before { content: '\e80f'; } /* '' */
+.el-video:before { content: '\e810'; } /* '' */
+.el-video-circled:before { content: '\e811'; } /* '' */
+.el-video-alt:before { content: '\e812'; } /* '' */
+.el-videocam:before { content: '\e813'; } /* '' */
+.el-video-chat:before { content: '\e814'; } /* '' */
+.el-picture:before { content: '\e815'; } /* '' */
+.el-camera:before { content: '\e816'; } /* '' */
+.el-photo:before { content: '\e817'; } /* '' */
+.el-photo-circled:before { content: '\e818'; } /* '' */
+.el-th-large:before { content: '\e819'; } /* '' */
+.el-th:before { content: '\e81a'; } /* '' */
+.el-th-list:before { content: '\e81b'; } /* '' */
+.el-view-mode:before { content: '\e81c'; } /* '' */
+.el-ok:before { content: '\e81d'; } /* '' */
+.el-ok-circled:before { content: '\e81e'; } /* '' */
+.el-ok-circled2:before { content: '\e81f'; } /* '' */
+.el-cancel:before { content: '\e820'; } /* '' */
+.el-cancel-circled:before { content: '\e821'; } /* '' */
+.el-cancel-circled2:before { content: '\e822'; } /* '' */
+.el-plus:before { content: '\e823'; } /* '' */
+.el-plus-circled:before { content: '\e824'; } /* '' */
+.el-minus:before { content: '\e825'; } /* '' */
+.el-minus-circled:before { content: '\e826'; } /* '' */
+.el-help:before { content: '\e827'; } /* '' */
+.el-help-circled:before { content: '\e828'; } /* '' */
+.el-info-circled:before { content: '\e829'; } /* '' */
+.el-home:before { content: '\e82a'; } /* '' */
+.el-home-circled:before { content: '\e82b'; } /* '' */
+.el-website:before { content: '\e82c'; } /* '' */
+.el-website-circled:before { content: '\e82d'; } /* '' */
+.el-attach:before { content: '\e82e'; } /* '' */
+.el-attach-circled:before { content: '\e82f'; } /* '' */
+.el-lock:before { content: '\e830'; } /* '' */
+.el-lock-circled:before { content: '\e831'; } /* '' */
+.el-lock-open:before { content: '\e832'; } /* '' */
+.el-lock-open-alt:before { content: '\e833'; } /* '' */
+.el-eye:before { content: '\e834'; } /* '' */
+.el-eye-off:before { content: '\e835'; } /* '' */
+.el-tag:before { content: '\e836'; } /* '' */
+.el-tags:before { content: '\e837'; } /* '' */
+.el-bookmark:before { content: '\e838'; } /* '' */
+.el-bookmark-empty:before { content: '\e839'; } /* '' */
+.el-flag:before { content: '\e83a'; } /* '' */
+.el-flag-circled:before { content: '\e83b'; } /* '' */
+.el-thumbs-up:before { content: '\e83c'; } /* '' */
+.el-thumbs-down:before { content: '\e83d'; } /* '' */
+.el-download:before { content: '\e83e'; } /* '' */
+.el-download-alt:before { content: '\e83f'; } /* '' */
+.el-upload:before { content: '\e840'; } /* '' */
+.el-share:before { content: '\e841'; } /* '' */
+.el-quote:before { content: '\e842'; } /* '' */
+.el-quote-circled:before { content: '\e843'; } /* '' */
+.el-export:before { content: '\e844'; } /* '' */
+.el-pencil:before { content: '\e845'; } /* '' */
+.el-pencil-circled:before { content: '\e846'; } /* '' */
+.el-edit:before { content: '\e847'; } /* '' */
+.el-edit-circled:before { content: '\e848'; } /* '' */
+.el-edit-alt:before { content: '\e849'; } /* '' */
+.el-print:before { content: '\e84a'; } /* '' */
+.el-retweet:before { content: '\e84b'; } /* '' */
+.el-comment:before { content: '\e84c'; } /* '' */
+.el-comment-alt:before { content: '\e84d'; } /* '' */
+.el-bell:before { content: '\e84e'; } /* '' */
+.el-warning:before { content: '\e84f'; } /* '' */
+.el-exclamation:before { content: '\e850'; } /* '' */
+.el-error:before { content: '\e851'; } /* '' */
+.el-error-alt:before { content: '\e852'; } /* '' */
+.el-location:before { content: '\e853'; } /* '' */
+.el-location-circled:before { content: '\e854'; } /* '' */
+.el-compass:before { content: '\e855'; } /* '' */
+.el-compass-circled:before { content: '\e856'; } /* '' */
+.el-trash:before { content: '\e857'; } /* '' */
+.el-trash-circled:before { content: '\e858'; } /* '' */
+.el-doc:before { content: '\e859'; } /* '' */
+.el-doc-circled:before { content: '\e85a'; } /* '' */
+.el-doc-new:before { content: '\e85b'; } /* '' */
+.el-doc-new-circled:before { content: '\e85c'; } /* '' */
+.el-folder:before { content: '\e85d'; } /* '' */
+.el-folder-circled:before { content: '\e85e'; } /* '' */
+.el-folder-close:before { content: '\e85f'; } /* '' */
+.el-folder-open:before { content: '\e860'; } /* '' */
+.el-rss:before { content: '\e861'; } /* '' */
+.el-phone:before { content: '\e862'; } /* '' */
+.el-phone-circled:before { content: '\e863'; } /* '' */
+.el-cog:before { content: '\e864'; } /* '' */
+.el-cog-circled:before { content: '\e865'; } /* '' */
+.el-cogs:before { content: '\e866'; } /* '' */
+.el-wrench:before { content: '\e867'; } /* '' */
+.el-wrench-circled:before { content: '\e868'; } /* '' */
+.el-basket:before { content: '\e869'; } /* '' */
+.el-basket-circled:before { content: '\e86a'; } /* '' */
+.el-calendar:before { content: '\e86b'; } /* '' */
+.el-calendar-circled:before { content: '\e86c'; } /* '' */
+.el-mic:before { content: '\e86d'; } /* '' */
+.el-mic-circled:before { content: '\e86e'; } /* '' */
+.el-volume-off:before { content: '\e86f'; } /* '' */
+.el-volume-down:before { content: '\e870'; } /* '' */
+.el-volume:before { content: '\e871'; } /* '' */
+.el-volume-up:before { content: '\e872'; } /* '' */
+.el-headphones:before { content: '\e873'; } /* '' */
+.el-clock:before { content: '\e874'; } /* '' */
+.el-clock-circled:before { content: '\e875'; } /* '' */
+.el-lightbulb:before { content: '\e876'; } /* '' */
+.el-lightbulb-alt:before { content: '\e877'; } /* '' */
+.el-block:before { content: '\e878'; } /* '' */
+.el-resize-full:before { content: '\e879'; } /* '' */
+.el-resize-full-alt:before { content: '\e87a'; } /* '' */
+.el-resize-small:before { content: '\e87b'; } /* '' */
+.el-resize-vertical:before { content: '\e87c'; } /* '' */
+.el-resize-horizontal:before { content: '\e87d'; } /* '' */
+.el-move:before { content: '\e87e'; } /* '' */
+.el-zoom-in:before { content: '\e87f'; } /* '' */
+.el-zoom-out:before { content: '\e880'; } /* '' */
+.el-down-open:before { content: '\e881'; } /* '' */
+.el-left-open:before { content: '\e882'; } /* '' */
+.el-right-open:before { content: '\e883'; } /* '' */
+.el-up-open:before { content: '\e884'; } /* '' */
+.el-down:before { content: '\e885'; } /* '' */
+.el-left:before { content: '\e886'; } /* '' */
+.el-right:before { content: '\e887'; } /* '' */
+.el-up:before { content: '\e888'; } /* '' */
+.el-down-circled:before { content: '\e889'; } /* '' */
+.el-left-circled:before { content: '\e88a'; } /* '' */
+.el-right-circled:before { content: '\e88b'; } /* '' */
+.el-up-circled:before { content: '\e88c'; } /* '' */
+.el-down-hand:before { content: '\e88d'; } /* '' */
+.el-left-hand:before { content: '\e88e'; } /* '' */
+.el-right-hand:before { content: '\e88f'; } /* '' */
+.el-up-hand:before { content: '\e890'; } /* '' */
+.el-cw:before { content: '\e891'; } /* '' */
+.el-cw-circled:before { content: '\e892'; } /* '' */
+.el-arrows-cw:before { content: '\e893'; } /* '' */
+.el-shuffle:before { content: '\e894'; } /* '' */
+.el-play:before { content: '\e895'; } /* '' */
+.el-play-circled:before { content: '\e896'; } /* '' */
+.el-play-circled2:before { content: '\e897'; } /* '' */
+.el-stop:before { content: '\e898'; } /* '' */
+.el-stop-circled:before { content: '\e899'; } /* '' */
+.el-pause:before { content: '\e89a'; } /* '' */
+.el-pause-circled:before { content: '\e89b'; } /* '' */
+.el-record:before { content: '\e89c'; } /* '' */
+.el-eject:before { content: '\e89d'; } /* '' */
+.el-backward:before { content: '\e89e'; } /* '' */
+.el-backward-circled:before { content: '\e89f'; } /* '' */
+.el-fast-backward:before { content: '\e8a0'; } /* '' */
+.el-fast-forward:before { content: '\e8a1'; } /* '' */
+.el-forward:before { content: '\e8a2'; } /* '' */
+.el-forward-circled:before { content: '\e8a3'; } /* '' */
+.el-step-backward:before { content: '\e8a4'; } /* '' */
+.el-step-forward:before { content: '\e8a5'; } /* '' */
+.el-target:before { content: '\e8a6'; } /* '' */
+.el-signal:before { content: '\e8a7'; } /* '' */
+.el-desktop:before { content: '\e8a8'; } /* '' */
+.el-desktop-circled:before { content: '\e8a9'; } /* '' */
+.el-laptop:before { content: '\e8aa'; } /* '' */
+.el-laptop-circled:before { content: '\e8ab'; } /* '' */
+.el-network:before { content: '\e8ac'; } /* '' */
+.el-inbox:before { content: '\e8ad'; } /* '' */
+.el-inbox-circled:before { content: '\e8ae'; } /* '' */
+.el-inbox-alt:before { content: '\e8af'; } /* '' */
+.el-globe:before { content: '\e8b0'; } /* '' */
+.el-globe-alt:before { content: '\e8b1'; } /* '' */
+.el-cloud:before { content: '\e8b2'; } /* '' */
+.el-cloud-circled:before { content: '\e8b3'; } /* '' */
+.el-flight:before { content: '\e8b4'; } /* '' */
+.el-leaf:before { content: '\e8b5'; } /* '' */
+.el-font:before { content: '\e8b6'; } /* '' */
+.el-fontsize:before { content: '\e8b7'; } /* '' */
+.el-bold:before { content: '\e8b8'; } /* '' */
+.el-italic:before { content: '\e8b9'; } /* '' */
+.el-text-height:before { content: '\e8ba'; } /* '' */
+.el-text-width:before { content: '\e8bb'; } /* '' */
+.el-align-left:before { content: '\e8bc'; } /* '' */
+.el-align-center:before { content: '\e8bd'; } /* '' */
+.el-align-right:before { content: '\e8be'; } /* '' */
+.el-align-justify:before { content: '\e8bf'; } /* '' */
+.el-list:before { content: '\e8c0'; } /* '' */
+.el-indent-left:before { content: '\e8c1'; } /* '' */
+.el-indent-right:before { content: '\e8c2'; } /* '' */
+.el-briefcase:before { content: '\e8c3'; } /* '' */
+.el-off:before { content: '\e8c4'; } /* '' */
+.el-road:before { content: '\e8c5'; } /* '' */
+.el-qrcode:before { content: '\e8c6'; } /* '' */
+.el-barcode:before { content: '\e8c7'; } /* '' */
+.el-braille:before { content: '\e8c8'; } /* '' */
+.el-book:before { content: '\e8c9'; } /* '' */
+.el-adjust:before { content: '\e8ca'; } /* '' */
+.el-tint:before { content: '\e8cb'; } /* '' */
+.el-check:before { content: '\e8cc'; } /* '' */
+.el-check-empty:before { content: '\e8cd'; } /* '' */
+.el-asterisk:before { content: '\e8ce'; } /* '' */
+.el-gift:before { content: '\e8cf'; } /* '' */
+.el-fire:before { content: '\e8d0'; } /* '' */
+.el-magnet:before { content: '\e8d1'; } /* '' */
+.el-chart:before { content: '\e8d2'; } /* '' */
+.el-chart-circled:before { content: '\e8d3'; } /* '' */
+.el-credit-card:before { content: '\e8d4'; } /* '' */
+.el-megaphone:before { content: '\e8d5'; } /* '' */
+.el-clipboard:before { content: '\e8d6'; } /* '' */
+.el-hdd:before { content: '\e8d7'; } /* '' */
+.el-key:before { content: '\e8d8'; } /* '' */
+.el-certificate:before { content: '\e8d9'; } /* '' */
+.el-tasks:before { content: '\e8da'; } /* '' */
+.el-filter:before { content: '\e8db'; } /* '' */
+.el-gauge:before { content: '\e8dc'; } /* '' */
+.el-smiley:before { content: '\e8dd'; } /* '' */
+.el-smiley-circled:before { content: '\e8de'; } /* '' */
+.el-address-book:before { content: '\e8df'; } /* '' */
+.el-address-book-alt:before { content: '\e8e0'; } /* '' */
+.el-asl:before { content: '\e8e1'; } /* '' */
+.el-glasses:before { content: '\e8e2'; } /* '' */
+.el-hearing-impaired:before { content: '\e8e3'; } /* '' */
+.el-iphone-home:before { content: '\e8e4'; } /* '' */
+.el-person:before { content: '\e8e5'; } /* '' */
+.el-adult:before { content: '\e8e6'; } /* '' */
+.el-child:before { content: '\e8e7'; } /* '' */
+.el-blind:before { content: '\e8e8'; } /* '' */
+.el-guidedog:before { content: '\e8e9'; } /* '' */
+.el-accessibility:before { content: '\e8ea'; } /* '' */
+.el-universal-access:before { content: '\e8eb'; } /* '' */
+.el-male:before { content: '\e8ec'; } /* '' */
+.el-female:before { content: '\e8ed'; } /* '' */
+.el-behance:before { content: '\e8ee'; } /* '' */
+.el-blogger:before { content: '\e8ef'; } /* '' */
+.el-cc:before { content: '\e8f0'; } /* '' */
+.el-css:before { content: '\e8f1'; } /* '' */
+.el-delicious:before { content: '\e8f2'; } /* '' */
+.el-deviantart:before { content: '\e8f3'; } /* '' */
+.el-digg:before { content: '\e8f4'; } /* '' */
+.el-dribbble:before { content: '\e8f5'; } /* '' */
+.el-facebook:before { content: '\e8f6'; } /* '' */
+.el-flickr:before { content: '\e8f7'; } /* '' */
+.el-foursquare:before { content: '\e8f8'; } /* '' */
+.el-friendfeed:before { content: '\e8f9'; } /* '' */
+.el-friendfeed-rect:before { content: '\e8fa'; } /* '' */
+.el-github:before { content: '\e8fb'; } /* '' */
+.el-github-text:before { content: '\e8fc'; } /* '' */
+.el-googleplus:before { content: '\e8fd'; } /* '' */
+.el-instagram:before { content: '\e8fe'; } /* '' */
+.el-linkedin:before { content: '\e8ff'; } /* '' */
+.el-path:before { content: '\e900'; } /* '' */
+.el-picasa:before { content: '\e901'; } /* '' */
+.el-pinterest:before { content: '\e902'; } /* '' */
+.el-reddit:before { content: '\e903'; } /* '' */
+.el-skype:before { content: '\e904'; } /* '' */
+.el-slideshare:before { content: '\e905'; } /* '' */
+.el-stackoverflow:before { content: '\e906'; } /* '' */
+.el-stumbleupon:before { content: '\e907'; } /* '' */
+.el-twitter:before { content: '\e908'; } /* '' */
+.el-tumblr:before { content: '\e909'; } /* '' */
+.el-vimeo:before { content: '\e90a'; } /* '' */
+.el-vkontakte:before { content: '\e90b'; } /* '' */
+.el-w3c:before { content: '\e90c'; } /* '' */
+.el-wordpress:before { content: '\e90d'; } /* '' */
+.el-youtube:before { content: '\e90e'; } /* '' */

File diff suppressed because it is too large
+ 325 - 0
code/sapparent/sapcms/src/main/webapp/public/css/fonts/elusive/css/elusive-embedded.css


+ 272 - 0
code/sapparent/sapcms/src/main/webapp/public/css/fonts/elusive/css/elusive-ie7-codes.css

@@ -0,0 +1,272 @@
+
+.el-glass { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe800;&nbsp;'); }
+.el-music { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe801;&nbsp;'); }
+.el-search { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe802;&nbsp;'); }
+.el-search-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe803;&nbsp;'); }
+.el-mail { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe804;&nbsp;'); }
+.el-mail-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe805;&nbsp;'); }
+.el-heart { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe806;&nbsp;'); }
+.el-heart-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe807;&nbsp;'); }
+.el-heart-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe808;&nbsp;'); }
+.el-star { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe809;&nbsp;'); }
+.el-star-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80a;&nbsp;'); }
+.el-star-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80b;&nbsp;'); }
+.el-user { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80c;&nbsp;'); }
+.el-group { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80d;&nbsp;'); }
+.el-group-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80e;&nbsp;'); }
+.el-torso { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80f;&nbsp;'); }
+.el-video { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe810;&nbsp;'); }
+.el-video-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe811;&nbsp;'); }
+.el-video-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe812;&nbsp;'); }
+.el-videocam { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe813;&nbsp;'); }
+.el-video-chat { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe814;&nbsp;'); }
+.el-picture { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe815;&nbsp;'); }
+.el-camera { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe816;&nbsp;'); }
+.el-photo { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe817;&nbsp;'); }
+.el-photo-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe818;&nbsp;'); }
+.el-th-large { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe819;&nbsp;'); }
+.el-th { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81a;&nbsp;'); }
+.el-th-list { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81b;&nbsp;'); }
+.el-view-mode { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81c;&nbsp;'); }
+.el-ok { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81d;&nbsp;'); }
+.el-ok-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81e;&nbsp;'); }
+.el-ok-circled2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81f;&nbsp;'); }
+.el-cancel { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe820;&nbsp;'); }
+.el-cancel-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe821;&nbsp;'); }
+.el-cancel-circled2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe822;&nbsp;'); }
+.el-plus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe823;&nbsp;'); }
+.el-plus-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe824;&nbsp;'); }
+.el-minus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe825;&nbsp;'); }
+.el-minus-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe826;&nbsp;'); }
+.el-help { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe827;&nbsp;'); }
+.el-help-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe828;&nbsp;'); }
+.el-info-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe829;&nbsp;'); }
+.el-home { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82a;&nbsp;'); }
+.el-home-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82b;&nbsp;'); }
+.el-website { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82c;&nbsp;'); }
+.el-website-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82d;&nbsp;'); }
+.el-attach { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82e;&nbsp;'); }
+.el-attach-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82f;&nbsp;'); }
+.el-lock { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe830;&nbsp;'); }
+.el-lock-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe831;&nbsp;'); }
+.el-lock-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe832;&nbsp;'); }
+.el-lock-open-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe833;&nbsp;'); }
+.el-eye { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe834;&nbsp;'); }
+.el-eye-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe835;&nbsp;'); }
+.el-tag { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe836;&nbsp;'); }
+.el-tags { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe837;&nbsp;'); }
+.el-bookmark { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe838;&nbsp;'); }
+.el-bookmark-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe839;&nbsp;'); }
+.el-flag { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83a;&nbsp;'); }
+.el-flag-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83b;&nbsp;'); }
+.el-thumbs-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83c;&nbsp;'); }
+.el-thumbs-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83d;&nbsp;'); }
+.el-download { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83e;&nbsp;'); }
+.el-download-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83f;&nbsp;'); }
+.el-upload { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe840;&nbsp;'); }
+.el-share { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe841;&nbsp;'); }
+.el-quote { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe842;&nbsp;'); }
+.el-quote-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe843;&nbsp;'); }
+.el-export { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe844;&nbsp;'); }
+.el-pencil { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe845;&nbsp;'); }
+.el-pencil-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe846;&nbsp;'); }
+.el-edit { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe847;&nbsp;'); }
+.el-edit-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe848;&nbsp;'); }
+.el-edit-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe849;&nbsp;'); }
+.el-print { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe84a;&nbsp;'); }
+.el-retweet { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe84b;&nbsp;'); }
+.el-comment { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe84c;&nbsp;'); }
+.el-comment-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe84d;&nbsp;'); }
+.el-bell { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe84e;&nbsp;'); }
+.el-warning { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe84f;&nbsp;'); }
+.el-exclamation { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe850;&nbsp;'); }
+.el-error { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe851;&nbsp;'); }
+.el-error-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe852;&nbsp;'); }
+.el-location { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe853;&nbsp;'); }
+.el-location-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe854;&nbsp;'); }
+.el-compass { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe855;&nbsp;'); }
+.el-compass-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe856;&nbsp;'); }
+.el-trash { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe857;&nbsp;'); }
+.el-trash-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe858;&nbsp;'); }
+.el-doc { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe859;&nbsp;'); }
+.el-doc-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe85a;&nbsp;'); }
+.el-doc-new { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe85b;&nbsp;'); }
+.el-doc-new-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe85c;&nbsp;'); }
+.el-folder { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe85d;&nbsp;'); }
+.el-folder-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe85e;&nbsp;'); }
+.el-folder-close { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe85f;&nbsp;'); }
+.el-folder-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe860;&nbsp;'); }
+.el-rss { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe861;&nbsp;'); }
+.el-phone { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe862;&nbsp;'); }
+.el-phone-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe863;&nbsp;'); }
+.el-cog { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe864;&nbsp;'); }
+.el-cog-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe865;&nbsp;'); }
+.el-cogs { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe866;&nbsp;'); }
+.el-wrench { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe867;&nbsp;'); }
+.el-wrench-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe868;&nbsp;'); }
+.el-basket { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe869;&nbsp;'); }
+.el-basket-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe86a;&nbsp;'); }
+.el-calendar { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe86b;&nbsp;'); }
+.el-calendar-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe86c;&nbsp;'); }
+.el-mic { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe86d;&nbsp;'); }
+.el-mic-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe86e;&nbsp;'); }
+.el-volume-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe86f;&nbsp;'); }
+.el-volume-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe870;&nbsp;'); }
+.el-volume { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe871;&nbsp;'); }
+.el-volume-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe872;&nbsp;'); }
+.el-headphones { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe873;&nbsp;'); }
+.el-clock { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe874;&nbsp;'); }
+.el-clock-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe875;&nbsp;'); }
+.el-lightbulb { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe876;&nbsp;'); }
+.el-lightbulb-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe877;&nbsp;'); }
+.el-block { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe878;&nbsp;'); }
+.el-resize-full { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe879;&nbsp;'); }
+.el-resize-full-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe87a;&nbsp;'); }
+.el-resize-small { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe87b;&nbsp;'); }
+.el-resize-vertical { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe87c;&nbsp;'); }
+.el-resize-horizontal { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe87d;&nbsp;'); }
+.el-move { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe87e;&nbsp;'); }
+.el-zoom-in { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe87f;&nbsp;'); }
+.el-zoom-out { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe880;&nbsp;'); }
+.el-down-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe881;&nbsp;'); }
+.el-left-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe882;&nbsp;'); }
+.el-right-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe883;&nbsp;'); }
+.el-up-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe884;&nbsp;'); }
+.el-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe885;&nbsp;'); }
+.el-left { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe886;&nbsp;'); }
+.el-right { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe887;&nbsp;'); }
+.el-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe888;&nbsp;'); }
+.el-down-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe889;&nbsp;'); }
+.el-left-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe88a;&nbsp;'); }
+.el-right-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe88b;&nbsp;'); }
+.el-up-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe88c;&nbsp;'); }
+.el-down-hand { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe88d;&nbsp;'); }
+.el-left-hand { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe88e;&nbsp;'); }
+.el-right-hand { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe88f;&nbsp;'); }
+.el-up-hand { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe890;&nbsp;'); }
+.el-cw { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe891;&nbsp;'); }
+.el-cw-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe892;&nbsp;'); }
+.el-arrows-cw { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe893;&nbsp;'); }
+.el-shuffle { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe894;&nbsp;'); }
+.el-play { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe895;&nbsp;'); }
+.el-play-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe896;&nbsp;'); }
+.el-play-circled2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe897;&nbsp;'); }
+.el-stop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe898;&nbsp;'); }
+.el-stop-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe899;&nbsp;'); }
+.el-pause { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe89a;&nbsp;'); }
+.el-pause-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe89b;&nbsp;'); }
+.el-record { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe89c;&nbsp;'); }
+.el-eject { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe89d;&nbsp;'); }
+.el-backward { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe89e;&nbsp;'); }
+.el-backward-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe89f;&nbsp;'); }
+.el-fast-backward { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a0;&nbsp;'); }
+.el-fast-forward { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a1;&nbsp;'); }
+.el-forward { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a2;&nbsp;'); }
+.el-forward-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a3;&nbsp;'); }
+.el-step-backward { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a4;&nbsp;'); }
+.el-step-forward { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a5;&nbsp;'); }
+.el-target { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a6;&nbsp;'); }
+.el-signal { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a7;&nbsp;'); }
+.el-desktop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a8;&nbsp;'); }
+.el-desktop-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a9;&nbsp;'); }
+.el-laptop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8aa;&nbsp;'); }
+.el-laptop-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ab;&nbsp;'); }
+.el-network { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ac;&nbsp;'); }
+.el-inbox { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ad;&nbsp;'); }
+.el-inbox-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ae;&nbsp;'); }
+.el-inbox-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8af;&nbsp;'); }
+.el-globe { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b0;&nbsp;'); }
+.el-globe-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b1;&nbsp;'); }
+.el-cloud { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b2;&nbsp;'); }
+.el-cloud-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b3;&nbsp;'); }
+.el-flight { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b4;&nbsp;'); }
+.el-leaf { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b5;&nbsp;'); }
+.el-font { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b6;&nbsp;'); }
+.el-fontsize { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b7;&nbsp;'); }
+.el-bold { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b8;&nbsp;'); }
+.el-italic { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b9;&nbsp;'); }
+.el-text-height { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ba;&nbsp;'); }
+.el-text-width { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8bb;&nbsp;'); }
+.el-align-left { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8bc;&nbsp;'); }
+.el-align-center { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8bd;&nbsp;'); }
+.el-align-right { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8be;&nbsp;'); }
+.el-align-justify { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8bf;&nbsp;'); }
+.el-list { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c0;&nbsp;'); }
+.el-indent-left { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c1;&nbsp;'); }
+.el-indent-right { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c2;&nbsp;'); }
+.el-briefcase { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c3;&nbsp;'); }
+.el-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c4;&nbsp;'); }
+.el-road { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c5;&nbsp;'); }
+.el-qrcode { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c6;&nbsp;'); }
+.el-barcode { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c7;&nbsp;'); }
+.el-braille { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c8;&nbsp;'); }
+.el-book { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c9;&nbsp;'); }
+.el-adjust { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ca;&nbsp;'); }
+.el-tint { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8cb;&nbsp;'); }
+.el-check { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8cc;&nbsp;'); }
+.el-check-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8cd;&nbsp;'); }
+.el-asterisk { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ce;&nbsp;'); }
+.el-gift { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8cf;&nbsp;'); }
+.el-fire { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d0;&nbsp;'); }
+.el-magnet { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d1;&nbsp;'); }
+.el-chart { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d2;&nbsp;'); }
+.el-chart-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d3;&nbsp;'); }
+.el-credit-card { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d4;&nbsp;'); }
+.el-megaphone { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d5;&nbsp;'); }
+.el-clipboard { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d6;&nbsp;'); }
+.el-hdd { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d7;&nbsp;'); }
+.el-key { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d8;&nbsp;'); }
+.el-certificate { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d9;&nbsp;'); }
+.el-tasks { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8da;&nbsp;'); }
+.el-filter { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8db;&nbsp;'); }
+.el-gauge { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8dc;&nbsp;'); }
+.el-smiley { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8dd;&nbsp;'); }
+.el-smiley-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8de;&nbsp;'); }
+.el-address-book { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8df;&nbsp;'); }
+.el-address-book-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e0;&nbsp;'); }
+.el-asl { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e1;&nbsp;'); }
+.el-glasses { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e2;&nbsp;'); }
+.el-hearing-impaired { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e3;&nbsp;'); }
+.el-iphone-home { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e4;&nbsp;'); }
+.el-person { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e5;&nbsp;'); }
+.el-adult { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e6;&nbsp;'); }
+.el-child { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e7;&nbsp;'); }
+.el-blind { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e8;&nbsp;'); }
+.el-guidedog { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e9;&nbsp;'); }
+.el-accessibility { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ea;&nbsp;'); }
+.el-universal-access { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8eb;&nbsp;'); }
+.el-male { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ec;&nbsp;'); }
+.el-female { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ed;&nbsp;'); }
+.el-behance { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ee;&nbsp;'); }
+.el-blogger { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ef;&nbsp;'); }
+.el-cc { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f0;&nbsp;'); }
+.el-css { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f1;&nbsp;'); }
+.el-delicious { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f2;&nbsp;'); }
+.el-deviantart { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f3;&nbsp;'); }
+.el-digg { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f4;&nbsp;'); }
+.el-dribbble { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f5;&nbsp;'); }
+.el-facebook { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f6;&nbsp;'); }
+.el-flickr { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f7;&nbsp;'); }
+.el-foursquare { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f8;&nbsp;'); }
+.el-friendfeed { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f9;&nbsp;'); }
+.el-friendfeed-rect { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8fa;&nbsp;'); }
+.el-github { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8fb;&nbsp;'); }
+.el-github-text { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8fc;&nbsp;'); }
+.el-googleplus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8fd;&nbsp;'); }
+.el-instagram { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8fe;&nbsp;'); }
+.el-linkedin { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ff;&nbsp;'); }
+.el-path { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe900;&nbsp;'); }
+.el-picasa { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe901;&nbsp;'); }
+.el-pinterest { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe902;&nbsp;'); }
+.el-reddit { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe903;&nbsp;'); }
+.el-skype { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe904;&nbsp;'); }
+.el-slideshare { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe905;&nbsp;'); }
+.el-stackoverflow { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe906;&nbsp;'); }
+.el-stumbleupon { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe907;&nbsp;'); }
+.el-twitter { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe908;&nbsp;'); }
+.el-tumblr { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe909;&nbsp;'); }
+.el-vimeo { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe90a;&nbsp;'); }
+.el-vkontakte { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe90b;&nbsp;'); }
+.el-w3c { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe90c;&nbsp;'); }
+.el-wordpress { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe90d;&nbsp;'); }
+.el-youtube { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe90e;&nbsp;'); }

+ 283 - 0
code/sapparent/sapcms/src/main/webapp/public/css/fonts/elusive/css/elusive-ie7.css

@@ -0,0 +1,283 @@
+[class^="el-"], [class*=" el-"] {
+  font-family: 'elusive';
+  font-style: normal;
+  font-weight: normal;
+ 
+  /* fix buttons height */
+  line-height: 1em;
+ 
+  /* you can be more comfortable with increased icons size */
+  /* font-size: 120%; */
+}
+ 
+.el-glass { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe800;&nbsp;'); }
+.el-music { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe801;&nbsp;'); }
+.el-search { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe802;&nbsp;'); }
+.el-search-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe803;&nbsp;'); }
+.el-mail { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe804;&nbsp;'); }
+.el-mail-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe805;&nbsp;'); }
+.el-heart { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe806;&nbsp;'); }
+.el-heart-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe807;&nbsp;'); }
+.el-heart-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe808;&nbsp;'); }
+.el-star { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe809;&nbsp;'); }
+.el-star-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80a;&nbsp;'); }
+.el-star-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80b;&nbsp;'); }
+.el-user { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80c;&nbsp;'); }
+.el-group { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80d;&nbsp;'); }
+.el-group-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80e;&nbsp;'); }
+.el-torso { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80f;&nbsp;'); }
+.el-video { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe810;&nbsp;'); }
+.el-video-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe811;&nbsp;'); }
+.el-video-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe812;&nbsp;'); }
+.el-videocam { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe813;&nbsp;'); }
+.el-video-chat { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe814;&nbsp;'); }
+.el-picture { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe815;&nbsp;'); }
+.el-camera { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe816;&nbsp;'); }
+.el-photo { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe817;&nbsp;'); }
+.el-photo-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe818;&nbsp;'); }
+.el-th-large { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe819;&nbsp;'); }
+.el-th { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81a;&nbsp;'); }
+.el-th-list { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81b;&nbsp;'); }
+.el-view-mode { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81c;&nbsp;'); }
+.el-ok { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81d;&nbsp;'); }
+.el-ok-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81e;&nbsp;'); }
+.el-ok-circled2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81f;&nbsp;'); }
+.el-cancel { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe820;&nbsp;'); }
+.el-cancel-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe821;&nbsp;'); }
+.el-cancel-circled2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe822;&nbsp;'); }
+.el-plus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe823;&nbsp;'); }
+.el-plus-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe824;&nbsp;'); }
+.el-minus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe825;&nbsp;'); }
+.el-minus-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe826;&nbsp;'); }
+.el-help { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe827;&nbsp;'); }
+.el-help-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe828;&nbsp;'); }
+.el-info-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe829;&nbsp;'); }
+.el-home { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82a;&nbsp;'); }
+.el-home-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82b;&nbsp;'); }
+.el-website { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82c;&nbsp;'); }
+.el-website-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82d;&nbsp;'); }
+.el-attach { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82e;&nbsp;'); }
+.el-attach-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82f;&nbsp;'); }
+.el-lock { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe830;&nbsp;'); }
+.el-lock-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe831;&nbsp;'); }
+.el-lock-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe832;&nbsp;'); }
+.el-lock-open-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe833;&nbsp;'); }
+.el-eye { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe834;&nbsp;'); }
+.el-eye-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe835;&nbsp;'); }
+.el-tag { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe836;&nbsp;'); }
+.el-tags { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe837;&nbsp;'); }
+.el-bookmark { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe838;&nbsp;'); }
+.el-bookmark-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe839;&nbsp;'); }
+.el-flag { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83a;&nbsp;'); }
+.el-flag-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83b;&nbsp;'); }
+.el-thumbs-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83c;&nbsp;'); }
+.el-thumbs-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83d;&nbsp;'); }
+.el-download { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83e;&nbsp;'); }
+.el-download-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe83f;&nbsp;'); }
+.el-upload { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe840;&nbsp;'); }
+.el-share { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe841;&nbsp;'); }
+.el-quote { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe842;&nbsp;'); }
+.el-quote-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe843;&nbsp;'); }
+.el-export { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe844;&nbsp;'); }
+.el-pencil { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe845;&nbsp;'); }
+.el-pencil-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe846;&nbsp;'); }
+.el-edit { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe847;&nbsp;'); }
+.el-edit-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe848;&nbsp;'); }
+.el-edit-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe849;&nbsp;'); }
+.el-print { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe84a;&nbsp;'); }
+.el-retweet { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe84b;&nbsp;'); }
+.el-comment { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe84c;&nbsp;'); }
+.el-comment-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe84d;&nbsp;'); }
+.el-bell { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe84e;&nbsp;'); }
+.el-warning { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe84f;&nbsp;'); }
+.el-exclamation { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe850;&nbsp;'); }
+.el-error { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe851;&nbsp;'); }
+.el-error-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe852;&nbsp;'); }
+.el-location { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe853;&nbsp;'); }
+.el-location-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe854;&nbsp;'); }
+.el-compass { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe855;&nbsp;'); }
+.el-compass-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe856;&nbsp;'); }
+.el-trash { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe857;&nbsp;'); }
+.el-trash-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe858;&nbsp;'); }
+.el-doc { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe859;&nbsp;'); }
+.el-doc-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe85a;&nbsp;'); }
+.el-doc-new { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe85b;&nbsp;'); }
+.el-doc-new-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe85c;&nbsp;'); }
+.el-folder { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe85d;&nbsp;'); }
+.el-folder-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe85e;&nbsp;'); }
+.el-folder-close { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe85f;&nbsp;'); }
+.el-folder-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe860;&nbsp;'); }
+.el-rss { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe861;&nbsp;'); }
+.el-phone { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe862;&nbsp;'); }
+.el-phone-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe863;&nbsp;'); }
+.el-cog { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe864;&nbsp;'); }
+.el-cog-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe865;&nbsp;'); }
+.el-cogs { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe866;&nbsp;'); }
+.el-wrench { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe867;&nbsp;'); }
+.el-wrench-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe868;&nbsp;'); }
+.el-basket { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe869;&nbsp;'); }
+.el-basket-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe86a;&nbsp;'); }
+.el-calendar { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe86b;&nbsp;'); }
+.el-calendar-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe86c;&nbsp;'); }
+.el-mic { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe86d;&nbsp;'); }
+.el-mic-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe86e;&nbsp;'); }
+.el-volume-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe86f;&nbsp;'); }
+.el-volume-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe870;&nbsp;'); }
+.el-volume { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe871;&nbsp;'); }
+.el-volume-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe872;&nbsp;'); }
+.el-headphones { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe873;&nbsp;'); }
+.el-clock { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe874;&nbsp;'); }
+.el-clock-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe875;&nbsp;'); }
+.el-lightbulb { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe876;&nbsp;'); }
+.el-lightbulb-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe877;&nbsp;'); }
+.el-block { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe878;&nbsp;'); }
+.el-resize-full { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe879;&nbsp;'); }
+.el-resize-full-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe87a;&nbsp;'); }
+.el-resize-small { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe87b;&nbsp;'); }
+.el-resize-vertical { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe87c;&nbsp;'); }
+.el-resize-horizontal { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe87d;&nbsp;'); }
+.el-move { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe87e;&nbsp;'); }
+.el-zoom-in { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe87f;&nbsp;'); }
+.el-zoom-out { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe880;&nbsp;'); }
+.el-down-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe881;&nbsp;'); }
+.el-left-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe882;&nbsp;'); }
+.el-right-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe883;&nbsp;'); }
+.el-up-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe884;&nbsp;'); }
+.el-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe885;&nbsp;'); }
+.el-left { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe886;&nbsp;'); }
+.el-right { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe887;&nbsp;'); }
+.el-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe888;&nbsp;'); }
+.el-down-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe889;&nbsp;'); }
+.el-left-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe88a;&nbsp;'); }
+.el-right-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe88b;&nbsp;'); }
+.el-up-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe88c;&nbsp;'); }
+.el-down-hand { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe88d;&nbsp;'); }
+.el-left-hand { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe88e;&nbsp;'); }
+.el-right-hand { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe88f;&nbsp;'); }
+.el-up-hand { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe890;&nbsp;'); }
+.el-cw { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe891;&nbsp;'); }
+.el-cw-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe892;&nbsp;'); }
+.el-arrows-cw { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe893;&nbsp;'); }
+.el-shuffle { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe894;&nbsp;'); }
+.el-play { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe895;&nbsp;'); }
+.el-play-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe896;&nbsp;'); }
+.el-play-circled2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe897;&nbsp;'); }
+.el-stop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe898;&nbsp;'); }
+.el-stop-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe899;&nbsp;'); }
+.el-pause { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe89a;&nbsp;'); }
+.el-pause-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe89b;&nbsp;'); }
+.el-record { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe89c;&nbsp;'); }
+.el-eject { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe89d;&nbsp;'); }
+.el-backward { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe89e;&nbsp;'); }
+.el-backward-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe89f;&nbsp;'); }
+.el-fast-backward { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a0;&nbsp;'); }
+.el-fast-forward { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a1;&nbsp;'); }
+.el-forward { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a2;&nbsp;'); }
+.el-forward-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a3;&nbsp;'); }
+.el-step-backward { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a4;&nbsp;'); }
+.el-step-forward { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a5;&nbsp;'); }
+.el-target { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a6;&nbsp;'); }
+.el-signal { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a7;&nbsp;'); }
+.el-desktop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a8;&nbsp;'); }
+.el-desktop-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8a9;&nbsp;'); }
+.el-laptop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8aa;&nbsp;'); }
+.el-laptop-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ab;&nbsp;'); }
+.el-network { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ac;&nbsp;'); }
+.el-inbox { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ad;&nbsp;'); }
+.el-inbox-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ae;&nbsp;'); }
+.el-inbox-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8af;&nbsp;'); }
+.el-globe { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b0;&nbsp;'); }
+.el-globe-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b1;&nbsp;'); }
+.el-cloud { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b2;&nbsp;'); }
+.el-cloud-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b3;&nbsp;'); }
+.el-flight { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b4;&nbsp;'); }
+.el-leaf { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b5;&nbsp;'); }
+.el-font { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b6;&nbsp;'); }
+.el-fontsize { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b7;&nbsp;'); }
+.el-bold { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b8;&nbsp;'); }
+.el-italic { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8b9;&nbsp;'); }
+.el-text-height { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ba;&nbsp;'); }
+.el-text-width { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8bb;&nbsp;'); }
+.el-align-left { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8bc;&nbsp;'); }
+.el-align-center { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8bd;&nbsp;'); }
+.el-align-right { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8be;&nbsp;'); }
+.el-align-justify { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8bf;&nbsp;'); }
+.el-list { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c0;&nbsp;'); }
+.el-indent-left { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c1;&nbsp;'); }
+.el-indent-right { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c2;&nbsp;'); }
+.el-briefcase { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c3;&nbsp;'); }
+.el-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c4;&nbsp;'); }
+.el-road { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c5;&nbsp;'); }
+.el-qrcode { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c6;&nbsp;'); }
+.el-barcode { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c7;&nbsp;'); }
+.el-braille { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c8;&nbsp;'); }
+.el-book { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8c9;&nbsp;'); }
+.el-adjust { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ca;&nbsp;'); }
+.el-tint { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8cb;&nbsp;'); }
+.el-check { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8cc;&nbsp;'); }
+.el-check-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8cd;&nbsp;'); }
+.el-asterisk { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ce;&nbsp;'); }
+.el-gift { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8cf;&nbsp;'); }
+.el-fire { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d0;&nbsp;'); }
+.el-magnet { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d1;&nbsp;'); }
+.el-chart { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d2;&nbsp;'); }
+.el-chart-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d3;&nbsp;'); }
+.el-credit-card { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d4;&nbsp;'); }
+.el-megaphone { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d5;&nbsp;'); }
+.el-clipboard { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d6;&nbsp;'); }
+.el-hdd { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d7;&nbsp;'); }
+.el-key { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d8;&nbsp;'); }
+.el-certificate { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8d9;&nbsp;'); }
+.el-tasks { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8da;&nbsp;'); }
+.el-filter { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8db;&nbsp;'); }
+.el-gauge { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8dc;&nbsp;'); }
+.el-smiley { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8dd;&nbsp;'); }
+.el-smiley-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8de;&nbsp;'); }
+.el-address-book { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8df;&nbsp;'); }
+.el-address-book-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e0;&nbsp;'); }
+.el-asl { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e1;&nbsp;'); }
+.el-glasses { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e2;&nbsp;'); }
+.el-hearing-impaired { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e3;&nbsp;'); }
+.el-iphone-home { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e4;&nbsp;'); }
+.el-person { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e5;&nbsp;'); }
+.el-adult { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e6;&nbsp;'); }
+.el-child { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e7;&nbsp;'); }
+.el-blind { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e8;&nbsp;'); }
+.el-guidedog { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8e9;&nbsp;'); }
+.el-accessibility { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ea;&nbsp;'); }
+.el-universal-access { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8eb;&nbsp;'); }
+.el-male { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ec;&nbsp;'); }
+.el-female { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ed;&nbsp;'); }
+.el-behance { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ee;&nbsp;'); }
+.el-blogger { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ef;&nbsp;'); }
+.el-cc { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f0;&nbsp;'); }
+.el-css { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f1;&nbsp;'); }
+.el-delicious { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f2;&nbsp;'); }
+.el-deviantart { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f3;&nbsp;'); }
+.el-digg { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f4;&nbsp;'); }
+.el-dribbble { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f5;&nbsp;'); }
+.el-facebook { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f6;&nbsp;'); }
+.el-flickr { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f7;&nbsp;'); }
+.el-foursquare { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f8;&nbsp;'); }
+.el-friendfeed { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8f9;&nbsp;'); }
+.el-friendfeed-rect { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8fa;&nbsp;'); }
+.el-github { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8fb;&nbsp;'); }
+.el-github-text { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8fc;&nbsp;'); }
+.el-googleplus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8fd;&nbsp;'); }
+.el-instagram { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8fe;&nbsp;'); }
+.el-linkedin { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe8ff;&nbsp;'); }
+.el-path { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe900;&nbsp;'); }
+.el-picasa { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe901;&nbsp;'); }
+.el-pinterest { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe902;&nbsp;'); }
+.el-reddit { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe903;&nbsp;'); }
+.el-skype { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe904;&nbsp;'); }
+.el-slideshare { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe905;&nbsp;'); }
+.el-stackoverflow { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe906;&nbsp;'); }
+.el-stumbleupon { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe907;&nbsp;'); }
+.el-twitter { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe908;&nbsp;'); }
+.el-tumblr { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe909;&nbsp;'); }
+.el-vimeo { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe90a;&nbsp;'); }
+.el-vkontakte { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe90b;&nbsp;'); }
+.el-w3c { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe90c;&nbsp;'); }
+.el-wordpress { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe90d;&nbsp;'); }
+.el-youtube { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe90e;&nbsp;'); }

+ 323 - 0
code/sapparent/sapcms/src/main/webapp/public/css/fonts/elusive/css/elusive.css

@@ -0,0 +1,323 @@
+@font-face {
+  font-family: 'elusive';
+  src: url('../font/elusive.eot?63825465');
+  src: url('../font/elusive.eot?63825465#iefix') format('embedded-opentype'),
+       url('../font/elusive.woff?63825465') format('woff'),
+       url('../font/elusive.ttf?63825465') format('truetype'),
+       url('../font/elusive.svg?63825465#elusive') format('svg');
+  font-weight: normal;
+  font-style: normal;
+}
+/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
+/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
+/*
+@media screen and (-webkit-min-device-pixel-ratio:0) {
+  @font-face {
+    font-family: 'elusive';
+    src: url('../font/elusive.svg?63825465#elusive') format('svg');
+  }
+}
+*/
+ 
+ [class^="el-"]:before, [class*=" el-"]:before {
+  font-family: "elusive";
+  font-style: normal;
+  font-weight: normal;
+  speak: none;
+ 
+  display: inline-block;
+  text-decoration: inherit;
+  width: 1em;
+  margin-right: .2em;
+  text-align: center;
+  /* opacity: .8; */
+ 
+  /* For safety - reset parent styles, that can break glyph codes*/
+  font-variant: normal;
+  text-transform: none;
+     
+  /* fix buttons height, for twitter bootstrap */
+  line-height: 1em;
+ 
+  /* Animation center compensation - margins should be symmetric */
+  /* remove if not needed */
+  margin-left: .2em;
+ 
+  /* you can be more comfortable with increased icons size */
+  /* font-size: 120%; */
+ 
+  /* Uncomment for 3D effect */
+  /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
+}
+ 
+.el-glass:before { content: '\e800'; } /* '' */
+.el-music:before { content: '\e801'; } /* '' */
+.el-search:before { content: '\e802'; } /* '' */
+.el-search-circled:before { content: '\e803'; } /* '' */
+.el-mail:before { content: '\e804'; } /* '' */
+.el-mail-circled:before { content: '\e805'; } /* '' */
+.el-heart:before { content: '\e806'; } /* '' */
+.el-heart-circled:before { content: '\e807'; } /* '' */
+.el-heart-empty:before { content: '\e808'; } /* '' */
+.el-star:before { content: '\e809'; } /* '' */
+.el-star-circled:before { content: '\e80a'; } /* '' */
+.el-star-empty:before { content: '\e80b'; } /* '' */
+.el-user:before { content: '\e80c'; } /* '' */
+.el-group:before { content: '\e80d'; } /* '' */
+.el-group-circled:before { content: '\e80e'; } /* '' */
+.el-torso:before { content: '\e80f'; } /* '' */
+.el-video:before { content: '\e810'; } /* '' */
+.el-video-circled:before { content: '\e811'; } /* '' */
+.el-video-alt:before { content: '\e812'; } /* '' */
+.el-videocam:before { content: '\e813'; } /* '' */
+.el-video-chat:before { content: '\e814'; } /* '' */
+.el-picture:before { content: '\e815'; } /* '' */
+.el-camera:before { content: '\e816'; } /* '' */
+.el-photo:before { content: '\e817'; } /* '' */
+.el-photo-circled:before { content: '\e818'; } /* '' */
+.el-th-large:before { content: '\e819'; } /* '' */
+.el-th:before { content: '\e81a'; } /* '' */
+.el-th-list:before { content: '\e81b'; } /* '' */
+.el-view-mode:before { content: '\e81c'; } /* '' */
+.el-ok:before { content: '\e81d'; } /* '' */
+.el-ok-circled:before { content: '\e81e'; } /* '' */
+.el-ok-circled2:before { content: '\e81f'; } /* '' */
+.el-cancel:before { content: '\e820'; } /* '' */
+.el-cancel-circled:before { content: '\e821'; } /* '' */
+.el-cancel-circled2:before { content: '\e822'; } /* '' */
+.el-plus:before { content: '\e823'; } /* '' */
+.el-plus-circled:before { content: '\e824'; } /* '' */
+.el-minus:before { content: '\e825'; } /* '' */
+.el-minus-circled:before { content: '\e826'; } /* '' */
+.el-help:before { content: '\e827'; } /* '' */
+.el-help-circled:before { content: '\e828'; } /* '' */
+.el-info-circled:before { content: '\e829'; } /* '' */
+.el-home:before { content: '\e82a'; } /* '' */
+.el-home-circled:before { content: '\e82b'; } /* '' */
+.el-website:before { content: '\e82c'; } /* '' */
+.el-website-circled:before { content: '\e82d'; } /* '' */
+.el-attach:before { content: '\e82e'; } /* '' */
+.el-attach-circled:before { content: '\e82f'; } /* '' */
+.el-lock:before { content: '\e830'; } /* '' */
+.el-lock-circled:before { content: '\e831'; } /* '' */
+.el-lock-open:before { content: '\e832'; } /* '' */
+.el-lock-open-alt:before { content: '\e833'; } /* '' */
+.el-eye:before { content: '\e834'; } /* '' */
+.el-eye-off:before { content: '\e835'; } /* '' */
+.el-tag:before { content: '\e836'; } /* '' */
+.el-tags:before { content: '\e837'; } /* '' */
+.el-bookmark:before { content: '\e838'; } /* '' */
+.el-bookmark-empty:before { content: '\e839'; } /* '' */
+.el-flag:before { content: '\e83a'; } /* '' */
+.el-flag-circled:before { content: '\e83b'; } /* '' */
+.el-thumbs-up:before { content: '\e83c'; } /* '' */
+.el-thumbs-down:before { content: '\e83d'; } /* '' */
+.el-download:before { content: '\e83e'; } /* '' */
+.el-download-alt:before { content: '\e83f'; } /* '' */
+.el-upload:before { content: '\e840'; } /* '' */
+.el-share:before { content: '\e841'; } /* '' */
+.el-quote:before { content: '\e842'; } /* '' */
+.el-quote-circled:before { content: '\e843'; } /* '' */
+.el-export:before { content: '\e844'; } /* '' */
+.el-pencil:before { content: '\e845'; } /* '' */
+.el-pencil-circled:before { content: '\e846'; } /* '' */
+.el-edit:before { content: '\e847'; } /* '' */
+.el-edit-circled:before { content: '\e848'; } /* '' */
+.el-edit-alt:before { content: '\e849'; } /* '' */
+.el-print:before { content: '\e84a'; } /* '' */
+.el-retweet:before { content: '\e84b'; } /* '' */
+.el-comment:before { content: '\e84c'; } /* '' */
+.el-comment-alt:before { content: '\e84d'; } /* '' */
+.el-bell:before { content: '\e84e'; } /* '' */
+.el-warning:before { content: '\e84f'; } /* '' */
+.el-exclamation:before { content: '\e850'; } /* '' */
+.el-error:before { content: '\e851'; } /* '' */
+.el-error-alt:before { content: '\e852'; } /* '' */
+.el-location:before { content: '\e853'; } /* '' */
+.el-location-circled:before { content: '\e854'; } /* '' */
+.el-compass:before { content: '\e855'; } /* '' */
+.el-compass-circled:before { content: '\e856'; } /* '' */
+.el-trash:before { content: '\e857'; } /* '' */
+.el-trash-circled:before { content: '\e858'; } /* '' */
+.el-doc:before { content: '\e859'; } /* '' */
+.el-doc-circled:before { content: '\e85a'; } /* '' */
+.el-doc-new:before { content: '\e85b'; } /* '' */
+.el-doc-new-circled:before { content: '\e85c'; } /* '' */
+.el-folder:before { content: '\e85d'; } /* '' */
+.el-folder-circled:before { content: '\e85e'; } /* '' */
+.el-folder-close:before { content: '\e85f'; } /* '' */
+.el-folder-open:before { content: '\e860'; } /* '' */
+.el-rss:before { content: '\e861'; } /* '' */
+.el-phone:before { content: '\e862'; } /* '' */
+.el-phone-circled:before { content: '\e863'; } /* '' */
+.el-cog:before { content: '\e864'; } /* '' */
+.el-cog-circled:before { content: '\e865'; } /* '' */
+.el-cogs:before { content: '\e866'; } /* '' */
+.el-wrench:before { content: '\e867'; } /* '' */
+.el-wrench-circled:before { content: '\e868'; } /* '' */
+.el-basket:before { content: '\e869'; } /* '' */
+.el-basket-circled:before { content: '\e86a'; } /* '' */
+.el-calendar:before { content: '\e86b'; } /* '' */
+.el-calendar-circled:before { content: '\e86c'; } /* '' */
+.el-mic:before { content: '\e86d'; } /* '' */
+.el-mic-circled:before { content: '\e86e'; } /* '' */
+.el-volume-off:before { content: '\e86f'; } /* '' */
+.el-volume-down:before { content: '\e870'; } /* '' */
+.el-volume:before { content: '\e871'; } /* '' */
+.el-volume-up:before { content: '\e872'; } /* '' */
+.el-headphones:before { content: '\e873'; } /* '' */
+.el-clock:before { content: '\e874'; } /* '' */
+.el-clock-circled:before { content: '\e875'; } /* '' */
+.el-lightbulb:before { content: '\e876'; } /* '' */
+.el-lightbulb-alt:before { content: '\e877'; } /* '' */
+.el-block:before { content: '\e878'; } /* '' */
+.el-resize-full:before { content: '\e879'; } /* '' */
+.el-resize-full-alt:before { content: '\e87a'; } /* '' */
+.el-resize-small:before { content: '\e87b'; } /* '' */
+.el-resize-vertical:before { content: '\e87c'; } /* '' */
+.el-resize-horizontal:before { content: '\e87d'; } /* '' */
+.el-move:before { content: '\e87e'; } /* '' */
+.el-zoom-in:before { content: '\e87f'; } /* '' */
+.el-zoom-out:before { content: '\e880'; } /* '' */
+.el-down-open:before { content: '\e881'; } /* '' */
+.el-left-open:before { content: '\e882'; } /* '' */
+.el-right-open:before { content: '\e883'; } /* '' */
+.el-up-open:before { content: '\e884'; } /* '' */
+.el-down:before { content: '\e885'; } /* '' */
+.el-left:before { content: '\e886'; } /* '' */
+.el-right:before { content: '\e887'; } /* '' */
+.el-up:before { content: '\e888'; } /* '' */
+.el-down-circled:before { content: '\e889'; } /* '' */
+.el-left-circled:before { content: '\e88a'; } /* '' */
+.el-right-circled:before { content: '\e88b'; } /* '' */
+.el-up-circled:before { content: '\e88c'; } /* '' */
+.el-down-hand:before { content: '\e88d'; } /* '' */
+.el-left-hand:before { content: '\e88e'; } /* '' */
+.el-right-hand:before { content: '\e88f'; } /* '' */
+.el-up-hand:before { content: '\e890'; } /* '' */
+.el-cw:before { content: '\e891'; } /* '' */
+.el-cw-circled:before { content: '\e892'; } /* '' */
+.el-arrows-cw:before { content: '\e893'; } /* '' */
+.el-shuffle:before { content: '\e894'; } /* '' */
+.el-play:before { content: '\e895'; } /* '' */
+.el-play-circled:before { content: '\e896'; } /* '' */
+.el-play-circled2:before { content: '\e897'; } /* '' */
+.el-stop:before { content: '\e898'; } /* '' */
+.el-stop-circled:before { content: '\e899'; } /* '' */
+.el-pause:before { content: '\e89a'; } /* '' */
+.el-pause-circled:before { content: '\e89b'; } /* '' */
+.el-record:before { content: '\e89c'; } /* '' */
+.el-eject:before { content: '\e89d'; } /* '' */
+.el-backward:before { content: '\e89e'; } /* '' */
+.el-backward-circled:before { content: '\e89f'; } /* '' */
+.el-fast-backward:before { content: '\e8a0'; } /* '' */
+.el-fast-forward:before { content: '\e8a1'; } /* '' */
+.el-forward:before { content: '\e8a2'; } /* '' */
+.el-forward-circled:before { content: '\e8a3'; } /* '' */
+.el-step-backward:before { content: '\e8a4'; } /* '' */
+.el-step-forward:before { content: '\e8a5'; } /* '' */
+.el-target:before { content: '\e8a6'; } /* '' */
+.el-signal:before { content: '\e8a7'; } /* '' */
+.el-desktop:before { content: '\e8a8'; } /* '' */
+.el-desktop-circled:before { content: '\e8a9'; } /* '' */
+.el-laptop:before { content: '\e8aa'; } /* '' */
+.el-laptop-circled:before { content: '\e8ab'; } /* '' */
+.el-network:before { content: '\e8ac'; } /* '' */
+.el-inbox:before { content: '\e8ad'; } /* '' */
+.el-inbox-circled:before { content: '\e8ae'; } /* '' */
+.el-inbox-alt:before { content: '\e8af'; } /* '' */
+.el-globe:before { content: '\e8b0'; } /* '' */
+.el-globe-alt:before { content: '\e8b1'; } /* '' */
+.el-cloud:before { content: '\e8b2'; } /* '' */
+.el-cloud-circled:before { content: '\e8b3'; } /* '' */
+.el-flight:before { content: '\e8b4'; } /* '' */
+.el-leaf:before { content: '\e8b5'; } /* '' */
+.el-font:before { content: '\e8b6'; } /* '' */
+.el-fontsize:before { content: '\e8b7'; } /* '' */
+.el-bold:before { content: '\e8b8'; } /* '' */
+.el-italic:before { content: '\e8b9'; } /* '' */
+.el-text-height:before { content: '\e8ba'; } /* '' */
+.el-text-width:before { content: '\e8bb'; } /* '' */
+.el-align-left:before { content: '\e8bc'; } /* '' */
+.el-align-center:before { content: '\e8bd'; } /* '' */
+.el-align-right:before { content: '\e8be'; } /* '' */
+.el-align-justify:before { content: '\e8bf'; } /* '' */
+.el-list:before { content: '\e8c0'; } /* '' */
+.el-indent-left:before { content: '\e8c1'; } /* '' */
+.el-indent-right:before { content: '\e8c2'; } /* '' */
+.el-briefcase:before { content: '\e8c3'; } /* '' */
+.el-off:before { content: '\e8c4'; } /* '' */
+.el-road:before { content: '\e8c5'; } /* '' */
+.el-qrcode:before { content: '\e8c6'; } /* '' */
+.el-barcode:before { content: '\e8c7'; } /* '' */
+.el-braille:before { content: '\e8c8'; } /* '' */
+.el-book:before { content: '\e8c9'; } /* '' */
+.el-adjust:before { content: '\e8ca'; } /* '' */
+.el-tint:before { content: '\e8cb'; } /* '' */
+.el-check:before { content: '\e8cc'; } /* '' */
+.el-check-empty:before { content: '\e8cd'; } /* '' */
+.el-asterisk:before { content: '\e8ce'; } /* '' */
+.el-gift:before { content: '\e8cf'; } /* '' */
+.el-fire:before { content: '\e8d0'; } /* '' */
+.el-magnet:before { content: '\e8d1'; } /* '' */
+.el-chart:before { content: '\e8d2'; } /* '' */
+.el-chart-circled:before { content: '\e8d3'; } /* '' */
+.el-credit-card:before { content: '\e8d4'; } /* '' */
+.el-megaphone:before { content: '\e8d5'; } /* '' */
+.el-clipboard:before { content: '\e8d6'; } /* '' */
+.el-hdd:before { content: '\e8d7'; } /* '' */
+.el-key:before { content: '\e8d8'; } /* '' */
+.el-certificate:before { content: '\e8d9'; } /* '' */
+.el-tasks:before { content: '\e8da'; } /* '' */
+.el-filter:before { content: '\e8db'; } /* '' */
+.el-gauge:before { content: '\e8dc'; } /* '' */
+.el-smiley:before { content: '\e8dd'; } /* '' */
+.el-smiley-circled:before { content: '\e8de'; } /* '' */
+.el-address-book:before { content: '\e8df'; } /* '' */
+.el-address-book-alt:before { content: '\e8e0'; } /* '' */
+.el-asl:before { content: '\e8e1'; } /* '' */
+.el-glasses:before { content: '\e8e2'; } /* '' */
+.el-hearing-impaired:before { content: '\e8e3'; } /* '' */
+.el-iphone-home:before { content: '\e8e4'; } /* '' */
+.el-person:before { content: '\e8e5'; } /* '' */
+.el-adult:before { content: '\e8e6'; } /* '' */
+.el-child:before { content: '\e8e7'; } /* '' */
+.el-blind:before { content: '\e8e8'; } /* '' */
+.el-guidedog:before { content: '\e8e9'; } /* '' */
+.el-accessibility:before { content: '\e8ea'; } /* '' */
+.el-universal-access:before { content: '\e8eb'; } /* '' */
+.el-male:before { content: '\e8ec'; } /* '' */
+.el-female:before { content: '\e8ed'; } /* '' */
+.el-behance:before { content: '\e8ee'; } /* '' */
+.el-blogger:before { content: '\e8ef'; } /* '' */
+.el-cc:before { content: '\e8f0'; } /* '' */
+.el-css:before { content: '\e8f1'; } /* '' */
+.el-delicious:before { content: '\e8f2'; } /* '' */
+.el-deviantart:before { content: '\e8f3'; } /* '' */
+.el-digg:before { content: '\e8f4'; } /* '' */
+.el-dribbble:before { content: '\e8f5'; } /* '' */
+.el-facebook:before { content: '\e8f6'; } /* '' */
+.el-flickr:before { content: '\e8f7'; } /* '' */
+.el-foursquare:before { content: '\e8f8'; } /* '' */
+.el-friendfeed:before { content: '\e8f9'; } /* '' */
+.el-friendfeed-rect:before { content: '\e8fa'; } /* '' */
+.el-github:before { content: '\e8fb'; } /* '' */
+.el-github-text:before { content: '\e8fc'; } /* '' */
+.el-googleplus:before { content: '\e8fd'; } /* '' */
+.el-instagram:before { content: '\e8fe'; } /* '' */
+.el-linkedin:before { content: '\e8ff'; } /* '' */
+.el-path:before { content: '\e900'; } /* '' */
+.el-picasa:before { content: '\e901'; } /* '' */
+.el-pinterest:before { content: '\e902'; } /* '' */
+.el-reddit:before { content: '\e903'; } /* '' */
+.el-skype:before { content: '\e904'; } /* '' */
+.el-slideshare:before { content: '\e905'; } /* '' */
+.el-stackoverflow:before { content: '\e906'; } /* '' */
+.el-stumbleupon:before { content: '\e907'; } /* '' */
+.el-twitter:before { content: '\e908'; } /* '' */
+.el-tumblr:before { content: '\e909'; } /* '' */
+.el-vimeo:before { content: '\e90a'; } /* '' */
+.el-vkontakte:before { content: '\e90b'; } /* '' */
+.el-w3c:before { content: '\e90c'; } /* '' */
+.el-wordpress:before { content: '\e90d'; } /* '' */
+.el-youtube:before { content: '\e90e'; } /* '' */

BIN
code/sapparent/sapcms/src/main/webapp/public/css/fonts/elusive/font/elusive.eot


File diff suppressed because it is too large
+ 282 - 0
code/sapparent/sapcms/src/main/webapp/public/css/fonts/elusive/font/elusive.svg


BIN
code/sapparent/sapcms/src/main/webapp/public/css/fonts/elusive/font/elusive.ttf


BIN
code/sapparent/sapcms/src/main/webapp/public/css/fonts/elusive/font/elusive.woff


BIN
code/sapparent/sapcms/src/main/webapp/public/css/fonts/fontawesome/.DS_Store


File diff suppressed because it is too large
+ 1681 - 0
code/sapparent/sapcms/src/main/webapp/public/css/fonts/fontawesome/css/font-awesome.css


File diff suppressed because it is too large
+ 4 - 0
code/sapparent/sapcms/src/main/webapp/public/css/fonts/fontawesome/css/font-awesome.min.css


BIN
code/sapparent/sapcms/src/main/webapp/public/css/fonts/fontawesome/fonts/FontAwesome.otf


BIN
code/sapparent/sapcms/src/main/webapp/public/css/fonts/fontawesome/fonts/fontawesome-webfont.eot


File diff suppressed because it is too large
+ 520 - 0
code/sapparent/sapcms/src/main/webapp/public/css/fonts/fontawesome/fonts/fontawesome-webfont.svg


BIN
code/sapparent/sapcms/src/main/webapp/public/css/fonts/fontawesome/fonts/fontawesome-webfont.ttf


BIN
code/sapparent/sapcms/src/main/webapp/public/css/fonts/fontawesome/fonts/fontawesome-webfont.woff


BIN
code/sapparent/sapcms/src/main/webapp/public/css/fonts/glyphicons/.DS_Store


BIN
code/sapparent/sapcms/src/main/webapp/public/css/fonts/glyphicons/glyphicons-halflings-regular.eot


File diff suppressed because it is too large
+ 229 - 0
code/sapparent/sapcms/src/main/webapp/public/css/fonts/glyphicons/glyphicons-halflings-regular.svg


BIN
code/sapparent/sapcms/src/main/webapp/public/css/fonts/glyphicons/glyphicons-halflings-regular.ttf


BIN
code/sapparent/sapcms/src/main/webapp/public/css/fonts/glyphicons/glyphicons-halflings-regular.woff


+ 0 - 0
code/sapparent/sapcms/src/main/webapp/public/css/fonts/glyphicons/index.html


BIN
code/sapparent/sapcms/src/main/webapp/public/css/fonts/linecons/.DS_Store


+ 85 - 0
code/sapparent/sapcms/src/main/webapp/public/css/fonts/linecons/css/animation.css

@@ -0,0 +1,85 @@
+/*
+   Animation example, for spinners
+*/
+.animate-spin {
+  -moz-animation: spin 2s infinite linear;
+  -o-animation: spin 2s infinite linear;
+  -webkit-animation: spin 2s infinite linear;
+  animation: spin 2s infinite linear;
+  display: inline-block;
+}
+@-moz-keyframes spin {
+  0% {
+    -moz-transform: rotate(0deg);
+    -o-transform: rotate(0deg);
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+
+  100% {
+    -moz-transform: rotate(359deg);
+    -o-transform: rotate(359deg);
+    -webkit-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}
+@-webkit-keyframes spin {
+  0% {
+    -moz-transform: rotate(0deg);
+    -o-transform: rotate(0deg);
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+
+  100% {
+    -moz-transform: rotate(359deg);
+    -o-transform: rotate(359deg);
+    -webkit-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}
+@-o-keyframes spin {
+  0% {
+    -moz-transform: rotate(0deg);
+    -o-transform: rotate(0deg);
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+
+  100% {
+    -moz-transform: rotate(359deg);
+    -o-transform: rotate(359deg);
+    -webkit-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}
+@-ms-keyframes spin {
+  0% {
+    -moz-transform: rotate(0deg);
+    -o-transform: rotate(0deg);
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+
+  100% {
+    -moz-transform: rotate(359deg);
+    -o-transform: rotate(359deg);
+    -webkit-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}
+@keyframes spin {
+  0% {
+    -moz-transform: rotate(0deg);
+    -o-transform: rotate(0deg);
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+
+  100% {
+    -moz-transform: rotate(359deg);
+    -o-transform: rotate(359deg);
+    -webkit-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}

+ 49 - 0
code/sapparent/sapcms/src/main/webapp/public/css/fonts/linecons/css/linecons-codes.css

@@ -0,0 +1,49 @@
+
+.linecons-music:before { content: '\e800'; } /* '' */
+.linecons-search:before { content: '\e801'; } /* '' */
+.linecons-mail:before { content: '\e802'; } /* '' */
+.linecons-heart:before { content: '\e803'; } /* '' */
+.linecons-star:before { content: '\e804'; } /* '' */
+.linecons-user:before { content: '\e805'; } /* '' */
+.linecons-videocam:before { content: '\e806'; } /* '' */
+.linecons-camera:before { content: '\e807'; } /* '' */
+.linecons-photo:before { content: '\e808'; } /* '' */
+.linecons-attach:before { content: '\e809'; } /* '' */
+.linecons-lock:before { content: '\e80a'; } /* '' */
+.linecons-eye:before { content: '\e80b'; } /* '' */
+.linecons-tag:before { content: '\e80c'; } /* '' */
+.linecons-thumbs-up:before { content: '\e80d'; } /* '' */
+.linecons-pencil:before { content: '\e80e'; } /* '' */
+.linecons-comment:before { content: '\e80f'; } /* '' */
+.linecons-location:before { content: '\e810'; } /* '' */
+.linecons-cup:before { content: '\e811'; } /* '' */
+.linecons-trash:before { content: '\e812'; } /* '' */
+.linecons-doc:before { content: '\e813'; } /* '' */
+.linecons-note:before { content: '\e814'; } /* '' */
+.linecons-cog:before { content: '\e815'; } /* '' */
+.linecons-params:before { content: '\e816'; } /* '' */
+.linecons-calendar:before { content: '\e817'; } /* '' */
+.linecons-sound:before { content: '\e818'; } /* '' */
+.linecons-clock:before { content: '\e819'; } /* '' */
+.linecons-lightbulb:before { content: '\e81a'; } /* '' */
+.linecons-tv:before { content: '\e81b'; } /* '' */
+.linecons-desktop:before { content: '\e81c'; } /* '' */
+.linecons-mobile:before { content: '\e81d'; } /* '' */
+.linecons-cd:before { content: '\e81e'; } /* '' */
+.linecons-inbox:before { content: '\e81f'; } /* '' */
+.linecons-globe:before { content: '\e820'; } /* '' */
+.linecons-cloud:before { content: '\e821'; } /* '' */
+.linecons-paper-plane:before { content: '\e822'; } /* '' */
+.linecons-fire:before { content: '\e823'; } /* '' */
+.linecons-graduation-cap:before { content: '\e824'; } /* '' */
+.linecons-megaphone:before { content: '\e825'; } /* '' */
+.linecons-database:before { content: '\e826'; } /* '' */
+.linecons-key:before { content: '\e827'; } /* '' */
+.linecons-beaker:before { content: '\e828'; } /* '' */
+.linecons-truck:before { content: '\e829'; } /* '' */
+.linecons-money:before { content: '\e82a'; } /* '' */
+.linecons-food:before { content: '\e82b'; } /* '' */
+.linecons-shop:before { content: '\e82c'; } /* '' */
+.linecons-diamond:before { content: '\e82d'; } /* '' */
+.linecons-t-shirt:before { content: '\e82e'; } /* '' */
+.linecons-wallet:before { content: '\e82f'; } /* '' */

File diff suppressed because it is too large
+ 102 - 0
code/sapparent/sapcms/src/main/webapp/public/css/fonts/linecons/css/linecons-embedded.css


+ 49 - 0
code/sapparent/sapcms/src/main/webapp/public/css/fonts/linecons/css/linecons-ie7-codes.css

@@ -0,0 +1,49 @@
+
+.linecons-music { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe800;&nbsp;'); }
+.linecons-search { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe801;&nbsp;'); }
+.linecons-mail { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe802;&nbsp;'); }
+.linecons-heart { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe803;&nbsp;'); }
+.linecons-star { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe804;&nbsp;'); }
+.linecons-user { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe805;&nbsp;'); }
+.linecons-videocam { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe806;&nbsp;'); }
+.linecons-camera { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe807;&nbsp;'); }
+.linecons-photo { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe808;&nbsp;'); }
+.linecons-attach { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe809;&nbsp;'); }
+.linecons-lock { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80a;&nbsp;'); }
+.linecons-eye { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80b;&nbsp;'); }
+.linecons-tag { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80c;&nbsp;'); }
+.linecons-thumbs-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80d;&nbsp;'); }
+.linecons-pencil { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80e;&nbsp;'); }
+.linecons-comment { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80f;&nbsp;'); }
+.linecons-location { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe810;&nbsp;'); }
+.linecons-cup { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe811;&nbsp;'); }
+.linecons-trash { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe812;&nbsp;'); }
+.linecons-doc { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe813;&nbsp;'); }
+.linecons-note { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe814;&nbsp;'); }
+.linecons-cog { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe815;&nbsp;'); }
+.linecons-params { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe816;&nbsp;'); }
+.linecons-calendar { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe817;&nbsp;'); }
+.linecons-sound { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe818;&nbsp;'); }
+.linecons-clock { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe819;&nbsp;'); }
+.linecons-lightbulb { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81a;&nbsp;'); }
+.linecons-tv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81b;&nbsp;'); }
+.linecons-desktop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81c;&nbsp;'); }
+.linecons-mobile { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81d;&nbsp;'); }
+.linecons-cd { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81e;&nbsp;'); }
+.linecons-inbox { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81f;&nbsp;'); }
+.linecons-globe { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe820;&nbsp;'); }
+.linecons-cloud { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe821;&nbsp;'); }
+.linecons-paper-plane { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe822;&nbsp;'); }
+.linecons-fire { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe823;&nbsp;'); }
+.linecons-graduation-cap { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe824;&nbsp;'); }
+.linecons-megaphone { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe825;&nbsp;'); }
+.linecons-database { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe826;&nbsp;'); }
+.linecons-key { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe827;&nbsp;'); }
+.linecons-beaker { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe828;&nbsp;'); }
+.linecons-truck { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe829;&nbsp;'); }
+.linecons-money { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82a;&nbsp;'); }
+.linecons-food { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82b;&nbsp;'); }
+.linecons-shop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82c;&nbsp;'); }
+.linecons-diamond { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82d;&nbsp;'); }
+.linecons-t-shirt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82e;&nbsp;'); }
+.linecons-wallet { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82f;&nbsp;'); }

+ 60 - 0
code/sapparent/sapcms/src/main/webapp/public/css/fonts/linecons/css/linecons-ie7.css

@@ -0,0 +1,60 @@
+[class^="linecons-"], [class*=" linecons-"] {
+  font-family: 'linecons';
+  font-style: normal;
+  font-weight: normal;
+ 
+  /* fix buttons height */
+  line-height: 1em;
+ 
+  /* you can be more comfortable with increased icons size */
+  /* font-size: 120%; */
+}
+ 
+.linecons-music { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe800;&nbsp;'); }
+.linecons-search { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe801;&nbsp;'); }
+.linecons-mail { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe802;&nbsp;'); }
+.linecons-heart { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe803;&nbsp;'); }
+.linecons-star { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe804;&nbsp;'); }
+.linecons-user { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe805;&nbsp;'); }
+.linecons-videocam { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe806;&nbsp;'); }
+.linecons-camera { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe807;&nbsp;'); }
+.linecons-photo { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe808;&nbsp;'); }
+.linecons-attach { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe809;&nbsp;'); }
+.linecons-lock { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80a;&nbsp;'); }
+.linecons-eye { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80b;&nbsp;'); }
+.linecons-tag { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80c;&nbsp;'); }
+.linecons-thumbs-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80d;&nbsp;'); }
+.linecons-pencil { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80e;&nbsp;'); }
+.linecons-comment { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80f;&nbsp;'); }
+.linecons-location { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe810;&nbsp;'); }
+.linecons-cup { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe811;&nbsp;'); }
+.linecons-trash { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe812;&nbsp;'); }
+.linecons-doc { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe813;&nbsp;'); }
+.linecons-note { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe814;&nbsp;'); }
+.linecons-cog { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe815;&nbsp;'); }
+.linecons-params { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe816;&nbsp;'); }
+.linecons-calendar { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe817;&nbsp;'); }
+.linecons-sound { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe818;&nbsp;'); }
+.linecons-clock { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe819;&nbsp;'); }
+.linecons-lightbulb { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81a;&nbsp;'); }
+.linecons-tv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81b;&nbsp;'); }
+.linecons-desktop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81c;&nbsp;'); }
+.linecons-mobile { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81d;&nbsp;'); }
+.linecons-cd { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81e;&nbsp;'); }
+.linecons-inbox { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81f;&nbsp;'); }
+.linecons-globe { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe820;&nbsp;'); }
+.linecons-cloud { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe821;&nbsp;'); }
+.linecons-paper-plane { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe822;&nbsp;'); }
+.linecons-fire { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe823;&nbsp;'); }
+.linecons-graduation-cap { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe824;&nbsp;'); }
+.linecons-megaphone { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe825;&nbsp;'); }
+.linecons-database { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe826;&nbsp;'); }
+.linecons-key { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe827;&nbsp;'); }
+.linecons-beaker { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe828;&nbsp;'); }
+.linecons-truck { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe829;&nbsp;'); }
+.linecons-money { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82a;&nbsp;'); }
+.linecons-food { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82b;&nbsp;'); }
+.linecons-shop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82c;&nbsp;'); }
+.linecons-diamond { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82d;&nbsp;'); }
+.linecons-t-shirt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82e;&nbsp;'); }
+.linecons-wallet { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82f;&nbsp;'); }

+ 100 - 0
code/sapparent/sapcms/src/main/webapp/public/css/fonts/linecons/css/linecons.css

@@ -0,0 +1,100 @@
+@font-face {
+  font-family: 'linecons';
+  src: url('../font/linecons.eot?24293614');
+  src: url('../font/linecons.eot?24293614#iefix') format('embedded-opentype'),
+       url('../font/linecons.woff?24293614') format('woff'),
+       url('../font/linecons.ttf?24293614') format('truetype'),
+       url('../font/linecons.svg?24293614#linecons') format('svg');
+  font-weight: normal;
+  font-style: normal;
+}
+/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
+/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
+/*
+@media screen and (-webkit-min-device-pixel-ratio:0) {
+  @font-face {
+    font-family: 'linecons';
+    src: url('../font/linecons.svg?24293614#linecons') format('svg');
+  }
+}
+*/
+ 
+ [class^="linecons-"]:before, [class*=" linecons-"]:before {
+  font-family: "linecons";
+  font-style: normal;
+  font-weight: normal;
+  speak: none;
+ 
+  display: inline-block;
+  text-decoration: inherit;
+  width: 1em;
+  margin-right: .2em;
+  text-align: center;
+  /* opacity: .8; */
+ 
+  /* For safety - reset parent styles, that can break glyph codes*/
+  font-variant: normal;
+  text-transform: none;
+     
+  /* fix buttons height, for twitter bootstrap */
+  line-height: 1em;
+ 
+  /* Animation center compensation - margins should be symmetric */
+  /* remove if not needed */
+  margin-left: .2em;
+ 
+  /* you can be more comfortable with increased icons size */
+  /* font-size: 120%; */
+ 
+  /* Uncomment for 3D effect */
+  /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
+}
+ 
+.linecons-music:before { content: '\e800'; } /* '' */
+.linecons-search:before { content: '\e801'; } /* '' */
+.linecons-mail:before { content: '\e802'; } /* '' */
+.linecons-heart:before { content: '\e803'; } /* '' */
+.linecons-star:before { content: '\e804'; } /* '' */
+.linecons-user:before { content: '\e805'; } /* '' */
+.linecons-videocam:before { content: '\e806'; } /* '' */
+.linecons-camera:before { content: '\e807'; } /* '' */
+.linecons-photo:before { content: '\e808'; } /* '' */
+.linecons-attach:before { content: '\e809'; } /* '' */
+.linecons-lock:before { content: '\e80a'; } /* '' */
+.linecons-eye:before { content: '\e80b'; } /* '' */
+.linecons-tag:before { content: '\e80c'; } /* '' */
+.linecons-thumbs-up:before { content: '\e80d'; } /* '' */
+.linecons-pencil:before { content: '\e80e'; } /* '' */
+.linecons-comment:before { content: '\e80f'; } /* '' */
+.linecons-location:before { content: '\e810'; } /* '' */
+.linecons-cup:before { content: '\e811'; } /* '' */
+.linecons-trash:before { content: '\e812'; } /* '' */
+.linecons-doc:before { content: '\e813'; } /* '' */
+.linecons-note:before { content: '\e814'; } /* '' */
+.linecons-cog:before { content: '\e815'; } /* '' */
+.linecons-params:before { content: '\e816'; } /* '' */
+.linecons-calendar:before { content: '\e817'; } /* '' */
+.linecons-sound:before { content: '\e818'; } /* '' */
+.linecons-clock:before { content: '\e819'; } /* '' */
+.linecons-lightbulb:before { content: '\e81a'; } /* '' */
+.linecons-tv:before { content: '\e81b'; } /* '' */
+.linecons-desktop:before { content: '\e81c'; } /* '' */
+.linecons-mobile:before { content: '\e81d'; } /* '' */
+.linecons-cd:before { content: '\e81e'; } /* '' */
+.linecons-inbox:before { content: '\e81f'; } /* '' */
+.linecons-globe:before { content: '\e820'; } /* '' */
+.linecons-cloud:before { content: '\e821'; } /* '' */
+.linecons-paper-plane:before { content: '\e822'; } /* '' */
+.linecons-fire:before { content: '\e823'; } /* '' */
+.linecons-graduation-cap:before { content: '\e824'; } /* '' */
+.linecons-megaphone:before { content: '\e825'; } /* '' */
+.linecons-database:before { content: '\e826'; } /* '' */
+.linecons-key:before { content: '\e827'; } /* '' */
+.linecons-beaker:before { content: '\e828'; } /* '' */
+.linecons-truck:before { content: '\e829'; } /* '' */
+.linecons-money:before { content: '\e82a'; } /* '' */
+.linecons-food:before { content: '\e82b'; } /* '' */
+.linecons-shop:before { content: '\e82c'; } /* '' */
+.linecons-diamond:before { content: '\e82d'; } /* '' */
+.linecons-t-shirt:before { content: '\e82e'; } /* '' */
+.linecons-wallet:before { content: '\e82f'; } /* '' */

BIN
code/sapparent/sapcms/src/main/webapp/public/css/fonts/linecons/font/linecons.eot


File diff suppressed because it is too large
+ 59 - 0
code/sapparent/sapcms/src/main/webapp/public/css/fonts/linecons/font/linecons.svg


BIN
code/sapparent/sapcms/src/main/webapp/public/css/fonts/linecons/font/linecons.ttf


BIN
code/sapparent/sapcms/src/main/webapp/public/css/fonts/linecons/font/linecons.woff


BIN
code/sapparent/sapcms/src/main/webapp/public/css/fonts/meteocons/.DS_Store


+ 85 - 0
code/sapparent/sapcms/src/main/webapp/public/css/fonts/meteocons/css/animation.css

@@ -0,0 +1,85 @@
+/*
+   Animation example, for spinners
+*/
+.animate-spin {
+  -moz-animation: spin 2s infinite linear;
+  -o-animation: spin 2s infinite linear;
+  -webkit-animation: spin 2s infinite linear;
+  animation: spin 2s infinite linear;
+  display: inline-block;
+}
+@-moz-keyframes spin {
+  0% {
+    -moz-transform: rotate(0deg);
+    -o-transform: rotate(0deg);
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+
+  100% {
+    -moz-transform: rotate(359deg);
+    -o-transform: rotate(359deg);
+    -webkit-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}
+@-webkit-keyframes spin {
+  0% {
+    -moz-transform: rotate(0deg);
+    -o-transform: rotate(0deg);
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+
+  100% {
+    -moz-transform: rotate(359deg);
+    -o-transform: rotate(359deg);
+    -webkit-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}
+@-o-keyframes spin {
+  0% {
+    -moz-transform: rotate(0deg);
+    -o-transform: rotate(0deg);
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+
+  100% {
+    -moz-transform: rotate(359deg);
+    -o-transform: rotate(359deg);
+    -webkit-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}
+@-ms-keyframes spin {
+  0% {
+    -moz-transform: rotate(0deg);
+    -o-transform: rotate(0deg);
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+
+  100% {
+    -moz-transform: rotate(359deg);
+    -o-transform: rotate(359deg);
+    -webkit-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}
+@keyframes spin {
+  0% {
+    -moz-transform: rotate(0deg);
+    -o-transform: rotate(0deg);
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+
+  100% {
+    -moz-transform: rotate(359deg);
+    -o-transform: rotate(359deg);
+    -webkit-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}

+ 48 - 0
code/sapparent/sapcms/src/main/webapp/public/css/fonts/meteocons/css/meteocons-codes.css

@@ -0,0 +1,48 @@
+
+.meteocons-windy-rain-inv:before { content: '\e800'; } /* '' */
+.meteocons-snow-inv:before { content: '\e801'; } /* '' */
+.meteocons-snow-heavy-inv:before { content: '\e802'; } /* '' */
+.meteocons-hail-inv:before { content: '\e803'; } /* '' */
+.meteocons-clouds-inv:before { content: '\e804'; } /* '' */
+.meteocons-clouds-flash-inv:before { content: '\e805'; } /* '' */
+.meteocons-temperature:before { content: '\e806'; } /* '' */
+.meteocons-compass:before { content: '\e807'; } /* '' */
+.meteocons-na:before { content: '\e808'; } /* '' */
+.meteocons-celcius:before { content: '\e809'; } /* '' */
+.meteocons-fahrenheit:before { content: '\e80a'; } /* '' */
+.meteocons-clouds-flash-alt:before { content: '\e80b'; } /* '' */
+.meteocons-sun-inv:before { content: '\e80c'; } /* '' */
+.meteocons-moon-inv:before { content: '\e80d'; } /* '' */
+.meteocons-cloud-sun-inv:before { content: '\e80e'; } /* '' */
+.meteocons-cloud-moon-inv:before { content: '\e80f'; } /* '' */
+.meteocons-cloud-inv:before { content: '\e810'; } /* '' */
+.meteocons-cloud-flash-inv:before { content: '\e811'; } /* '' */
+.meteocons-drizzle-inv:before { content: '\e812'; } /* '' */
+.meteocons-rain-inv:before { content: '\e813'; } /* '' */
+.meteocons-windy-inv:before { content: '\e814'; } /* '' */
+.meteocons-sunrise:before { content: '\e815'; } /* '' */
+.meteocons-sun:before { content: '\e816'; } /* '' */
+.meteocons-moon:before { content: '\e817'; } /* '' */
+.meteocons-eclipse:before { content: '\e818'; } /* '' */
+.meteocons-mist:before { content: '\e819'; } /* '' */
+.meteocons-wind:before { content: '\e81a'; } /* '' */
+.meteocons-snowflake:before { content: '\e81b'; } /* '' */
+.meteocons-cloud-sun:before { content: '\e81c'; } /* '' */
+.meteocons-cloud-moon:before { content: '\e81d'; } /* '' */
+.meteocons-fog-sun:before { content: '\e81e'; } /* '' */
+.meteocons-fog-moon:before { content: '\e81f'; } /* '' */
+.meteocons-fog-cloud:before { content: '\e820'; } /* '' */
+.meteocons-fog:before { content: '\e821'; } /* '' */
+.meteocons-cloud:before { content: '\e822'; } /* '' */
+.meteocons-cloud-flash:before { content: '\e823'; } /* '' */
+.meteocons-cloud-flash-alt:before { content: '\e824'; } /* '' */
+.meteocons-drizzle:before { content: '\e825'; } /* '' */
+.meteocons-rain:before { content: '\e826'; } /* '' */
+.meteocons-windy:before { content: '\e827'; } /* '' */
+.meteocons-windy-rain:before { content: '\e828'; } /* '' */
+.meteocons-snow:before { content: '\e829'; } /* '' */
+.meteocons-snow-alt:before { content: '\e82a'; } /* '' */
+.meteocons-snow-heavy:before { content: '\e82b'; } /* '' */
+.meteocons-hail:before { content: '\e82c'; } /* '' */
+.meteocons-clouds:before { content: '\e82d'; } /* '' */
+.meteocons-clouds-flash:before { content: '\e82e'; } /* '' */

File diff suppressed because it is too large
+ 101 - 0
code/sapparent/sapcms/src/main/webapp/public/css/fonts/meteocons/css/meteocons-embedded.css


+ 48 - 0
code/sapparent/sapcms/src/main/webapp/public/css/fonts/meteocons/css/meteocons-ie7-codes.css

@@ -0,0 +1,48 @@
+
+.meteocons-windy-rain-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe800;&nbsp;'); }
+.meteocons-snow-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe801;&nbsp;'); }
+.meteocons-snow-heavy-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe802;&nbsp;'); }
+.meteocons-hail-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe803;&nbsp;'); }
+.meteocons-clouds-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe804;&nbsp;'); }
+.meteocons-clouds-flash-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe805;&nbsp;'); }
+.meteocons-temperature { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe806;&nbsp;'); }
+.meteocons-compass { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe807;&nbsp;'); }
+.meteocons-na { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe808;&nbsp;'); }
+.meteocons-celcius { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe809;&nbsp;'); }
+.meteocons-fahrenheit { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80a;&nbsp;'); }
+.meteocons-clouds-flash-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80b;&nbsp;'); }
+.meteocons-sun-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80c;&nbsp;'); }
+.meteocons-moon-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80d;&nbsp;'); }
+.meteocons-cloud-sun-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80e;&nbsp;'); }
+.meteocons-cloud-moon-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80f;&nbsp;'); }
+.meteocons-cloud-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe810;&nbsp;'); }
+.meteocons-cloud-flash-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe811;&nbsp;'); }
+.meteocons-drizzle-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe812;&nbsp;'); }
+.meteocons-rain-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe813;&nbsp;'); }
+.meteocons-windy-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe814;&nbsp;'); }
+.meteocons-sunrise { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe815;&nbsp;'); }
+.meteocons-sun { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe816;&nbsp;'); }
+.meteocons-moon { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe817;&nbsp;'); }
+.meteocons-eclipse { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe818;&nbsp;'); }
+.meteocons-mist { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe819;&nbsp;'); }
+.meteocons-wind { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81a;&nbsp;'); }
+.meteocons-snowflake { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81b;&nbsp;'); }
+.meteocons-cloud-sun { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81c;&nbsp;'); }
+.meteocons-cloud-moon { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81d;&nbsp;'); }
+.meteocons-fog-sun { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81e;&nbsp;'); }
+.meteocons-fog-moon { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81f;&nbsp;'); }
+.meteocons-fog-cloud { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe820;&nbsp;'); }
+.meteocons-fog { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe821;&nbsp;'); }
+.meteocons-cloud { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe822;&nbsp;'); }
+.meteocons-cloud-flash { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe823;&nbsp;'); }
+.meteocons-cloud-flash-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe824;&nbsp;'); }
+.meteocons-drizzle { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe825;&nbsp;'); }
+.meteocons-rain { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe826;&nbsp;'); }
+.meteocons-windy { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe827;&nbsp;'); }
+.meteocons-windy-rain { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe828;&nbsp;'); }
+.meteocons-snow { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe829;&nbsp;'); }
+.meteocons-snow-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82a;&nbsp;'); }
+.meteocons-snow-heavy { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82b;&nbsp;'); }
+.meteocons-hail { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82c;&nbsp;'); }
+.meteocons-clouds { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82d;&nbsp;'); }
+.meteocons-clouds-flash { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82e;&nbsp;'); }

+ 59 - 0
code/sapparent/sapcms/src/main/webapp/public/css/fonts/meteocons/css/meteocons-ie7.css

@@ -0,0 +1,59 @@
+[class^="meteocons-"], [class*=" meteocons-"] {
+  font-family: 'meteocons';
+  font-style: normal;
+  font-weight: normal;
+ 
+  /* fix buttons height */
+  line-height: 1em;
+ 
+  /* you can be more comfortable with increased icons size */
+  /* font-size: 120%; */
+}
+ 
+.meteocons-windy-rain-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe800;&nbsp;'); }
+.meteocons-snow-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe801;&nbsp;'); }
+.meteocons-snow-heavy-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe802;&nbsp;'); }
+.meteocons-hail-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe803;&nbsp;'); }
+.meteocons-clouds-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe804;&nbsp;'); }
+.meteocons-clouds-flash-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe805;&nbsp;'); }
+.meteocons-temperature { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe806;&nbsp;'); }
+.meteocons-compass { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe807;&nbsp;'); }
+.meteocons-na { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe808;&nbsp;'); }
+.meteocons-celcius { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe809;&nbsp;'); }
+.meteocons-fahrenheit { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80a;&nbsp;'); }
+.meteocons-clouds-flash-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80b;&nbsp;'); }
+.meteocons-sun-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80c;&nbsp;'); }
+.meteocons-moon-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80d;&nbsp;'); }
+.meteocons-cloud-sun-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80e;&nbsp;'); }
+.meteocons-cloud-moon-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80f;&nbsp;'); }
+.meteocons-cloud-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe810;&nbsp;'); }
+.meteocons-cloud-flash-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe811;&nbsp;'); }
+.meteocons-drizzle-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe812;&nbsp;'); }
+.meteocons-rain-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe813;&nbsp;'); }
+.meteocons-windy-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe814;&nbsp;'); }
+.meteocons-sunrise { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe815;&nbsp;'); }
+.meteocons-sun { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe816;&nbsp;'); }
+.meteocons-moon { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe817;&nbsp;'); }
+.meteocons-eclipse { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe818;&nbsp;'); }
+.meteocons-mist { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe819;&nbsp;'); }
+.meteocons-wind { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81a;&nbsp;'); }
+.meteocons-snowflake { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81b;&nbsp;'); }
+.meteocons-cloud-sun { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81c;&nbsp;'); }
+.meteocons-cloud-moon { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81d;&nbsp;'); }
+.meteocons-fog-sun { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81e;&nbsp;'); }
+.meteocons-fog-moon { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81f;&nbsp;'); }
+.meteocons-fog-cloud { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe820;&nbsp;'); }
+.meteocons-fog { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe821;&nbsp;'); }
+.meteocons-cloud { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe822;&nbsp;'); }
+.meteocons-cloud-flash { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe823;&nbsp;'); }
+.meteocons-cloud-flash-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe824;&nbsp;'); }
+.meteocons-drizzle { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe825;&nbsp;'); }
+.meteocons-rain { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe826;&nbsp;'); }
+.meteocons-windy { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe827;&nbsp;'); }
+.meteocons-windy-rain { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe828;&nbsp;'); }
+.meteocons-snow { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe829;&nbsp;'); }
+.meteocons-snow-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82a;&nbsp;'); }
+.meteocons-snow-heavy { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82b;&nbsp;'); }
+.meteocons-hail { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82c;&nbsp;'); }
+.meteocons-clouds { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82d;&nbsp;'); }
+.meteocons-clouds-flash { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82e;&nbsp;'); }

+ 99 - 0
code/sapparent/sapcms/src/main/webapp/public/css/fonts/meteocons/css/meteocons.css

@@ -0,0 +1,99 @@
+@font-face {
+  font-family: 'meteocons';
+  src: url('../font/meteocons.eot?24967826');
+  src: url('../font/meteocons.eot?24967826#iefix') format('embedded-opentype'),
+       url('../font/meteocons.woff?24967826') format('woff'),
+       url('../font/meteocons.ttf?24967826') format('truetype'),
+       url('../font/meteocons.svg?24967826#meteocons') format('svg');
+  font-weight: normal;
+  font-style: normal;
+}
+/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
+/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
+/*
+@media screen and (-webkit-min-device-pixel-ratio:0) {
+  @font-face {
+    font-family: 'meteocons';
+    src: url('../font/meteocons.svg?24967826#meteocons') format('svg');
+  }
+}
+*/
+ 
+ [class^="meteocons-"]:before, [class*=" meteocons-"]:before {
+  font-family: "meteocons";
+  font-style: normal;
+  font-weight: normal;
+  speak: none;
+ 
+  display: inline-block;
+  text-decoration: inherit;
+  width: 1em;
+  margin-right: .2em;
+  text-align: center;
+  /* opacity: .8; */
+ 
+  /* For safety - reset parent styles, that can break glyph codes*/
+  font-variant: normal;
+  text-transform: none;
+     
+  /* fix buttons height, for twitter bootstrap */
+  line-height: 1em;
+ 
+  /* Animation center compensation - margins should be symmetric */
+  /* remove if not needed */
+  margin-left: .2em;
+ 
+  /* you can be more comfortable with increased icons size */
+  /* font-size: 120%; */
+ 
+  /* Uncomment for 3D effect */
+  /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
+}
+ 
+.meteocons-windy-rain-inv:before { content: '\e800'; } /* '' */
+.meteocons-snow-inv:before { content: '\e801'; } /* '' */
+.meteocons-snow-heavy-inv:before { content: '\e802'; } /* '' */
+.meteocons-hail-inv:before { content: '\e803'; } /* '' */
+.meteocons-clouds-inv:before { content: '\e804'; } /* '' */
+.meteocons-clouds-flash-inv:before { content: '\e805'; } /* '' */
+.meteocons-temperature:before { content: '\e806'; } /* '' */
+.meteocons-compass:before { content: '\e807'; } /* '' */
+.meteocons-na:before { content: '\e808'; } /* '' */
+.meteocons-celcius:before { content: '\e809'; } /* '' */
+.meteocons-fahrenheit:before { content: '\e80a'; } /* '' */
+.meteocons-clouds-flash-alt:before { content: '\e80b'; } /* '' */
+.meteocons-sun-inv:before { content: '\e80c'; } /* '' */
+.meteocons-moon-inv:before { content: '\e80d'; } /* '' */
+.meteocons-cloud-sun-inv:before { content: '\e80e'; } /* '' */
+.meteocons-cloud-moon-inv:before { content: '\e80f'; } /* '' */
+.meteocons-cloud-inv:before { content: '\e810'; } /* '' */
+.meteocons-cloud-flash-inv:before { content: '\e811'; } /* '' */
+.meteocons-drizzle-inv:before { content: '\e812'; } /* '' */
+.meteocons-rain-inv:before { content: '\e813'; } /* '' */
+.meteocons-windy-inv:before { content: '\e814'; } /* '' */
+.meteocons-sunrise:before { content: '\e815'; } /* '' */
+.meteocons-sun:before { content: '\e816'; } /* '' */
+.meteocons-moon:before { content: '\e817'; } /* '' */
+.meteocons-eclipse:before { content: '\e818'; } /* '' */
+.meteocons-mist:before { content: '\e819'; } /* '' */
+.meteocons-wind:before { content: '\e81a'; } /* '' */
+.meteocons-snowflake:before { content: '\e81b'; } /* '' */
+.meteocons-cloud-sun:before { content: '\e81c'; } /* '' */
+.meteocons-cloud-moon:before { content: '\e81d'; } /* '' */
+.meteocons-fog-sun:before { content: '\e81e'; } /* '' */
+.meteocons-fog-moon:before { content: '\e81f'; } /* '' */
+.meteocons-fog-cloud:before { content: '\e820'; } /* '' */
+.meteocons-fog:before { content: '\e821'; } /* '' */
+.meteocons-cloud:before { content: '\e822'; } /* '' */
+.meteocons-cloud-flash:before { content: '\e823'; } /* '' */
+.meteocons-cloud-flash-alt:before { content: '\e824'; } /* '' */
+.meteocons-drizzle:before { content: '\e825'; } /* '' */
+.meteocons-rain:before { content: '\e826'; } /* '' */
+.meteocons-windy:before { content: '\e827'; } /* '' */
+.meteocons-windy-rain:before { content: '\e828'; } /* '' */
+.meteocons-snow:before { content: '\e829'; } /* '' */
+.meteocons-snow-alt:before { content: '\e82a'; } /* '' */
+.meteocons-snow-heavy:before { content: '\e82b'; } /* '' */
+.meteocons-hail:before { content: '\e82c'; } /* '' */
+.meteocons-clouds:before { content: '\e82d'; } /* '' */
+.meteocons-clouds-flash:before { content: '\e82e'; } /* '' */

BIN
code/sapparent/sapcms/src/main/webapp/public/css/fonts/meteocons/font/meteocons.eot


File diff suppressed because it is too large
+ 58 - 0
code/sapparent/sapcms/src/main/webapp/public/css/fonts/meteocons/font/meteocons.svg


BIN
code/sapparent/sapcms/src/main/webapp/public/css/fonts/meteocons/font/meteocons.ttf


BIN
code/sapparent/sapcms/src/main/webapp/public/css/fonts/meteocons/font/meteocons.woff


File diff suppressed because it is too large
+ 1 - 0
code/sapparent/sapcms/src/main/webapp/public/css/video/video-js-cdn.min.css


File diff suppressed because it is too large
+ 1302 - 0
code/sapparent/sapcms/src/main/webapp/public/css/video/video-js.css


File diff suppressed because it is too large
+ 1 - 0
code/sapparent/sapcms/src/main/webapp/public/css/video/video-js.min.css


File diff suppressed because it is too large
+ 5736 - 0
code/sapparent/sapcms/src/main/webapp/public/css/xenon-components.css


File diff suppressed because it is too large
+ 6835 - 0
code/sapparent/sapcms/src/main/webapp/public/css/xenon-core.css


File diff suppressed because it is too large
+ 2568 - 0
code/sapparent/sapcms/src/main/webapp/public/css/xenon-forms.css


File diff suppressed because it is too large
+ 6952 - 0
code/sapparent/sapcms/src/main/webapp/public/css/xenon-skins.css


File diff suppressed because it is too large
+ 22561 - 0
code/sapparent/sapcms/src/main/webapp/public/css/xenon.css


BIN
code/sapparent/sapcms/src/main/webapp/public/excel/exportOnlineCase.xlsx


BIN
code/sapparent/sapcms/src/main/webapp/public/excel/user.xlsx


BIN
code/sapparent/sapcms/src/main/webapp/public/images/.DS_Store


BIN
code/sapparent/sapcms/src/main/webapp/public/images/album-image-full.jpg


BIN
code/sapparent/sapcms/src/main/webapp/public/images/album-img-1.png


BIN
code/sapparent/sapcms/src/main/webapp/public/images/album-img-2.png


BIN
code/sapparent/sapcms/src/main/webapp/public/images/album-img-3.png


BIN
code/sapparent/sapcms/src/main/webapp/public/images/album-img-4.png


BIN
code/sapparent/sapcms/src/main/webapp/public/images/album-img-5.png


+ 0 - 0
code/sapparent/sapcms/src/main/webapp/public/images/album-img-6.png


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