diff --git a/mall-master/.gitattributes b/mall-master/.gitattributes new file mode 100644 index 0000000..2ea54b5 --- /dev/null +++ b/mall-master/.gitattributes @@ -0,0 +1,3 @@ +*.js linguist-language=java +*.css linguist-language=java +*.html linguist-language=java \ No newline at end of file diff --git a/mall-master/.gitignore b/mall-master/.gitignore new file mode 100644 index 0000000..25a18ce --- /dev/null +++ b/mall-master/.gitignore @@ -0,0 +1,25 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +nbproject/private/ +build/ +nbbuild/ +dist/ +nbdist/ +.nb-gradle/ +/log/ diff --git a/mall-master/LICENSE b/mall-master/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/mall-master/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/mall-master/boot.sh b/mall-master/boot.sh new file mode 100644 index 0000000..c2dcbfd --- /dev/null +++ b/mall-master/boot.sh @@ -0,0 +1,90 @@ +#!/bin/sh +# description: Auto-starts boot +# $API_HOME/bin/boot.sh +#启动命令: boot.sh start +#重启命令: boot.sh restart +#关闭命令: boot.sh stop +#是否运行: boot.sh status + +CURRENT_DIR=`dirname $0` +API_HOME=`cd "$CURRENT_DIR/.." >/dev/null; pwd` +# 应用名 +Tag="mall" +cd $API_HOME +# 要执行的jar包 +Jar="$API_HOME/mall.jar" +RETVAL="0" + +# See how we were called. +start() +{ + echo $$ > $API_HOME/api.pid + nohup java \ + -XX:-UseGCOverheadLimit \ + -verbose:gc -Xloggc:jvm-gc.log \ + -Dappliction=$Tag \ + -jar $Jar --spring.config.location=$API_HOME/config > $API_HOME/log/api_stdout.log 2>&1 & + echo "$Tag started!" + # 这句是启动后查看控制台输出 + tail -f -n 0 $API_HOME/log/api_stdout.log +} + + +stop() +{ + pid=$(ps -ef | grep -v 'grep' | egrep "$Jar"| awk '{printf $2 " "}') + if [ "$pid" != "" ]; then + echo -n "$Tag ( pid: $pid) is running" + echo + echo -n "Shutting down $Tag..." + echo + kill -9 "$pid" > /dev/null 2>&1 + fi + status + +} + +status() +{ + pid=$(ps -ef | grep -v 'grep' | egrep "$Jar"| awk '{printf $2 " "}') + #echo "$pid" + if [ "$pid" != "" ]; then + echo "$Tag is running,pid is $pid" + else + echo "$Tag is stopped" + fi +} + + + +usage() +{ + echo "Usage: $0 {start|stop|restart|status}" + RETVAL="2" +} + +# See how we were called. +RETVAL="0" +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart) + stop + start + ;; + reload) + RETVAL="3" + ;; + status) + status + ;; + *) + usage + ;; +esac + +exit $RETVAL diff --git a/mall-master/file/0A87623C23D2F793377C4990065097.png b/mall-master/file/0A87623C23D2F793377C4990065097.png new file mode 100644 index 0000000..616de85 Binary files /dev/null and b/mall-master/file/0A87623C23D2F793377C4990065097.png differ diff --git a/mall-master/file/651367F7472AB9190F1A7F2100CFF2.png b/mall-master/file/651367F7472AB9190F1A7F2100CFF2.png new file mode 100644 index 0000000..c6caccf Binary files /dev/null and b/mall-master/file/651367F7472AB9190F1A7F2100CFF2.png differ diff --git a/mall-master/file/687AD6318224129284243D7D9ED004.png b/mall-master/file/687AD6318224129284243D7D9ED004.png new file mode 100644 index 0000000..09ff58b Binary files /dev/null and b/mall-master/file/687AD6318224129284243D7D9ED004.png differ diff --git a/mall-master/file/6F5C2DA314E0F800A43CD36B786009.png b/mall-master/file/6F5C2DA314E0F800A43CD36B786009.png new file mode 100644 index 0000000..f9b01a6 Binary files /dev/null and b/mall-master/file/6F5C2DA314E0F800A43CD36B786009.png differ diff --git a/mall-master/file/B72802C4E95F6347B2B5F56568F076.png b/mall-master/file/B72802C4E95F6347B2B5F56568F076.png new file mode 100644 index 0000000..2ed7db1 Binary files /dev/null and b/mall-master/file/B72802C4E95F6347B2B5F56568F076.png differ diff --git a/mall-master/file/FF878D94CEE595945E6EFC96626051.png b/mall-master/file/FF878D94CEE595945E6EFC96626051.png new file mode 100644 index 0000000..0d9c34c Binary files /dev/null and b/mall-master/file/FF878D94CEE595945E6EFC96626051.png differ diff --git a/mall-master/mall.sql b/mall-master/mall.sql new file mode 100644 index 0000000..97bbc77 --- /dev/null +++ b/mall-master/mall.sql @@ -0,0 +1,155 @@ +/* +Navicat MySQL Data Transfer + +Source Server : jesse_root +Source Server Version : 50713 +Source Host : localhost:3306 +Source Database : mall + +Target Server Type : MYSQL +Target Server Version : 50713 +File Encoding : 65001 + +Date: 2017-11-26 16:23:18 +*/ + +SET FOREIGN_KEY_CHECKS=0; + +-- ---------------------------- +-- Table structure for admin_user +-- ---------------------------- +DROP TABLE IF EXISTS `admin_user`; +CREATE TABLE `admin_user` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `password` varchar(255) DEFAULT NULL, + `username` varchar(255) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Records of admin_user +-- ---------------------------- +INSERT INTO `admin_user` VALUES ('1', 'admin', 'admin'); + + +-- ---------------------------- +-- Table structure for classification +-- ---------------------------- +DROP TABLE IF EXISTS `classification`; +CREATE TABLE `classification` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `cname` varchar(255) DEFAULT NULL, + `parent_id` int(11) DEFAULT NULL, + `type` int(11) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Records of classification +-- ---------------------------- +INSERT INTO `classification` VALUES ('1', '服装', '0', '1'); +INSERT INTO `classification` VALUES ('2', '电脑', null, '1'); +INSERT INTO `classification` VALUES ('3', '手机', null, '1'); +INSERT INTO `classification` VALUES ('4', '食品', null, '1'); +INSERT INTO `classification` VALUES ('5', '笔记本', '2', '2'); +INSERT INTO `classification` VALUES ('6', '平板', '2', '2'); +INSERT INTO `classification` VALUES ('7', '台式机', '2', '2'); +INSERT INTO `classification` VALUES ('9', '家居', '0', '1'); +INSERT INTO `classification` VALUES ('10', '饮料', '4', '2'); +INSERT INTO `classification` VALUES ('11', '智能手机', '3', '2'); + +-- ---------------------------- +-- Table structure for order +-- ---------------------------- +DROP TABLE IF EXISTS `order`; +CREATE TABLE `order` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `addr` varchar(255) DEFAULT NULL, + `name` varchar(255) DEFAULT NULL, + `order_time` datetime DEFAULT NULL, + `phone` varchar(255) DEFAULT NULL, + `state` int(11) DEFAULT NULL, + `total` double DEFAULT NULL, + `user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Records of order +-- ---------------------------- +INSERT INTO `order` VALUES ('1', 'fjsdakl', '小明', '2017-11-25 19:23:48', '12345654', '4', '8888', '1'); +INSERT INTO `order` VALUES ('2', 'kdls;ajfklafkasld', 'tom', '2017-11-25 22:10:39', '123456894', '2', '17998', '1'); +INSERT INTO `order` VALUES ('3', 'ffggghhhhfdfhjhff', 'Catalina', '2017-11-25 22:52:44', '1234322313', '2', '6077', '1'); +INSERT INTO `order` VALUES ('4', 'fdsakldfjasl;', 'tomcat', '2017-11-25 23:35:01', '1234567878', '4', '8999', '1'); +INSERT INTO `order` VALUES ('5', 'Gggggggg', 'Hfb', '2017-11-26 02:53:14', '18679658549', '1', '5999', '1'); + +-- ---------------------------- +-- Table structure for order_item +-- ---------------------------- +DROP TABLE IF EXISTS `order_item`; +CREATE TABLE `order_item` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `count` int(11) DEFAULT NULL, + `order_id` int(11) DEFAULT NULL, + `product_id` int(11) DEFAULT NULL, + `sub_total` double DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Records of order_item +-- ---------------------------- +INSERT INTO `order_item` VALUES ('1', '1', '1', '10', '8888'); +INSERT INTO `order_item` VALUES ('2', '2', '2', '9', '17998'); +INSERT INTO `order_item` VALUES ('3', '2', '3', '11', '78'); +INSERT INTO `order_item` VALUES ('4', '1', '3', '13', '5999'); +INSERT INTO `order_item` VALUES ('5', '1', '4', '9', '8999'); +INSERT INTO `order_item` VALUES ('6', '1', '5', '13', '5999'); + +-- ---------------------------- +-- Table structure for product +-- ---------------------------- +DROP TABLE IF EXISTS `product`; +CREATE TABLE `product` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `csid` int(11) DEFAULT NULL, + `desc` varchar(1000) DEFAULT NULL, + `image` varchar(255) DEFAULT NULL, + `is_hot` int(11) DEFAULT NULL, + `market_price` double DEFAULT NULL, + `pdate` datetime DEFAULT NULL, + `shop_price` bigint(20) DEFAULT NULL, + `title` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Records of product +-- ---------------------------- +INSERT INTO `product` VALUES ('9', '5', '新一代 Surface Pro 比以往更出色,它不仅仅是一台笔记本,还能在工作室模式和平板间灵活切换.\r\n\r\n随心所欲,百变菁英 震撼的 PixelSense™ 显示屏支持触控笔* 和触摸操作,设计方面也有所改进,与 Surface Pro 4 相比,速度和性能都得到了进一步提升,电池续航能力有较大提高。\r\n\r\n无风扇,更安静 灵感随意 随手拈来 \r\n\r\n快捷刷脸登陆 保护隐私 轻松唤醒刷脸登陆 充分保护您的私人数据**** 无论您喜欢摄影、绘画、音乐或创作\r\n\r\n精彩视频\r\nSurface Pro总能满足您诸多创作需求 Surface Pro 酷睿 m3 和 i5 型号配备全新无风扇冷却系统***,\r\ni7 型号改进了混合冷却系统,您可以更安静地工作或播放喜欢的节目。', '/mall/admin/product/img/0B1CDC0C82A79A25A4BA159D88D8AC.jpg', '1', '9999', '2017-11-25 00:37:57', '8999', '微软(Microsoft)新Surface Pro 二合一平板电脑 12.3英寸(Intel Core i5 8G内存 256G存储 )'); +INSERT INTO `product` VALUES ('10', '11', '一直以来,我们都心存一个设想,期待着能够打造出这样一部 iPhone:它有整面的屏幕,能让你在使用时完全沉浸其中,仿佛忘记了它的存在。它是如此智能,你的一触、一碰、一言、一语,哪怕是轻轻一瞥,都会得到它心有灵犀的回应。而这个设想,终于随着 iPhone X 的到来成为了现实。现在,就跟未来见个面吧。', '/mall/admin/product/img/E98ECEAC9E68BE31BB623419FD0C9E.png', '1', '9999', '2017-11-24 22:17:54', '8888', 'Apple iPhone X (A1865) 64GB 银色 移动联通电信4G手机'); +INSERT INTO `product` VALUES ('11', '10', '京东价:京东价为商品的销售价,是您最终决定是否购买商品的依据。\r\n划线价:商品展示的划横线价格为参考价,该价格可能是品牌专柜标价、商品吊牌价或由品牌供应商提供的正品零售价(如厂商指导价、建议零售价等)或该商品在京东平台上曾经展示过的销售价;由于地区、时间的差异性和市场行情波动,品牌专柜标价、商品吊牌价等可能会与您购物时展示的不一致,该价格仅供您参考。\r\n折扣:如无特殊说明,折扣指销售商在原价、或划线价(如品牌专柜标价、商品吊牌价、厂商指导价、厂商建议零售价)等某一价格基础上计算出的优惠比例或优惠金额;如有疑问,您可在购买前联系销售商进行咨询。\r\n异常问题:商品促销信息以商品详情页“促销”栏中的信息为准;商品的具体售价以订单结算页价格为准;如您发现活动商品售价或促销信息有异常,建议购买前先联系销售商咨询。', '/mall/admin/product/img/EA03D40CEC55463A958B3629511493.jpg', '0', '40.9', '2017-11-25 22:37:23', '39', '可口可乐330ml*24听整箱装'); +INSERT INTO `product` VALUES ('12', '7', '搭载NVIDIA GeForce GTX1060 3G独立显卡,强大的图像显示和处理功能,\r\n既可以高画质下流畅运行工作软件,也支持主流大型游戏,工作游戏,左右兼顾。\r\n并支持兼容主流VR眼镜设备,为你带来身临其境的沉浸体验。', '/mall/admin/product/img/3E1E590D6BD2ED1CF047045C83B313.jpg', '1', '4999', '2017-11-25 22:39:01', '3999', '惠普(HP)光影精灵580 吃鸡游戏主机(i5-7400 8G 128GSSD+1T GTX1060)'); +INSERT INTO `product` VALUES ('13', '7', '原本就拥有强劲的基础性能,能够轻松通吃时下的主流电竞游戏;外观方面整机采用多面切割搭配碳纤铠甲风格,搭配“胜利之眼”游戏氛围灯,凸显电竞元素;最主要的是这是一款UIY电竞主机,机箱内部已经给升级留足了接口和空间,在官方配置的基础上我们还可以进行性能和外观方面的额升级,而且官方配件仍然能在保修范围内。品牌PC厂商参与到PC个性化定制和部件升级服务中来,同时提供品牌厂商一贯的服务优势,完全解决了DIY模式下遇到的种种痛点。不得不说联想拯救者刃 7000的出现,开启了PC UIY时代。', '/mall/admin/product/img/9F6B955F4C732FF96793FC8BB2F244.jpg', '1', '6499', '2017-11-25 22:41:06', '5999', '联想(Lenovo)拯救者刃7000 UIY主机( i7-7700 8G 128G SSD 1T硬盘 GTX1060 Win10)'); + +-- ---------------------------- +-- Table structure for user +-- ---------------------------- +DROP TABLE IF EXISTS `user`; +CREATE TABLE `user` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `addr` varchar(255) DEFAULT NULL, + `email` varchar(255) DEFAULT NULL, + `name` varchar(255) DEFAULT NULL, + `password` varchar(255) DEFAULT NULL, + `phone` varchar(255) DEFAULT NULL, + `username` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Records of user +-- ---------------------------- +INSERT INTO `user` VALUES ('1', 'wew6698888', '89****96@qq.com', 'skywalker', '123456', '17688970006', 'hfb'); +INSERT INTO `user` VALUES ('2', '1235645645646', '89***96@qq.com', 'hfb', '123456', '18645954845', 'jesse'); +INSERT INTO `user` VALUES ('3', '江西省 吉安市 泰和县', '8976677657@qq.com', '曾涛涛', '123456', '12345678941', 'ztt'); diff --git a/mall-master/pom.xml b/mall-master/pom.xml new file mode 100644 index 0000000..a6461a5 --- /dev/null +++ b/mall-master/pom.xml @@ -0,0 +1,100 @@ + + + 4.0.0 + + priv.jesse + mall + 1.0 + jar + + mall + shopping mall project + + + org.springframework.boot + spring-boot-starter-parent + 1.5.8.RELEASE + + + + + UTF-8 + UTF-8 + 1.8 + + + + + + mysql + mysql-connector-java + 8.0.29 + + + + + com.h2database + h2 + runtime + + + + + org.springframework.boot + spring-boot-starter-data-jpa + + + + com.alibaba + druid-spring-boot-starter + 1.1.3 + + + + org.springframework.boot + spring-boot-starter-aop + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-thymeleaf + + + commons-lang + commons-lang + 2.6 + + + + org.springframework.boot + spring-boot-devtools + runtime + true + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + ${project.artifactId} + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + + diff --git a/mall-master/src/main/java/priv/jesse/mall/MallApplication.java b/mall-master/src/main/java/priv/jesse/mall/MallApplication.java new file mode 100644 index 0000000..0ef651f --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/MallApplication.java @@ -0,0 +1,29 @@ +package priv.jesse.mall; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.boot.web.servlet.ServletComponentScan; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * 程序启动入口 + * + * @ServletComponentScan 设置启动时spring能够扫描到我们自己编写的servlet和filter, 用于Druid监控 + * @MapperScan("com.imlaidian.springbootdemo.dao") 扫描mybatis Mapper接口 + * @EnableScheduling 启用定时任务 + * @EnableTransactionManagement 开启事务 + * + * @author hfb + * @date 2017/9/18 11:13 + */ +@ServletComponentScan +@EnableConfigurationProperties +@EnableTransactionManagement +@SpringBootApplication +public class MallApplication { + + public static void main(String[] args) { + SpringApplication.run(MallApplication.class, args); + } +} diff --git a/mall-master/src/main/java/priv/jesse/mall/aspect/GlobalExceptionHandler.java b/mall-master/src/main/java/priv/jesse/mall/aspect/GlobalExceptionHandler.java new file mode 100644 index 0000000..aa9656e --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/aspect/GlobalExceptionHandler.java @@ -0,0 +1,82 @@ +package priv.jesse.mall.aspect; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartException; +import priv.jesse.mall.entity.pojo.ResultBean; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.validation.ConstraintViolation; +import javax.validation.ConstraintViolationException; +import java.io.Serializable; +import java.util.Set; + +/** + * 统一异常处理 + * 在Controller中抛出的异常,GlobalExceptionHandler中定义的处理方法可以起作用 + * 其他的业务层异常也可以单独处理 + * + * @author hfb + * @date 2017/9/18 + */ +@ControllerAdvice +public class GlobalExceptionHandler implements Serializable{ + private static final long serialVersionUID = 1L; + private static final Logger LOGGER = LoggerFactory.getLogger(GlobalExceptionHandler.class); + + /** + * 默认的异常处理 + * + * @param req + * @param e + * @return + * @throws Exception + */ + @ExceptionHandler(value = Exception.class) + @ResponseBody + public ResultBean defaultErrorHandler(HttpServletRequest req, Exception e) throws Exception { + //记录日志 + LOGGER.error(e.getMessage(), e); + e.printStackTrace(); + ResultBean r = new ResultBean<>(e); + r.setData(req.getRequestURI()); + return r; + } + + @ExceptionHandler(value = RuntimeException.class) + public void runtimeExceptionHandler(HttpServletRequest req, HttpServletResponse res, Exception e) throws Exception { + //记录日志 + LOGGER.error(e.getMessage(), e); + req.setAttribute("msg", e.getMessage()); + //转发到error页面 + req.getRequestDispatcher("/mall/user/error.html").forward(req, res); + } + + /** + * 处理validation异常 + * + * @param req + * @param e + * @return + * @throws Exception + */ + @ExceptionHandler(value = ConstraintViolationException.class) + @ResponseBody + public ResultBean validationExceptionHandler(HttpServletRequest req, ConstraintViolationException e) throws Exception { + Set> violations = e.getConstraintViolations(); + StringBuilder strBuilder = new StringBuilder(); + for (ConstraintViolation violation : violations) { + strBuilder.append(violation.getMessage() + ","); + } + LOGGER.error(strBuilder.toString(), e); + ResultBean r = new ResultBean(strBuilder.toString()); + r.setData(req.getRequestURI()); + return r; + } + + +} diff --git a/mall-master/src/main/java/priv/jesse/mall/aspect/WebLogAspect.java b/mall-master/src/main/java/priv/jesse/mall/aspect/WebLogAspect.java new file mode 100644 index 0000000..9839ac5 --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/aspect/WebLogAspect.java @@ -0,0 +1,61 @@ +package priv.jesse.mall.aspect; + +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.annotation.AfterReturning; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.aspectj.lang.annotation.Pointcut; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.core.annotation.Order; +import org.springframework.stereotype.Component; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; +import java.util.Arrays; + +/** + * WEB层日志切面,用来记录请求信息 + */ +@Aspect +@Order(5) +@Component +public class WebLogAspect { + + private static final Logger LOGGER = LoggerFactory.getLogger(WebLogAspect.class); + + ThreadLocal startTime = new ThreadLocal<>(); + + @Pointcut("execution(public * priv.jesse.mall.controller.*.*(..))")//切入点 + public void webLog() { + } + + @Before("webLog()") + public void doBefore(JoinPoint joinPoint) throws Throwable { + startTime.set(System.currentTimeMillis()); + + // 接收到请求,记录请求内容 + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + HttpServletRequest request = attributes.getRequest(); + + // 记录下请求内容 + LOGGER.info("**************Start API Request**************"); + LOGGER.info("URL : " + request.getRequestURI().toString()); + LOGGER.info("HTTP_METHOD : " + request.getMethod()); + LOGGER.info("IP : " + request.getRemoteAddr()); + LOGGER.info("CLASS_METHOD : " + joinPoint.getSignature().getDeclaringTypeName() + "." + joinPoint.getSignature().getName()); + LOGGER.info("ARGS : " + Arrays.toString(joinPoint.getArgs())); + } + + @AfterReturning(returning = "ret", pointcut = "webLog()") + public void doAfterReturning(Object ret) throws Throwable { + // 处理完请求,返回内容 + LOGGER.info("RESPONSE : " + ret); + LOGGER.info("SPEND TIME : " + (System.currentTimeMillis() - startTime.get())); + LOGGER.info("***************End API Request***************"); + } + + +} + diff --git a/mall-master/src/main/java/priv/jesse/mall/dao/AdminUserDao.java b/mall-master/src/main/java/priv/jesse/mall/dao/AdminUserDao.java new file mode 100644 index 0000000..2f3874e --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/dao/AdminUserDao.java @@ -0,0 +1,8 @@ +package priv.jesse.mall.dao; + +import org.springframework.data.jpa.repository.JpaRepository; +import priv.jesse.mall.entity.AdminUser; + +public interface AdminUserDao extends JpaRepository { + AdminUser findByUsernameAndPassword(String username, String pwd); +} diff --git a/mall-master/src/main/java/priv/jesse/mall/dao/ClassificationDao.java b/mall-master/src/main/java/priv/jesse/mall/dao/ClassificationDao.java new file mode 100644 index 0000000..f0d0258 --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/dao/ClassificationDao.java @@ -0,0 +1,16 @@ +package priv.jesse.mall.dao; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import priv.jesse.mall.entity.Classification; + +import java.util.List; + +public interface ClassificationDao extends JpaRepository { + List findByType(int type); + + Page findByType(int type, Pageable pageable); + + List findByParentId(int cid); +} diff --git a/mall-master/src/main/java/priv/jesse/mall/dao/OrderDao.java b/mall-master/src/main/java/priv/jesse/mall/dao/OrderDao.java new file mode 100644 index 0000000..ab72417 --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/dao/OrderDao.java @@ -0,0 +1,29 @@ +package priv.jesse.mall.dao; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; +import priv.jesse.mall.entity.Order; + +import javax.transaction.Transactional; +import java.util.List; + +public interface OrderDao extends JpaRepository { + + /** + * 更改订单状态 + * @param state + * @param id + */ + @Modifying + @Transactional + @Query(value = "update `order` o set o.state=?1 where o.id=?2",nativeQuery = true) + void updateState(int state,int id); + + /** + * 查找用户的订单 + * @param userId + * @return + */ + List findByUserId(int userId); +} diff --git a/mall-master/src/main/java/priv/jesse/mall/dao/OrderItemDao.java b/mall-master/src/main/java/priv/jesse/mall/dao/OrderItemDao.java new file mode 100644 index 0000000..0483f3b --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/dao/OrderItemDao.java @@ -0,0 +1,15 @@ +package priv.jesse.mall.dao; + +import org.springframework.data.jpa.repository.JpaRepository; +import priv.jesse.mall.entity.OrderItem; + +import java.util.List; + +public interface OrderItemDao extends JpaRepository { + /** + * 根据订单Id查询 + * @param orderId + * @return + */ + List findByOrderId(int orderId); +} diff --git a/mall-master/src/main/java/priv/jesse/mall/dao/ProductDao.java b/mall-master/src/main/java/priv/jesse/mall/dao/ProductDao.java new file mode 100644 index 0000000..ede7da4 --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/dao/ProductDao.java @@ -0,0 +1,56 @@ +package priv.jesse.mall.dao; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import priv.jesse.mall.entity.Product; + +import java.util.Date; +import java.util.List; + +public interface ProductDao extends JpaRepository { + /** + * 通过二级分类查找商品列表 + * + * @param csid + * @param pageable + * @return + */ + List findByCsid(int csid, Pageable pageable); + + List findByCsidIn(List csids,Pageable pageable); + + /** + * 通过标题搜索商品 + * + * @param keyword + * @param pageable + * @return + */ + List findByTitleIsLike(String keyword, Pageable pageable); + + /** + * 查找某个日期之后上架的商品 + * @param date + * @param pageable + * @return + */ + List findByPdateAfter(Date date, Pageable pageable); + + /** + * 查找热门商品 + * @param isHot + * @param pageable + * @return + */ + List findByIsHot(int isHot,Pageable pageable); + + /** + * 查询最新商品,最近上新的24个商品 + * @param pageable + * @return + */ + @Query(value = "SELECT * FROM (SELECT * FROM product ORDER BY pdate DESC limit 0,24) a /*#pageable*/",nativeQuery = true) + List findNew(Pageable pageable); +} diff --git a/mall-master/src/main/java/priv/jesse/mall/dao/UserDao.java b/mall-master/src/main/java/priv/jesse/mall/dao/UserDao.java new file mode 100644 index 0000000..aa9a0a4 --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/dao/UserDao.java @@ -0,0 +1,23 @@ +package priv.jesse.mall.dao; + +import org.springframework.data.jpa.repository.JpaRepository; +import priv.jesse.mall.entity.User; + +import java.util.List; + +public interface UserDao extends JpaRepository { + /** + * 根据用户名,密码查询用户 + * @param username + * @param password + * @return + */ + User findByUsernameAndPassword(String username, String password); + + /** + * 根据用户名查询用户 + * @param username + * @return + */ + List findByUsername(String username); +} diff --git a/mall-master/src/main/java/priv/jesse/mall/entity/AdminUser.java b/mall-master/src/main/java/priv/jesse/mall/entity/AdminUser.java new file mode 100644 index 0000000..fbf7c0b --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/entity/AdminUser.java @@ -0,0 +1,96 @@ +package priv.jesse.mall.entity; + + +import javax.persistence.*; +import java.io.Serializable; + +/** + * 管理员用户 + */ +@Entity +public class AdminUser implements Serializable { + private static final long serialVersionUID = 1L; + @Id + @GeneratedValue + @Column + private Integer id; + @Column(nullable = false) + private String username; + @Column + private String password; + + public AdminUser(Integer id, String username, String password) { + this.id = id; + this.username = username; + this.password = password; + } + + public AdminUser() { + super(); + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username == null ? null : username.trim(); + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password == null ? null : password.trim(); + } + + @Override + public boolean equals(Object that) { + if (this == that) { + return true; + } + if (that == null) { + return false; + } + if (getClass() != that.getClass()) { + return false; + } + AdminUser other = (AdminUser) that; + return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId())) + && (this.getUsername() == null ? other.getUsername() == null : this.getUsername().equals(other.getUsername())) + && (this.getPassword() == null ? other.getPassword() == null : this.getPassword().equals(other.getPassword())); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((getId() == null) ? 0 : getId().hashCode()); + result = prime * result + ((getUsername() == null) ? 0 : getUsername().hashCode()); + result = prime * result + ((getPassword() == null) ? 0 : getPassword().hashCode()); + return result; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", username=").append(username); + sb.append(", password=").append(password); + sb.append(", serialVersionUID=").append(serialVersionUID); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git a/mall-master/src/main/java/priv/jesse/mall/entity/Classification.java b/mall-master/src/main/java/priv/jesse/mall/entity/Classification.java new file mode 100644 index 0000000..b665c54 --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/entity/Classification.java @@ -0,0 +1,122 @@ +package priv.jesse.mall.entity; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import java.io.Serializable; + +/** + * 分类 + */ +@Entity +public class Classification implements Serializable { + @Id + @GeneratedValue + @Column + private Integer id; + /** + * 上级分类Id + */ + @Column + private Integer parentId; + /** + * 分类名称 + */ + @Column + private String cname; + /** + * 类型 1一级分类 2二级分类 + */ + @Column + private Integer type; + + private static final long serialVersionUID = 1L; + + public Classification(Integer id, Integer parentId, String cname, Integer type) { + this.id = id; + this.parentId = parentId; + this.cname = cname; + this.type = type; + } + + public Classification() { + super(); + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getParentId() { + return parentId; + } + + public void setParentId(Integer parentId) { + this.parentId = parentId; + } + + public String getCname() { + return cname; + } + + public void setCname(String cname) { + this.cname = cname == null ? null : cname.trim(); + } + + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } + + @Override + public boolean equals(Object that) { + if (this == that) { + return true; + } + if (that == null) { + return false; + } + if (getClass() != that.getClass()) { + return false; + } + Classification other = (Classification) that; + return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId())) + && (this.getParentId() == null ? other.getParentId() == null : this.getParentId().equals(other.getParentId())) + && (this.getCname() == null ? other.getCname() == null : this.getCname().equals(other.getCname())) + && (this.getType() == null ? other.getType() == null : this.getType().equals(other.getType())); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((getId() == null) ? 0 : getId().hashCode()); + result = prime * result + ((getParentId() == null) ? 0 : getParentId().hashCode()); + result = prime * result + ((getCname() == null) ? 0 : getCname().hashCode()); + result = prime * result + ((getType() == null) ? 0 : getType().hashCode()); + return result; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", parentId=").append(parentId); + sb.append(", cname=").append(cname); + sb.append(", type=").append(type); + sb.append(", serialVersionUID=").append(serialVersionUID); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git a/mall-master/src/main/java/priv/jesse/mall/entity/Order.java b/mall-master/src/main/java/priv/jesse/mall/entity/Order.java new file mode 100644 index 0000000..0169a78 --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/entity/Order.java @@ -0,0 +1,189 @@ +package priv.jesse.mall.entity; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +/** + * 订单 + */ +@Entity +@Table(name = "`order`") +public class Order implements Serializable { + @Id + @GeneratedValue + @Column + private Integer id; + /** + * 订单总价 + */ + @Column + private Double total; + /** + * 订单状态 1:未付款 2:等待发货 3:等待收货 4:订单完成 + */ + @Column + private Integer state; + /** + * 订单时间 + */ + @Column + private Date orderTime; + /** + * 收货人姓名 + */ + @Column(name = "`name`") + private String name; + /** + * 收货人联系电话 + */ + @Column + private String phone; + /** + * 收货地址 + */ + @Column + private String addr; + /** + * 用户Id + */ + @Column + private Integer userId; + + private static final long serialVersionUID = 1L; + + public Order(Integer id, Double total, Integer state, Date orderTime, String name, String phone, String addr, Integer userId) { + this.id = id; + this.total = total; + this.state = state; + this.orderTime = orderTime; + this.name = name; + this.phone = phone; + this.addr = addr; + this.userId = userId; + } + + public Order() { + super(); + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Double getTotal() { + return total; + } + + public void setTotal(Double total) { + this.total = total; + } + + public Integer getState() { + return state; + } + + public void setState(Integer state) { + this.state = state; + } + + public Date getOrderTime() { + return orderTime; + } + + public void setOrderTime(Date orderTime) { + this.orderTime = orderTime; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name == null ? null : name.trim(); + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone == null ? null : phone.trim(); + } + + public String getAddr() { + return addr; + } + + public void setAddr(String addr) { + this.addr = addr == null ? null : addr.trim(); + } + + public Integer getUserId() { + return userId; + } + + public void setUserId(Integer userId) { + this.userId = userId; + } + + @Override + public boolean equals(Object that) { + if (this == that) { + return true; + } + if (that == null) { + return false; + } + if (getClass() != that.getClass()) { + return false; + } + Order other = (Order) that; + return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId())) + && (this.getTotal() == null ? other.getTotal() == null : this.getTotal().equals(other.getTotal())) + && (this.getState() == null ? other.getState() == null : this.getState().equals(other.getState())) + && (this.getOrderTime() == null ? other.getOrderTime() == null : this.getOrderTime().equals(other.getOrderTime())) + && (this.getName() == null ? other.getName() == null : this.getName().equals(other.getName())) + && (this.getPhone() == null ? other.getPhone() == null : this.getPhone().equals(other.getPhone())) + && (this.getAddr() == null ? other.getAddr() == null : this.getAddr().equals(other.getAddr())) + && (this.getUserId() == null ? other.getUserId() == null : this.getUserId().equals(other.getUserId())); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((getId() == null) ? 0 : getId().hashCode()); + result = prime * result + ((getTotal() == null) ? 0 : getTotal().hashCode()); + result = prime * result + ((getState() == null) ? 0 : getState().hashCode()); + result = prime * result + ((getOrderTime() == null) ? 0 : getOrderTime().hashCode()); + result = prime * result + ((getName() == null) ? 0 : getName().hashCode()); + result = prime * result + ((getPhone() == null) ? 0 : getPhone().hashCode()); + result = prime * result + ((getAddr() == null) ? 0 : getAddr().hashCode()); + result = prime * result + ((getUserId() == null) ? 0 : getUserId().hashCode()); + return result; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", total=").append(total); + sb.append(", state=").append(state); + sb.append(", orderTime=").append(orderTime); + sb.append(", name=").append(name); + sb.append(", phone=").append(phone); + sb.append(", addr=").append(addr); + sb.append(", userId=").append(userId); + sb.append(", serialVersionUID=").append(serialVersionUID); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git a/mall-master/src/main/java/priv/jesse/mall/entity/OrderItem.java b/mall-master/src/main/java/priv/jesse/mall/entity/OrderItem.java new file mode 100644 index 0000000..b7c9496 --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/entity/OrderItem.java @@ -0,0 +1,147 @@ +package priv.jesse.mall.entity; + +import javax.persistence.*; +import java.io.Serializable; + +/** + * 订单项 + */ +@Entity +public class OrderItem implements Serializable { + @Id + @GeneratedValue + @Column + private Integer id; + /** + * 订单Id + */ + @Column + private Integer orderId; + /** + * 商品Id + */ + @Column + private Integer productId; + /** + * 数量 + */ + @Column + private Integer count; + /** + * 总价 + */ + @Column + private Double subTotal; + + @Transient + private Product product; + + public Product getProduct() { + return product; + } + + public void setProduct(Product product) { + this.product = product; + } + + private static final long serialVersionUID = 1L; + + public OrderItem(Integer id, Integer orderId, Integer productId, Integer count, Double subTotal) { + this.id = id; + this.orderId = orderId; + this.productId = productId; + this.count = count; + this.subTotal = subTotal; + } + + public OrderItem() { + super(); + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getOrderId() { + return orderId; + } + + public void setOrderId(Integer orderId) { + this.orderId = orderId; + } + + public Integer getProductId() { + return productId; + } + + public void setProductId(Integer productId) { + this.productId = productId; + } + + public Integer getCount() { + return count; + } + + public void setCount(Integer count) { + this.count = count; + } + + public Double getSubTotal() { + return subTotal; + } + + public void setSubTotal(Double subTotal) { + this.subTotal = subTotal; + } + + @Override + public boolean equals(Object that) { + if (this == that) { + return true; + } + if (that == null) { + return false; + } + if (getClass() != that.getClass()) { + return false; + } + OrderItem other = (OrderItem) that; + return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId())) + && (this.getOrderId() == null ? other.getOrderId() == null : this.getOrderId().equals(other.getOrderId())) + && (this.getProductId() == null ? other.getProductId() == null : this.getProductId().equals(other.getProductId())) + && (this.getCount() == null ? other.getCount() == null : this.getCount().equals(other.getCount())) + && (this.getSubTotal() == null ? other.getSubTotal() == null : this.getSubTotal().equals(other.getSubTotal())); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((getId() == null) ? 0 : getId().hashCode()); + result = prime * result + ((getOrderId() == null) ? 0 : getOrderId().hashCode()); + result = prime * result + ((getProductId() == null) ? 0 : getProductId().hashCode()); + result = prime * result + ((getCount() == null) ? 0 : getCount().hashCode()); + result = prime * result + ((getSubTotal() == null) ? 0 : getSubTotal().hashCode()); + return result; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", orderId=").append(orderId); + sb.append(", productId=").append(productId); + sb.append(", count=").append(count); + sb.append(", subTotal=").append(subTotal); + sb.append(", serialVersionUID=").append(serialVersionUID); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git a/mall-master/src/main/java/priv/jesse/mall/entity/Product.java b/mall-master/src/main/java/priv/jesse/mall/entity/Product.java new file mode 100644 index 0000000..3bc7108 --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/entity/Product.java @@ -0,0 +1,215 @@ +package priv.jesse.mall.entity; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; +@Entity +@JsonIgnoreProperties({ "handler","hibernateLazyInitializer" }) +public class Product implements Serializable { + @Id + @GeneratedValue + @Column + private Integer id; + /** + * 商品标题 + */ + @Column + private String title; + /** + * 市场价 + */ + @Column + private Double marketPrice; + /** + * 商城价 + */ + @Column + private Double shopPrice; + /** + * 主图 + */ + @Column + private String image; + /** + * 描述 + */ + @Column(name = "`desc`", columnDefinition = "text") + private String desc; + /** + * 是否热门商品 + */ + @Column + private Integer isHot; + /** + * 二级分类Id + */ + @Column + private Integer csid; + /** + * 商品创建日期 + */ + @Column + private Date pdate; + + @Transient + private Classification categorySec; + + public Classification getCategorySec() { + return categorySec; + } + + public void setCategorySec(Classification categorySec) { + this.categorySec = categorySec; + } + + private static final long serialVersionUID = 1L; + + public Product(Integer id, String title, Double marketPrice, Double shopPrice, String image, String desc, Integer isHot, Integer csid, Date pdate) { + this.id = id; + this.title = title; + this.marketPrice = marketPrice; + this.shopPrice = shopPrice; + this.image = image; + this.desc = desc; + this.isHot = isHot; + this.csid = csid; + this.pdate = pdate; + } + + public Product() { + super(); + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title == null ? null : title.trim(); + } + + public Double getMarketPrice() { + return marketPrice; + } + + public void setMarketPrice(Double marketPrice) { + this.marketPrice = marketPrice; + } + + public Double getShopPrice() { + return shopPrice; + } + + public void setShopPrice(Double shopPrice) { + this.shopPrice = shopPrice; + } + + public String getImage() { + return image; + } + + public void setImage(String image) { + this.image = image == null ? null : image.trim(); + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc == null ? null : desc.trim(); + } + + public Integer getIsHot() { + return isHot; + } + + public void setIsHot(Integer isHot) { + this.isHot = isHot; + } + + public Integer getCsid() { + return csid; + } + + public void setCsid(Integer csid) { + this.csid = csid; + } + + public Date getPdate() { + return pdate; + } + + public void setPdate(Date pdate) { + this.pdate = pdate; + } + + @Override + public boolean equals(Object that) { + if (this == that) { + return true; + } + if (that == null) { + return false; + } + if (getClass() != that.getClass()) { + return false; + } + Product other = (Product) that; + return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId())) + && (this.getTitle() == null ? other.getTitle() == null : this.getTitle().equals(other.getTitle())) + && (this.getMarketPrice() == null ? other.getMarketPrice() == null : this.getMarketPrice().equals(other.getMarketPrice())) + && (this.getShopPrice() == null ? other.getShopPrice() == null : this.getShopPrice().equals(other.getShopPrice())) + && (this.getImage() == null ? other.getImage() == null : this.getImage().equals(other.getImage())) + && (this.getDesc() == null ? other.getDesc() == null : this.getDesc().equals(other.getDesc())) + && (this.getIsHot() == null ? other.getIsHot() == null : this.getIsHot().equals(other.getIsHot())) + && (this.getCsid() == null ? other.getCsid() == null : this.getCsid().equals(other.getCsid())) + && (this.getPdate() == null ? other.getPdate() == null : this.getPdate().equals(other.getPdate())); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((getId() == null) ? 0 : getId().hashCode()); + result = prime * result + ((getTitle() == null) ? 0 : getTitle().hashCode()); + result = prime * result + ((getMarketPrice() == null) ? 0 : getMarketPrice().hashCode()); + result = prime * result + ((getShopPrice() == null) ? 0 : getShopPrice().hashCode()); + result = prime * result + ((getImage() == null) ? 0 : getImage().hashCode()); + result = prime * result + ((getDesc() == null) ? 0 : getDesc().hashCode()); + result = prime * result + ((getIsHot() == null) ? 0 : getIsHot().hashCode()); + result = prime * result + ((getCsid() == null) ? 0 : getCsid().hashCode()); + result = prime * result + ((getPdate() == null) ? 0 : getPdate().hashCode()); + return result; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", title=").append(title); + sb.append(", marketPrice=").append(marketPrice); + sb.append(", shopPrice=").append(shopPrice); + sb.append(", image=").append(image); + sb.append(", desc=").append(desc); + sb.append(", isHot=").append(isHot); + sb.append(", csid=").append(csid); + sb.append(", pdate=").append(pdate); + sb.append(", serialVersionUID=").append(serialVersionUID); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git a/mall-master/src/main/java/priv/jesse/mall/entity/User.java b/mall-master/src/main/java/priv/jesse/mall/entity/User.java new file mode 100644 index 0000000..c1e87bc --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/entity/User.java @@ -0,0 +1,171 @@ +package priv.jesse.mall.entity; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import java.io.Serializable; + +@Entity +public class User implements Serializable { + @Id + @GeneratedValue + @Column + private Integer id; + /** + * 用户名 + */ + @Column + private String username; + /** + * 密码 + */ + @Column + private String password; + /** + * 姓名 + */ + @Column + private String name; + /** + * 邮件 + */ + @Column + private String email; + /** + * 电话 + */ + @Column + private String phone; + /** + * 地址 + */ + @Column + private String addr; + + private static final long serialVersionUID = 1L; + + public User(Integer id, String username, String password, String name, String email, String phone, String addr, String code, Integer state) { + this.id = id; + this.username = username; + this.password = password; + this.name = name; + this.email = email; + this.phone = phone; + this.addr = addr; + } + + public User() { + super(); + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username == null ? null : username.trim(); + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password == null ? null : password.trim(); + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name == null ? null : name.trim(); + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email == null ? null : email.trim(); + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone == null ? null : phone.trim(); + } + + public String getAddr() { + return addr; + } + + public void setAddr(String addr) { + this.addr = addr == null ? null : addr.trim(); + } + + + @Override + public boolean equals(Object that) { + if (this == that) { + return true; + } + if (that == null) { + return false; + } + if (getClass() != that.getClass()) { + return false; + } + User other = (User) that; + return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId())) + && (this.getUsername() == null ? other.getUsername() == null : this.getUsername().equals(other.getUsername())) + && (this.getPassword() == null ? other.getPassword() == null : this.getPassword().equals(other.getPassword())) + && (this.getName() == null ? other.getName() == null : this.getName().equals(other.getName())) + && (this.getEmail() == null ? other.getEmail() == null : this.getEmail().equals(other.getEmail())) + && (this.getPhone() == null ? other.getPhone() == null : this.getPhone().equals(other.getPhone())) + && (this.getAddr() == null ? other.getAddr() == null : this.getAddr().equals(other.getAddr())); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((getId() == null) ? 0 : getId().hashCode()); + result = prime * result + ((getUsername() == null) ? 0 : getUsername().hashCode()); + result = prime * result + ((getPassword() == null) ? 0 : getPassword().hashCode()); + result = prime * result + ((getName() == null) ? 0 : getName().hashCode()); + result = prime * result + ((getEmail() == null) ? 0 : getEmail().hashCode()); + result = prime * result + ((getPhone() == null) ? 0 : getPhone().hashCode()); + result = prime * result + ((getAddr() == null) ? 0 : getAddr().hashCode()); + return result; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", username=").append(username); + sb.append(", password=").append(password); + sb.append(", name=").append(name); + sb.append(", email=").append(email); + sb.append(", phone=").append(phone); + sb.append(", addr=").append(addr); + sb.append(", serialVersionUID=").append(serialVersionUID); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git a/mall-master/src/main/java/priv/jesse/mall/entity/pojo/ResultBean.java b/mall-master/src/main/java/priv/jesse/mall/entity/pojo/ResultBean.java new file mode 100644 index 0000000..8b656e3 --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/entity/pojo/ResultBean.java @@ -0,0 +1,96 @@ +package priv.jesse.mall.entity.pojo; + +import java.io.Serializable; + +/** + * 接口返回数据模型 + * + * @author hfb + * @date 2017/9/18 + */ +public class ResultBean implements Serializable { + private static final long serialVersionUID = -6248298306422072592L; + /** + * 表示接口调用成功 + */ + public static final int SUCCESS = 0; + /** + * 表示接口调用失败 + */ + public static final int FAIL = 1; + /** + * 表示没有权限调用该接口 + */ + public static final int NO_PERMISSION = 2; + + public static final String NO_LOGIN_MSG = "未登录"; + public static final String NO_PERMISSION_MSG = "没有权限"; + public static final String SUCC_MSG = "成功"; + public static final String FAIL_MSG = "失败"; + + private String message = SUCC_MSG; + private int state = SUCCESS; + /** + * 返回的数据 + */ + private T data; + + public ResultBean() { + super(); + } + + public ResultBean(T data) { + super(); + this.data = data; + } + + /** + * 包装异常信息 + * + * @param e + */ + public ResultBean(Throwable e) { + super(); + this.message = e.getMessage(); + this.state = FAIL; + } + + public ResultBean(String message) { + super(); + this.message = message; + this.state = FAIL; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public int getState() { + return state; + } + + public void setState(int state) { + this.state = state; + } + + public T getData() { + return data; + } + + public void setData(T data) { + this.data = data; + } + + @Override + public String toString() { + return "ResultBean{" + + "message='" + message + '\'' + + ", state=" + state + + ", data=" + data + + '}'; + } +} diff --git a/mall-master/src/main/java/priv/jesse/mall/filter/AuthorizationFilter.java b/mall-master/src/main/java/priv/jesse/mall/filter/AuthorizationFilter.java new file mode 100644 index 0000000..3371715 --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/filter/AuthorizationFilter.java @@ -0,0 +1,131 @@ +package priv.jesse.mall.filter; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.annotation.WebFilter; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.OutputStream; +import java.util.HashMap; + +/** + * 权限拦截器 + * + * @author hfb + * @date 2017/9/18 + */ +@WebFilter +public class AuthorizationFilter implements Filter { + + public AuthorizationFilter() { + } + + private static final Logger LOGGER = LoggerFactory.getLogger(AuthorizationFilter.class); + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + } + + @Override + public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { + HttpServletRequest request = (HttpServletRequest) req; + HttpServletResponse response = (HttpServletResponse) res; + // 支持跨域访问 + response.setHeader("Access-Control-Allow-Origin", "*"); + response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); + response.setHeader("Access-Control-Max-Age", "3600"); + response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept,X-Custom-Header"); + response.setHeader("X-Powered-By", "SpringBoot"); + if ("option".equalsIgnoreCase(request.getMethod())) { + responseJSON(response, new HashMap<>()); + return; + } + //除了拦截login.html 其他html都拦截 + StringBuffer url = request.getRequestURL(); + //System.out.println(url); + String path = url.toString(); + // 只拦截这些类型请求 + if (path.endsWith(".do") || path.endsWith(".html")) { + // 登录,图片不拦截 + if (path.endsWith("toLogin.html") + || path.endsWith("toRegister.html") + || path.endsWith("register.do") + || path.endsWith("login.do") + || path.endsWith("logout.do") + || path.endsWith("error.html") + || path.endsWith("checkUsername.do") + || path.contains("/mall/admin/product/img/") + || path.endsWith("index.html") + || path.endsWith("classification/list.do") + || path.contains("product") + || path.contains("/mall/h2-console")) { + chain.doFilter(request, response); + } else { + processAccessControl(request, response, chain); + } + + } else { + //其他静态资源都不拦截 + chain.doFilter(request, response); + } + } + + /** + * @param request + * @param response + * @param chain + * @throws IOException + * @throws ServletException + */ + private void processAccessControl(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException { + Object adminUser = request.getSession().getAttribute("login_user"); + Object user = request.getSession().getAttribute("user"); + String url = request.getRequestURL().toString(); + if (url.indexOf("admin") != -1){ + if (adminUser == null) { + response.sendRedirect("/mall/admin/toLogin.html"); + }else { + chain.doFilter(request, response); + } + }else { + if (user == null) { + response.sendRedirect("/mall/user/toLogin.html"); + }else { + chain.doFilter(request, response); + } + } + } + + @Override + public void destroy() { + + } + + /** + * 返回JOSN数据格式 + * + * @param response + * @param object + * @throws IOException + */ + public static void responseJSON(HttpServletResponse response, Object object) throws IOException { + response.setContentType("application/json;charset=utf-8"); + response.setCharacterEncoding("UTF-8"); + ObjectMapper mapper = new ObjectMapper(); + if (object == null) + return; + String jsonStr = mapper.writeValueAsString(object); + OutputStream out = response.getOutputStream(); + out.write(jsonStr.getBytes("UTF-8")); + out.flush(); + } +} diff --git a/mall-master/src/main/java/priv/jesse/mall/service/AdminUserService.java b/mall-master/src/main/java/priv/jesse/mall/service/AdminUserService.java new file mode 100644 index 0000000..0a8db3f --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/service/AdminUserService.java @@ -0,0 +1,70 @@ +package priv.jesse.mall.service; + +import org.springframework.data.domain.Example; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.http.HttpRequest; +import priv.jesse.mall.entity.AdminUser; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +public interface AdminUserService { + /** + * 根据id查询 + * + * @param id + * @return + */ + AdminUser findById(int id); + + /** + * 分页查询所有 + * + * @param pageable + * @return + */ + Page findAll(Pageable pageable); + + /** + * 按条件查询 + * + * @param example + * @return + */ + List findAllExample(Example example); + + /** + * 更新 + * + * @param adminUser + * @return + */ + void update(AdminUser adminUser); + + /** + * 创建 + * + * @param adminUser + * @return + */ + int create(AdminUser adminUser); + + /** + * 根据Id删除 + * + * @param id + * @return + */ + void delById(int id); + + /** + * 检查登录 + * @param request + * @param username + * @param pwd + * @return + */ + AdminUser checkLogin(HttpServletRequest request,String username, String pwd); + +} diff --git a/mall-master/src/main/java/priv/jesse/mall/service/ClassificationService.java b/mall-master/src/main/java/priv/jesse/mall/service/ClassificationService.java new file mode 100644 index 0000000..09ea921 --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/service/ClassificationService.java @@ -0,0 +1,73 @@ +package priv.jesse.mall.service; + +import org.springframework.data.domain.Example; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import priv.jesse.mall.entity.Classification; + +import java.util.List; + +public interface ClassificationService { + /** + * 根据id查询 + * + * @param id + * @return + */ + Classification findById(int id); + + /** + * 按分类查询所有 + * + * @param type + * @return + */ + List findAll(int type); + + /** + * 按分类查询所有 + * + * @param pageable + * @return + */ + Page findAll(int type,Pageable pageable); + + /** + * 按条件查询 + * + * @param example + * @return + */ + List findAllExample(Example example); + + /** + * 更新 + * + * @param Classification + * @return + */ + void update(Classification Classification); + + /** + * 创建 + * + * @param Classification + * @return + */ + int create(Classification Classification); + + /** + * 根据Id删除 + * + * @param id + * @return + */ + void delById(int id); + + /** + * 通过一级分类id查找它所有的二级分类 + * @param cid + * @return + */ + List findByParentId(int cid); +} diff --git a/mall-master/src/main/java/priv/jesse/mall/service/OrderService.java b/mall-master/src/main/java/priv/jesse/mall/service/OrderService.java new file mode 100644 index 0000000..34bf4f3 --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/service/OrderService.java @@ -0,0 +1,117 @@ +package priv.jesse.mall.service; + +import org.springframework.data.domain.Example; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import priv.jesse.mall.entity.Order; +import priv.jesse.mall.entity.OrderItem; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +public interface OrderService { + + /** + * 订单状态 1:未付款 2:等待发货 3:等待收货 4:订单完成 + */ + int STATE_NO_PAY = 1; + int STATE_WAITE_SEND = 2; + int STATE_WAITE_RECEIVE = 3; + int STATE_COMPLETE = 4; + + + /** + * 根据id查询 + * + * @param id + * @return + */ + Order findById(int id); + + /** + * 分页查询所有 + * + * @param pageable + * @return + */ + Page findAll(Pageable pageable); + + /** + * 按条件查询 + * + * @param example + * @return + */ + List findAllExample(Example example); + + /** + * 更新 + * + * @param order + * @return + */ + void update(Order order); + + /** + * 创建 + * + * @param order + * @return + */ + int create(Order order); + + /** + * 根据Id删除 + * + * @param id + * @return + */ + void delById(int id); + + /** + * 查询订单的订单项 + * + * @param orderId + * @return + */ + List findItems(int orderId); + + /** + * 更改订单状态 + * + * @param id + * @param status + */ + void updateStatus(int id, int status); + + /** + * 查找用户的订单列表 + * + * @param request + * @return + */ + List findUserOrder(HttpServletRequest request); + + /** + * 支付 + * @param orderId + */ + void pay(int orderId); + + /** + * 提交订单 + * @param name + * @param phone + * @param addr + * @param request + * @param response + */ + void submit(String name, String phone, String addr, HttpServletRequest request, HttpServletResponse response) throws Exception; + + /** + * 确认收货 + * @param orderId + */ + void receive(int orderId); +} diff --git a/mall-master/src/main/java/priv/jesse/mall/service/ProductService.java b/mall-master/src/main/java/priv/jesse/mall/service/ProductService.java new file mode 100644 index 0000000..e7b8d3c --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/service/ProductService.java @@ -0,0 +1,78 @@ +package priv.jesse.mall.service; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import priv.jesse.mall.entity.Product; +import java.util.List; + +public interface ProductService { + /** + * 根据id查询 + * + * @param id + * @return + */ + Product findById(int id); + + /** + * 分页查询所有 + * + * @param pageable + * @return + */ + Page findAll(Pageable pageable); + + /** + * 查找热门商品 + * @return + */ + List findHotProduct(); + + /** + * 查找最新商品 + * @param pageable + * @return + */ + List findNewProduct(Pageable pageable); + + /** + * 根据一级分类查找商品 + * @param cid + * @param pageable + * @return + */ + List findByCid(int cid,Pageable pageable); + + /** + * 根据二级分类查找商品 + * @param csid + * @param pageable + * @return + */ + List findByCsid(int csid,Pageable pageable); + + /** + * 更新 + * + * @param product + * @return + */ + void update(Product product); + + /** + * 创建 + * + * @param product + * @return + */ + int create(Product product); + + /** + * 根据Id删除 + * + * @param id + * @return + */ + void delById(int id); + +} diff --git a/mall-master/src/main/java/priv/jesse/mall/service/ShopCartService.java b/mall-master/src/main/java/priv/jesse/mall/service/ShopCartService.java new file mode 100644 index 0000000..1d03b8c --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/service/ShopCartService.java @@ -0,0 +1,34 @@ +package priv.jesse.mall.service; + +import priv.jesse.mall.entity.OrderItem; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +/** + * 购物车 + */ +public interface ShopCartService { + + String NAME_PREFIX = "shop_cart_"; + + /** + * 加购物车 + * @param + */ + void addCart(int productId, HttpServletRequest request) throws Exception; + + /** + * 移除 + * @param productId + * @param request + */ + void remove(int productId, HttpServletRequest request) throws Exception; + + /** + * 查看购物车 + * @param request + * @return + */ + List listCart(HttpServletRequest request) throws Exception; +} diff --git a/mall-master/src/main/java/priv/jesse/mall/service/UserService.java b/mall-master/src/main/java/priv/jesse/mall/service/UserService.java new file mode 100644 index 0000000..2abb443 --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/service/UserService.java @@ -0,0 +1,75 @@ +package priv.jesse.mall.service; + +import org.springframework.data.domain.Example; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import priv.jesse.mall.entity.User; + +import java.util.List; + +public interface UserService { + /** + * 根据id查询 + * + * @param id + * @return + */ + User findById(int id); + + /** + * 分页查询所有 + * + * @param pageable + * @return + */ + Page findAll(Pageable pageable); + + /** + * 按条件查询 + * + * @param example + * @return + */ + List findAllExample(Example example); + + /** + * 更新 + * + * @param user + * @return + */ + void update(User user); + + /** + * 创建 + * + * @param user + * @return + */ + int create(User user); + + /** + * 根据Id删除 + * + * @param id + * @return + */ + void delById(int id); + + /** + * 根据用户名查询 + * @param username + * @return + */ + List findByUsername(String username); + + /** + * 检查登录 + * @param username + * @param password + * @return + */ + User checkLogin(String username,String password); + + +} diff --git a/mall-master/src/main/java/priv/jesse/mall/service/exception/LoginException.java b/mall-master/src/main/java/priv/jesse/mall/service/exception/LoginException.java new file mode 100644 index 0000000..902b1fa --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/service/exception/LoginException.java @@ -0,0 +1,22 @@ +package priv.jesse.mall.service.exception; + +public class LoginException extends RuntimeException { + public LoginException() { + } + + public LoginException(String message) { + super(message); + } + + public LoginException(String message, Throwable cause) { + super(message, cause); + } + + public LoginException(Throwable cause) { + super(cause); + } + + public LoginException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } +} diff --git a/mall-master/src/main/java/priv/jesse/mall/service/impl/AdminUserServiceImpl.java b/mall-master/src/main/java/priv/jesse/mall/service/impl/AdminUserServiceImpl.java new file mode 100644 index 0000000..fc7892d --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/service/impl/AdminUserServiceImpl.java @@ -0,0 +1,62 @@ +package priv.jesse.mall.service.impl; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Example; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; +import priv.jesse.mall.dao.AdminUserDao; +import priv.jesse.mall.entity.AdminUser; +import priv.jesse.mall.service.AdminUserService; +import priv.jesse.mall.service.exception.LoginException; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +@Service +public class AdminUserServiceImpl implements AdminUserService { + @Autowired + private AdminUserDao adminUserDao; + + @Override + public AdminUser findById(int id) { + return adminUserDao.getOne(id); + } + + @Override + public Page findAll(Pageable pageable) { + return adminUserDao.findAll(pageable); + } + + @Override + public List findAllExample(Example example) { + return adminUserDao.findAll(example); + } + + @Override + public void update(AdminUser adminUser) { + adminUserDao.save(adminUser); + } + + @Override + public int create(AdminUser adminUser) { + AdminUser adminUser1 = adminUserDao.save(adminUser); + return adminUser.getId(); + } + + @Override + public void delById(int id) { + adminUserDao.delete(id); + } + + @Override + public AdminUser checkLogin(HttpServletRequest request, String username, String pwd) { + AdminUser adminUser = adminUserDao.findByUsernameAndPassword(username, pwd); + if (adminUser != null) { + request.getSession().setAttribute("login_user", adminUser); + } else { + throw new LoginException("用户名或密码错误"); + } + return adminUser; + } +} diff --git a/mall-master/src/main/java/priv/jesse/mall/service/impl/ClassificationServiceImpl.java b/mall-master/src/main/java/priv/jesse/mall/service/impl/ClassificationServiceImpl.java new file mode 100644 index 0000000..a2abee3 --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/service/impl/ClassificationServiceImpl.java @@ -0,0 +1,71 @@ +package priv.jesse.mall.service.impl; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Example; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; +import priv.jesse.mall.dao.ClassificationDao; +import priv.jesse.mall.entity.Classification; +import priv.jesse.mall.service.ClassificationService; + +import java.util.List; + +@Service +public class ClassificationServiceImpl implements ClassificationService { + @Autowired + private ClassificationDao classificationDao; + + @Override + public Classification findById(int id) { + return classificationDao.getOne(id); + } + + @Override + public List findAll(int type) { + return classificationDao.findByType(type); + } + + /** + * 按分类查询所有 + * + * @param pageable + * @return + */ + @Override + public Page findAll(int type, Pageable pageable) { + return classificationDao.findByType(type, pageable); + } + + @Override + public List findAllExample(Example example) { + return classificationDao.findAll(example); + } + + @Override + public void update(Classification classification) { + classificationDao.save(classification); + } + + @Override + public int create(Classification classification) { + Classification classification1 = classificationDao.save(classification); + return classification.getId(); + } + + @Override + public void delById(int id) { + classificationDao.delete(id); + } + + /** + * 通过一级分类id查找它所有的二级分类 + * + * @param cid + * @return + */ + @Override + public List findByParentId(int cid) { + return classificationDao.findByParentId(cid); + } +} diff --git a/mall-master/src/main/java/priv/jesse/mall/service/impl/OrderServiceImpl.java b/mall-master/src/main/java/priv/jesse/mall/service/impl/OrderServiceImpl.java new file mode 100644 index 0000000..35500c6 --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/service/impl/OrderServiceImpl.java @@ -0,0 +1,177 @@ +package priv.jesse.mall.service.impl; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Example; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import priv.jesse.mall.dao.OrderDao; +import priv.jesse.mall.dao.OrderItemDao; +import priv.jesse.mall.dao.ProductDao; +import priv.jesse.mall.entity.Order; +import priv.jesse.mall.entity.OrderItem; +import priv.jesse.mall.entity.Product; +import priv.jesse.mall.entity.User; +import priv.jesse.mall.service.OrderService; +import priv.jesse.mall.service.ShopCartService; +import priv.jesse.mall.service.exception.LoginException; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Date; +import java.util.List; + +@Service +public class OrderServiceImpl implements OrderService { + @Autowired + private OrderDao orderDao; + @Autowired + private OrderItemDao orderItemDao; + @Autowired + private ProductDao productDao; + @Autowired + private ShopCartService shopCartService; + + + @Override + public Order findById(int id) { + return orderDao.getOne(id); + } + + @Override + public Page findAll(Pageable pageable) { + return orderDao.findAll(pageable); + } + + @Override + public List findAllExample(Example example) { + return orderDao.findAll(example); + } + + @Override + public void update(Order order) { + orderDao.save(order); + } + + @Override + public int create(Order order) { + Order order1 = orderDao.save(order); + return order1.getId(); + } + + @Override + public void delById(int id) { + orderDao.delete(id); + } + + /** + * 查询订单项详情 + * @param orderId + * @return + */ + @Override + public List findItems(int orderId) { + List list = orderItemDao.findByOrderId(orderId); + for (OrderItem orderItem : list) { + Product product = productDao.findOne(orderItem.getProductId()); + orderItem.setProduct(product); + } + return list; + } + + /** + * 更改订单状态 + * + * @param id + * @param status + */ + @Override + public void updateStatus(int id, int status) { + Order order = orderDao.findOne(id); + order.setState(status); + orderDao.save(order); + } + + /** + * 查找用户的订单列表 + * + * @param request + * @return + */ + @Override + public List findUserOrder(HttpServletRequest request) { + //从session中获取登录用户的id,查找他的订单 + Object user = request.getSession().getAttribute("user"); + if (user == null) + throw new LoginException("请登录!"); + User loginUser = (User) user; + List orders = orderDao.findByUserId(loginUser.getId()); + return orders; + } + + /** + * 支付 + * + * @param orderId + */ + @Override + public void pay(int orderId) { + //具体逻辑就不实现了,直接更改状态为 待发货 + Order order = orderDao.findOne(orderId); + if (order == null) + throw new RuntimeException("订单不存在"); + orderDao.updateState(STATE_WAITE_SEND,order.getId()); + } + + /** + * 提交订单 + * + * @param name + * @param phone + * @param addr + * @param request + * @param response + */ + @Override + @Transactional + public void submit(String name, String phone, String addr, HttpServletRequest request, HttpServletResponse response) throws Exception { + Object user = request.getSession().getAttribute("user"); + if (user == null) + throw new LoginException("请登录!"); + User loginUser = (User) user; + Order order = new Order(); + order.setName(name); + order.setPhone(phone); + order.setAddr(addr); + order.setOrderTime(new Date()); + order.setUserId(loginUser.getId()); + order.setState(STATE_NO_PAY); + List orderItems = shopCartService.listCart(request); + Double total = 0.0; + order.setTotal(total); + order = orderDao.save(order); + for (OrderItem orderItem : orderItems) { + orderItem.setOrderId(order.getId()); + total += orderItem.getSubTotal(); + orderItemDao.save(orderItem); + } + order.setTotal(total); + orderDao.save(order); + //重定向到订单列表页面 + response.sendRedirect("/mall/order/toList.html"); + } + + /** + * 确认收货 + * + * @param orderId + */ + @Override + public void receive(int orderId) { + Order order = orderDao.findOne(orderId); + if (order == null) + throw new RuntimeException("订单不存在"); + orderDao.updateState(STATE_COMPLETE,order.getId()); + } +} diff --git a/mall-master/src/main/java/priv/jesse/mall/service/impl/ProductServiceImpl.java b/mall-master/src/main/java/priv/jesse/mall/service/impl/ProductServiceImpl.java new file mode 100644 index 0000000..2c2b065 --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/service/impl/ProductServiceImpl.java @@ -0,0 +1,102 @@ +package priv.jesse.mall.service.impl; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; +import priv.jesse.mall.dao.ClassificationDao; +import priv.jesse.mall.dao.ProductDao; +import priv.jesse.mall.entity.Classification; +import priv.jesse.mall.entity.Product; +import priv.jesse.mall.service.ProductService; + +import java.util.ArrayList; +import java.util.List; + +@Service +public class ProductServiceImpl implements ProductService { + @Autowired + private ProductDao productDao; + @Autowired + private ClassificationDao classificationDao; + + @Override + public Product findById(int id) { + return productDao.getOne(id); + } + + @Override + public Page findAll(Pageable pageable) { + return productDao.findAll(pageable); + } + + /** + * 查找热门商品 + * + * @return + */ + @Override + public List findHotProduct() { + return productDao.findByIsHot(1, null); + } + + /** + * 查找最新商品 + * + * @param pageable + * @return + */ + @Override + public List findNewProduct(Pageable pageable) { + // 查找两周内上架的商品 +// Calendar calendar = Calendar.getInstance(); +// calendar.add(Calendar.DAY_OF_MONTH, -14); + return productDao.findNew(pageable); + } + + /** + * 根据一级分类查找商品 + * + * @param cid + * @param pageable + * @return + */ + @Override + public List findByCid(int cid, Pageable pageable) { + //查找出所有二级分类 + List sec = classificationDao.findByParentId(cid); + List secIds = new ArrayList<>(); + for (Classification classification : sec) { + secIds.add(classification.getId()); + } + return productDao.findByCsidIn(secIds,pageable); + } + + /** + * 根据二级分类查找商品 + * + * @param csid + * @param pageable + * @return + */ + @Override + public List findByCsid(int csid, Pageable pageable) { + return productDao.findByCsid(csid,pageable); + } + + + @Override + public void update(Product product) { + productDao.save(product); + } + + @Override + public int create(Product product) { + return productDao.save(product).getId(); + } + + @Override + public void delById(int id) { + productDao.delete(id); + } +} diff --git a/mall-master/src/main/java/priv/jesse/mall/service/impl/ShopCartServiceImpl.java b/mall-master/src/main/java/priv/jesse/mall/service/impl/ShopCartServiceImpl.java new file mode 100644 index 0000000..32b3ab2 --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/service/impl/ShopCartServiceImpl.java @@ -0,0 +1,110 @@ +package priv.jesse.mall.service.impl; + +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import priv.jesse.mall.entity.OrderItem; +import priv.jesse.mall.entity.Product; +import priv.jesse.mall.entity.User; +import priv.jesse.mall.service.ProductService; +import priv.jesse.mall.service.ShopCartService; +import priv.jesse.mall.service.exception.LoginException; + +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + + +@Service +public class ShopCartServiceImpl implements ShopCartService { + + @Autowired + private ProductService productService; + + /** + * 加购物车 + * 将商品id保存到Session中List中 + * + * @param productId + * @param request + */ + @Override + public void addCart(int productId, HttpServletRequest request) throws Exception { + User loginUser = (User) request.getSession().getAttribute("user"); + if (loginUser == null) + throw new Exception("未登录!请重新登录"); + List productIds = (List) request.getSession().getAttribute(NAME_PREFIX + loginUser.getId()); + if (productIds == null) { + productIds = new ArrayList<>(); + request.getSession().setAttribute(NAME_PREFIX + loginUser.getId(), productIds); + } + productIds.add(productId); + } + + /** + * 移除 + * + * 移除session List中对应的商品Id + * + * @param productId + * @param request + */ + @Override + public void remove(int productId, HttpServletRequest request) throws Exception { + User loginUser = (User) request.getSession().getAttribute("user"); + if (loginUser == null) + throw new Exception("未登录!请重新登录"); + List productIds = (List) request.getSession().getAttribute(NAME_PREFIX + loginUser.getId()); + Iterator iterator = productIds.iterator(); + while (iterator.hasNext()) { + if (productId == iterator.next()) { + iterator.remove(); + } + } + } + + /** + * 查看购物车 + * + * 查询出session的List中所有的商品Id,并封装成List返回 + * + * @param request + * @return + */ + @Override + public List listCart(HttpServletRequest request) throws Exception { + User loginUser = (User) request.getSession().getAttribute("user"); + if (loginUser == null) + throw new Exception("未登录!请重新登录"); + List productIds = (List) request.getSession().getAttribute(NAME_PREFIX + loginUser.getId()); + // key: productId value:OrderItem + Map productMap = new HashMap<>(); + if (productIds == null){ + return new ArrayList<>(); + } + // 遍历List中的商品id,每个商品Id对应一个OrderItem + for (Integer productId : productIds) { + if (productMap.get(productId) == null) { + Product product = productService.findById(productId); + OrderItem orderItem = new OrderItem(); + orderItem.setProduct(product); + orderItem.setProductId(productId); + orderItem.setCount(1); + orderItem.setSubTotal(product.getShopPrice()); + productMap.put(productId, orderItem); + } else { + OrderItem orderItem = productMap.get(productId); + int count = orderItem.getCount(); + orderItem.setCount(++count); + Double subTotal = orderItem.getSubTotal(); + orderItem.setSubTotal(orderItem.getSubTotal()+subTotal); + productMap.put(productId, orderItem); + } + } + List orderItems = new ArrayList<>(productMap.values()); + return orderItems; + } +} diff --git a/mall-master/src/main/java/priv/jesse/mall/service/impl/UserServiceImpl.java b/mall-master/src/main/java/priv/jesse/mall/service/impl/UserServiceImpl.java new file mode 100644 index 0000000..554f749 --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/service/impl/UserServiceImpl.java @@ -0,0 +1,71 @@ +package priv.jesse.mall.service.impl; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Example; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; +import priv.jesse.mall.dao.UserDao; +import priv.jesse.mall.entity.User; +import priv.jesse.mall.service.UserService; + +import java.util.List; + +@Service +public class UserServiceImpl implements UserService { + @Autowired + private UserDao userDao; + + @Override + public User findById(int id) { + return userDao.getOne(id); + } + + @Override + public Page findAll(Pageable pageable) { + return userDao.findAll(pageable); + } + + @Override + public List findAllExample(Example example) { + return userDao.findAll(example); + } + + @Override + public void update(User user) { + userDao.save(user); + } + + @Override + public int create(User user) { + return userDao.save(user).getId(); + } + + @Override + public void delById(int id) { + userDao.delete(id); + } + + /** + * 根据用户名查询 + * + * @param username + * @return + */ + @Override + public List findByUsername(String username) { + return userDao.findByUsername(username); + } + + /** + * 检查登录 + * + * @param username + * @param password + * @return + */ + @Override + public User checkLogin(String username, String password) { + return userDao.findByUsernameAndPassword(username, password); + } +} diff --git a/mall-master/src/main/java/priv/jesse/mall/utils/DesUtil.java b/mall-master/src/main/java/priv/jesse/mall/utils/DesUtil.java new file mode 100644 index 0000000..cfb6777 --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/utils/DesUtil.java @@ -0,0 +1,114 @@ +package priv.jesse.mall.utils; + +import sun.misc.BASE64Decoder; +import sun.misc.BASE64Encoder; + +import javax.crypto.Cipher; +import javax.crypto.SecretKey; +import javax.crypto.SecretKeyFactory; +import javax.crypto.spec.DESKeySpec; +import java.io.IOException; +import java.security.SecureRandom; + +/** + * 加密解密工具类 + * @author hfb + * @date 2017/9/29 + */ +public class DesUtil { + private final static String DES = "DES"; + + public static void main(String[] args) throws Exception { + String data = "123 456"; + String key = "wow!@#$%"; + System.err.println(encrypt(data, key)); + System.err.println(decrypt(encrypt(data, key), key)); + + } + + /** + * Description 根据键值进行加密 + * @param data + * @param key 加密键byte数组 + * @return + * @throws Exception + */ + public static String encrypt(String data, String key) throws Exception { + byte[] bt = encrypt(data.getBytes(), key.getBytes()); + String strs = new BASE64Encoder().encode(bt); + return strs; + } + + /** + * Description 根据键值进行解密 + * @param data + * @param key 加密键byte数组 + * @return + * @throws IOException + * @throws Exception + */ + public static String decrypt(String data, String key) throws IOException, + Exception { + if (data == null) + return null; + BASE64Decoder decoder = new BASE64Decoder(); + byte[] buf = decoder.decodeBuffer(data); + byte[] bt = decrypt(buf,key.getBytes()); + return new String(bt); + } + + /** + * Description 根据键值进行加密 + * @param data + * @param key 加密键byte数组 + * @return + * @throws Exception + */ + private static byte[] encrypt(byte[] data, byte[] key) throws Exception { + // 生成一个可信任的随机数源 + SecureRandom sr = new SecureRandom(); + + // 从原始密钥数据创建DESKeySpec对象 + DESKeySpec dks = new DESKeySpec(key); + + // 创建一个密钥工厂,然后用它把DESKeySpec转换成SecretKey对象 + SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES); + SecretKey securekey = keyFactory.generateSecret(dks); + + // Cipher对象实际完成加密操作 + Cipher cipher = Cipher.getInstance(DES); + + // 用密钥初始化Cipher对象 + cipher.init(Cipher.ENCRYPT_MODE, securekey, sr); + + return cipher.doFinal(data); + } + + + /** + * Description 根据键值进行解密 + * @param data + * @param key 加密键byte数组 + * @return + * @throws Exception + */ + private static byte[] decrypt(byte[] data, byte[] key) throws Exception { + // 生成一个可信任的随机数源 + SecureRandom sr = new SecureRandom(); + + // 从原始密钥数据创建DESKeySpec对象 + DESKeySpec dks = new DESKeySpec(key); + + // 创建一个密钥工厂,然后用它把DESKeySpec转换成SecretKey对象 + SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES); + SecretKey securekey = keyFactory.generateSecret(dks); + + // Cipher对象实际完成解密操作 + Cipher cipher = Cipher.getInstance(DES); + + // 用密钥初始化Cipher对象 + cipher.init(Cipher.DECRYPT_MODE, securekey, sr); + + return cipher.doFinal(data); + } +} diff --git a/mall-master/src/main/java/priv/jesse/mall/utils/FileUtil.java b/mall-master/src/main/java/priv/jesse/mall/utils/FileUtil.java new file mode 100644 index 0000000..267ebd7 --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/utils/FileUtil.java @@ -0,0 +1,52 @@ +package priv.jesse.mall.utils; + +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.file.StandardOpenOption; +import java.security.MessageDigest; + +public class FileUtil { + + /** + * 保存上传的文件 + * + * @param file + * @return 文件下载的url + * @throws Exception + */ + public static String saveFile(MultipartFile file) throws Exception { + if (file == null || file.isEmpty()) + return ""; + File target = new File("file"); + if (!target.isDirectory()) { + target.mkdirs(); + } + String originalFilename = file.getOriginalFilename(); + MessageDigest md = MessageDigest.getInstance("MD5"); + md.update(file.getBytes()); + String fileName = (Helper.bytesToHex(md.digest(),0,md.digest().length-1)) + "." + getPostfix(originalFilename); + File file1 = new File(target.getPath() + "/" + fileName); + Files.write(Paths.get(file1.toURI()), file.getBytes(), StandardOpenOption.CREATE_NEW); + return "/mall/admin/product/img/" + fileName; + } + + /** + * 获得文件的后缀名 + * + * @param fileName + * @return + */ + public static String getPostfix(String fileName) { + if (fileName == null || "".equals(fileName.trim())) { + return ""; + } + if (fileName.contains(".")) { + return fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length()); + } + return ""; + } + +} diff --git a/mall-master/src/main/java/priv/jesse/mall/utils/Helper.java b/mall-master/src/main/java/priv/jesse/mall/utils/Helper.java new file mode 100644 index 0000000..cafdd7c --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/utils/Helper.java @@ -0,0 +1,60 @@ +package priv.jesse.mall.utils; + +/** + * @author hfb + * @date 2017/9/29 + */ +public class Helper { + private static String key = "wow!@#$%"; + + public static boolean isStringInArray(String str, String[] array){ + for (String val:array){ + if(str.equals(val)){ + return true; + } + } + return false; + } + + public static String encode(String str){ + String enStr = ""; + try { + enStr = DesUtil.encrypt(str, key); + } catch (Exception e) { + e.printStackTrace(); + } + + return enStr; + } + + public static String decode(String str) { + String deStr = ""; + try { + deStr = DesUtil.decrypt(str, key); + } catch (Exception e) { + e.printStackTrace(); + } + + return deStr; + } + + public static String bytesToHex(byte bytes[], int start, int end) { + StringBuilder sb = new StringBuilder(); + for (int i = start; i < start + end; i++) { + sb.append(byteToHex(bytes[i])); + } + return sb.toString(); + } + + /** + * 16进制字符集 + */ + private static final char HEX_DIGITS[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; + + /** + * 将单个字节码转换成16进制字符串 * @param bt 目标字节 * @return 转换结果 + */ + public static String byteToHex(byte bt) { + return HEX_DIGITS[(bt & 0xf0) >> 4] + "" + HEX_DIGITS[bt & 0xf]; + } +} diff --git a/mall-master/src/main/java/priv/jesse/mall/web/admin/AdminClassificationController.java b/mall-master/src/main/java/priv/jesse/mall/web/admin/AdminClassificationController.java new file mode 100644 index 0000000..73e3e0c --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/web/admin/AdminClassificationController.java @@ -0,0 +1,133 @@ +package priv.jesse.mall.web.admin; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import priv.jesse.mall.entity.Classification; +import priv.jesse.mall.entity.pojo.ResultBean; +import priv.jesse.mall.service.ClassificationService; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@Controller +@RequestMapping("/admin/classification") +public class AdminClassificationController { + @Autowired + private ClassificationService classificationService; + + /** + * 返回列表页面 + * + * @param type + * @return + */ + @RequestMapping("/toList.html") + public String toList(int type) { + if (type == 1) {// 一级分类页面 + return "admin/category/list"; + } else if (type == 2) {// 二级分类页面 + return "admin/categorysec/list"; + } else { + return ""; + } + } + + /** + * 打开添加分类页面 + * + * @param type + * @return + */ + @RequestMapping("/toAdd.html") + public String toAdd(int type) { + if (type == 1) {// 一级分类页面 + return "admin/category/add"; + } else if (type == 2) {// 二级分类页面 + return "admin/categorysec/add"; + } else { + return ""; + } + } + + /** + * 打开编辑页面 + * + * @param id + * @param type + * @param map + * @return + */ + @RequestMapping("/toEdit.html") + public String toEdit(int id, int type, Map map) { + Classification classification = classificationService.findById(id); + map.put("cate", classification); + if (type == 1) {// 一级分类页面 + return "admin/category/edit"; + } else if (type == 2) {// 二级分类页面 + Classification classification1 = classificationService.findById(classification.getParentId()); + map.put("cate", classification1); + map.put("catese",classification); + return "admin/categorysec/edit"; + } else { + return ""; + } + } + + @ResponseBody + @RequestMapping(method = RequestMethod.POST, value = "/add.do") + public ResultBean add(String cname, int parentId, int type) { + Classification classification = new Classification(); + classification.setCname(cname); + classification.setParentId(parentId); + classification.setType(type); + classificationService.create(classification); + return new ResultBean<>(true); + } + + @ResponseBody + @RequestMapping(method = RequestMethod.POST, value = "/update.do") + public ResultBean update(int id, String cname, int parentId, int type) { + Classification classification = classificationService.findById(id); + classification.setCname(cname); + classification.setParentId(parentId); + classification.setType(type); + classificationService.update(classification); + return new ResultBean<>(true); + } + + @ResponseBody + @RequestMapping("/del.do") + public ResultBean del(int id) { + classificationService.delById(id); + return new ResultBean<>(true); + } + + @RequestMapping("/list.do") + @ResponseBody + public ResultBean> findAll(int type, + int pageindex, @RequestParam(value = "pageSize", defaultValue = "15") int pageSize) { + List list = new ArrayList<>(); + if (pageindex == -1) + list = classificationService.findAll(type); + else { + Pageable pageable = new PageRequest(pageindex, pageSize, null); + list = classificationService.findAll(type, pageable).getContent(); + } + return new ResultBean<>(list); + } + + @ResponseBody + @RequestMapping("/getTotal.do") + public ResultBean getTotal(int type) { + Pageable pageable = new PageRequest(1, 15, null); + int count = (int) classificationService.findAll(type, pageable).getTotalElements(); + return new ResultBean<>(count); + } +} diff --git a/mall-master/src/main/java/priv/jesse/mall/web/admin/AdminController.java b/mall-master/src/main/java/priv/jesse/mall/web/admin/AdminController.java new file mode 100644 index 0000000..5d1c869 --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/web/admin/AdminController.java @@ -0,0 +1,66 @@ +package priv.jesse.mall.web.admin; + +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.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import priv.jesse.mall.entity.AdminUser; +import priv.jesse.mall.entity.pojo.ResultBean; +import priv.jesse.mall.service.AdminUserService; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +@Controller +@RequestMapping("/admin") +public class AdminController { + @Autowired + private AdminUserService adminUserService; + + /** + * 访问首页 + * + * @return + */ + @RequestMapping("/toIndex.html") + public String toIndex() { + return "admin/index"; + } + + /** + * 访问登录页面 + * + * @return + */ + @RequestMapping("/toLogin.html") + public String toLogin() { + return "admin/login"; + } + + /** + * 登录请求 + * + * @param username + * @param password + */ + //@ResponseBody + @RequestMapping(method = RequestMethod.POST, value = "/login.do") + public void login(String username, String password, HttpServletRequest request, HttpServletResponse response) throws IOException { + AdminUser adminUser = adminUserService.checkLogin(request, username, password); + response.sendRedirect("/mall/admin/toIndex.html"); + } + + /** + * 退出登录 + * @param request + * @param response + * @throws IOException + */ + @RequestMapping("/logout.do") + public void logout(HttpServletRequest request, HttpServletResponse response) throws IOException { + request.getSession().removeAttribute("login_user"); + response.sendRedirect("toLogin.html"); + } +} diff --git a/mall-master/src/main/java/priv/jesse/mall/web/admin/AdminOrderController.java b/mall-master/src/main/java/priv/jesse/mall/web/admin/AdminOrderController.java new file mode 100644 index 0000000..9635e36 --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/web/admin/AdminOrderController.java @@ -0,0 +1,82 @@ +package priv.jesse.mall.web.admin; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import priv.jesse.mall.entity.Order; +import priv.jesse.mall.entity.OrderItem; +import priv.jesse.mall.entity.pojo.ResultBean; +import priv.jesse.mall.service.OrderService; + +import java.util.List; + +@Controller +@RequestMapping("/admin/order") +public class AdminOrderController { + @Autowired + private OrderService orderService; + + /** + * 打开订单列表页面 + * @return + */ + @RequestMapping("/toList.html") + public String toList() { + return "admin/order/list"; + } + + /** + * 获取所有订单的总数 + * @return + */ + @ResponseBody + @RequestMapping("/getTotal.do") + public ResultBean getTotal() { + Pageable pageable = new PageRequest(1, 15, null); + int total = (int) orderService.findAll(pageable).getTotalElements(); + return new ResultBean<>(total); + } + + /** + * 获取所有订单 + * @param pageindex + * @param pageSize + * @return + */ + @ResponseBody + @RequestMapping("/list.do") + public ResultBean> listData(int pageindex, + @RequestParam(value = "pageSize", defaultValue = "15") int pageSize) { + Pageable pageable = new PageRequest(pageindex, pageSize, null); + List list = orderService.findAll(pageable).getContent(); + return new ResultBean<>(list); + } + + /** + * 获取订单项 + * @param orderId + * @return + */ + @ResponseBody + @RequestMapping("/getDetail.do") + public ResultBean> getDetail(int orderId) { + List list = orderService.findItems(orderId); + return new ResultBean<>(list); + } + + /** + * 发货 + * @param id + * @return + */ + @ResponseBody + @RequestMapping("/send.do") + public ResultBean send(int id) { + orderService.updateStatus(id,3); + return new ResultBean<>(true); + } +} diff --git a/mall-master/src/main/java/priv/jesse/mall/web/admin/AdminProductController.java b/mall-master/src/main/java/priv/jesse/mall/web/admin/AdminProductController.java new file mode 100644 index 0000000..795f795 --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/web/admin/AdminProductController.java @@ -0,0 +1,158 @@ +package priv.jesse.mall.web.admin; + +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import priv.jesse.mall.entity.Classification; +import priv.jesse.mall.entity.Product; +import priv.jesse.mall.entity.pojo.ResultBean; +import priv.jesse.mall.service.ClassificationService; +import priv.jesse.mall.service.ProductService; +import priv.jesse.mall.utils.FileUtil; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.IOException; +import java.net.URLEncoder; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.Date; +import java.util.List; +import java.util.Map; + +@Controller +@RequestMapping("/admin/product") +public class AdminProductController { + @Autowired + private ProductService productService; + @Autowired + private ClassificationService classificationService; + + @RequestMapping("/toList.html") + public String toList() { + return "admin/product/list"; + } + + @RequestMapping("/toAdd.html") + public String toAdd() { + return "admin/product/add"; + } + + @RequestMapping("/toEdit.html") + public String toEdit(int id, Map map) { + Product product = productService.findById(id); + Classification classification = classificationService.findById(product.getCsid()); + product.setCategorySec(classification); + map.put("product", product); + return "admin/product/edit"; + } + + @ResponseBody + @RequestMapping("/list.do") + public ResultBean> listProduct(int pageindex, + @RequestParam(value = "pageSize", defaultValue = "15") int pageSize) { + Pageable pageable = new PageRequest(pageindex, pageSize, null); + List list = productService.findAll(pageable).getContent(); + return new ResultBean<>(list); + } + + @ResponseBody + @RequestMapping("/getTotal") + public ResultBean getTotal() { + Pageable pageable = new PageRequest(1, 15, null); + int total = (int) productService.findAll(pageable).getTotalElements(); + return new ResultBean<>(total); + } + + @RequestMapping("/del.do") + @ResponseBody + public ResultBean del(int id) { + productService.delById(id); + return new ResultBean<>(true); + } + + @RequestMapping(method = RequestMethod.POST, value = "/add.do") + public void add(MultipartFile image, + String title, + Double marketPrice, + Double shopPrice, + int isHot, + String desc, + int csid, + HttpServletRequest request, + HttpServletResponse response) throws Exception { + Product product = new Product(); + product.setTitle(title); + product.setMarketPrice(marketPrice); + product.setShopPrice(shopPrice); + product.setDesc(desc); + product.setIsHot(isHot); + product.setCsid(csid); + product.setPdate(new Date()); + String imgUrl = FileUtil.saveFile(image); + product.setImage(imgUrl); + int id = productService.create(product); + if (id <= 0) { + request.setAttribute("message", "添加失败!"); + request.getRequestDispatcher("toAdd.html").forward(request, response); + } else { + request.getRequestDispatcher("toEdit.html?id=" + id).forward(request, response); + } + } + + + @RequestMapping(method = RequestMethod.POST, value = "/update.do") + public void update(int id, + String title, + Double marketPrice, + Double shopPrice, + String desc, + int csid, + int isHot, + MultipartFile image, + HttpServletRequest request, + HttpServletResponse response) throws Exception { + Product product = productService.findById(id); + product.setTitle(title); + product.setMarketPrice(marketPrice); + product.setShopPrice(shopPrice); + product.setDesc(desc); + product.setIsHot(isHot); + product.setCsid(csid); + product.setPdate(new Date()); + String imgUrl = FileUtil.saveFile(image); + if (StringUtils.isNotBlank(imgUrl)) { + product.setImage(imgUrl); + } + boolean flag = false; + try { + productService.update(product); + flag = true; + } catch (Exception e) { + throw new Exception(e); + } + if (!flag) { + request.setAttribute("message", "更新失败!"); + } + response.sendRedirect("toList.html"); + } + + @RequestMapping(method = RequestMethod.GET, value = "/img/{filename:.+}") + public void getImage(@PathVariable(name = "filename", required = true) String filename, + HttpServletResponse res) throws IOException { + File file = new File("file/" + filename); + if (file != null && file.exists()) { + res.setHeader("content-type", "application/octet-stream"); + res.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8")); + res.setContentLengthLong(file.length()); + Files.copy(Paths.get(file.toURI()), res.getOutputStream()); + } + } + + +} diff --git a/mall-master/src/main/java/priv/jesse/mall/web/admin/AdminUserController.java b/mall-master/src/main/java/priv/jesse/mall/web/admin/AdminUserController.java new file mode 100644 index 0000000..f6cdd5b --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/web/admin/AdminUserController.java @@ -0,0 +1,91 @@ +package priv.jesse.mall.web.admin; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import priv.jesse.mall.entity.User; +import priv.jesse.mall.entity.pojo.ResultBean; +import priv.jesse.mall.service.UserService; + +import java.util.List; +import java.util.Map; + +@Controller +@RequestMapping("/admin/user") +public class AdminUserController { + @Autowired + private UserService userService; + + /** + * 打开用户列表页面 + * @return + */ + @RequestMapping("/toList.html") + public String toList() { + return "admin/user/list"; + } + + /** + * 打开编辑页面 + * @param id + * @param map + * @return + */ + @RequestMapping("/toEdit.html") + public String toEdit(int id, Map map) { + User user = userService.findById(id); + map.put("user", user); + return "admin/user/edit"; + } + + /** + * 获取所有用户列表 + * + * @param pageindex + * @return + */ + @ResponseBody + @RequestMapping("/list.do") + public ResultBean> findAllUser(int pageindex, + @RequestParam(value = "pageSize", defaultValue = "15") int pageSize) { + Pageable pageable = new PageRequest(pageindex, pageSize, null); + List users = userService.findAll(pageable).getContent(); + return new ResultBean<>(users); + } + + @ResponseBody + @RequestMapping("/getTotal.do") + public ResultBean geTotal() { + Pageable pageable = new PageRequest(1, 15, null); + int total = (int) userService.findAll(pageable).getTotalElements(); + return new ResultBean<>(total); + } + + @ResponseBody + @RequestMapping("/del.do") + public ResultBean del(int id) { + userService.delById(id); + return new ResultBean<>(true); + } + + @ResponseBody + @RequestMapping(method = RequestMethod.POST, value = "/update.do") + public ResultBean update(int id,String username, + String password,String name, + String phone,String email, + String addr) { + // 更新前先查询 + User user = userService.findById(id); + user.setId(id); + user.setName(name); + user.setUsername(username); + user.setPassword(password); + user.setAddr(addr); + user.setEmail(email); + user.setPhone(phone); + userService.update(user); + return new ResultBean<>(true); + } +} diff --git a/mall-master/src/main/java/priv/jesse/mall/web/user/ClassificationController.java b/mall-master/src/main/java/priv/jesse/mall/web/user/ClassificationController.java new file mode 100644 index 0000000..8c41f37 --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/web/user/ClassificationController.java @@ -0,0 +1,9 @@ +package priv.jesse.mall.web.user; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +@RequestMapping("/classification") +public class ClassificationController { +} diff --git a/mall-master/src/main/java/priv/jesse/mall/web/user/IndexController.java b/mall-master/src/main/java/priv/jesse/mall/web/user/IndexController.java new file mode 100644 index 0000000..b0d15ff --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/web/user/IndexController.java @@ -0,0 +1,28 @@ +package priv.jesse.mall.web.user; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import javax.servlet.http.HttpServletRequest; + +@Controller +public class IndexController { + /** + * 打开首页 + * @return + */ + @RequestMapping("/index.html") + public String toIndex() { + return "mall/index"; + } + + /** + * 访问根目录转发到首页 + * @return + */ + @RequestMapping("/") + public String index(){ + return "forward:/index.html"; + } + +} diff --git a/mall-master/src/main/java/priv/jesse/mall/web/user/OrderController.java b/mall-master/src/main/java/priv/jesse/mall/web/user/OrderController.java new file mode 100644 index 0000000..17da0b8 --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/web/user/OrderController.java @@ -0,0 +1,104 @@ +package priv.jesse.mall.web.user; + +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; +import priv.jesse.mall.entity.Order; +import priv.jesse.mall.entity.OrderItem; +import priv.jesse.mall.entity.pojo.ResultBean; +import priv.jesse.mall.service.OrderService; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; + +@Controller +@RequestMapping("/order") +public class OrderController { + @Autowired + private OrderService orderService; + + /** + * 打开订单列表页面 + * + * @return + */ + @RequestMapping("/toList.html") + public String toOrderList() { + return "mall/order/list"; + } + + /** + * 查询用户订单列表 + * + * @param request + * @return + */ + @RequestMapping("/list.do") + @ResponseBody + public ResultBean> listData(HttpServletRequest request) { + List orders = orderService.findUserOrder(request); + return new ResultBean<>(orders); + } + + /** + * 查询订单详情 + * + * @param orderId + * @return + */ + @RequestMapping("/getDetail.do") + @ResponseBody + public ResultBean> getDetail(int orderId) { + List orderItems = orderService.findItems(orderId); + return new ResultBean<>(orderItems); + } + + /** + * 提交订单 + * + * @param name + * @param phone + * @param addr + * @param request + * @param response + */ + @RequestMapping("/submit.do") + public void submit(String name, + String phone, + String addr, + HttpServletRequest request, + HttpServletResponse response) throws Exception { + orderService.submit(name, phone, addr, request, response); + } + + /** + * 支付方法 + * + * @param orderId + */ + @RequestMapping("pay.do") + @ResponseBody + public ResultBean pay(int orderId, HttpServletResponse response) throws IOException { + orderService.pay(orderId); + return new ResultBean<>(true); + } + + /** + * 确认收货 + * @param orderId + * @param response + * @return + * @throws IOException + */ + @RequestMapping("receive.do") + @ResponseBody + public ResultBean receive(int orderId, HttpServletResponse response) throws IOException { + orderService.receive(orderId); + return new ResultBean<>(true); + } + + +} diff --git a/mall-master/src/main/java/priv/jesse/mall/web/user/ProductController.java b/mall-master/src/main/java/priv/jesse/mall/web/user/ProductController.java new file mode 100644 index 0000000..c3d684e --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/web/user/ProductController.java @@ -0,0 +1,186 @@ +package priv.jesse.mall.web.user; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import priv.jesse.mall.entity.Classification; +import priv.jesse.mall.entity.OrderItem; +import priv.jesse.mall.entity.Product; +import priv.jesse.mall.entity.pojo.ResultBean; +import priv.jesse.mall.service.ClassificationService; +import priv.jesse.mall.service.ProductService; +import priv.jesse.mall.service.ShopCartService; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; +import java.util.Map; + +@Controller +@RequestMapping("/product") +public class ProductController { + @Autowired + private ProductService productService; + @Autowired + private ClassificationService classificationService; + @Autowired + private ShopCartService shopCartService; + + /** + * 获取商品信息 + * + * @param id + * @return + */ + @RequestMapping("/get.do") + public ResultBean getProduct(int id) { + Product product = productService.findById(id); + return new ResultBean<>(product); + } + + /** + * 打开商品详情页面 + * + * @param id + * @param map + * @return + */ + @RequestMapping("/get.html") + public String toProductPage(int id, Map map) { + Product product = productService.findById(id); + map.put("product", product); + return "mall/product/info"; + } + + /** + * 查找热门商品 + * + * @return + */ + @ResponseBody + @RequestMapping("/hot.do") + public ResultBean> getHotProduct() { + List products = productService.findHotProduct(); + return new ResultBean<>(products); + } + + /** + * 查找最新商品 + * + * @param pageNo + * @param pageSize + * @return + */ + @ResponseBody + @RequestMapping("/new.do") + public ResultBean> getNewProduct(int pageNo, int pageSize) { + Pageable pageable = new PageRequest(pageNo, pageSize); + List products = productService.findNewProduct(pageable); + return new ResultBean<>(products); + } + + /** + * 打开分类查看商品页面 + * + * @return + */ + @RequestMapping("/category.html") + public String toCatePage(int cid, Map map) { + Classification classification = classificationService.findById(cid); + map.put("category", classification); + return "mall/product/category"; + } + + @RequestMapping("/toCart.html") + public String toCart(){ + return "mall/product/cart"; + } + + /** + * 按一级分类查找商品 + * + * @param cid + * @param pageNo + * @param pageSize + * @return + */ + @ResponseBody + @RequestMapping("/category.do") + public ResultBean> getCategoryProduct(int cid, int pageNo, int pageSize) { + Pageable pageable = new PageRequest(pageNo, pageSize); + List products = productService.findByCid(cid, pageable); + return new ResultBean<>(products); + } + + /** + * 按二级分类查找商品 + * + * @param csId + * @param pageNo + * @param pageSize + * @return + */ + @ResponseBody + @RequestMapping("/categorySec.do") + public ResultBean> getCategorySecProduct(int csId, int pageNo, int pageSize) { + Pageable pageable = new PageRequest(pageNo, pageSize); + List products = productService.findByCsid(csId, pageable); + return new ResultBean<>(products); + } + + /** + * 根据一级分类查询它所有的二级分类 + * @param cid + * @return + */ + @ResponseBody + @RequestMapping("/getCategorySec.do") + public ResultBean> getCategorySec(int cid){ + List list = classificationService.findByParentId(cid); + return new ResultBean<>(list); + } + + /** + * 加购物车 + * + * @param productId + * @param request + * @return + */ + @ResponseBody + @RequestMapping("/addCart.do") + public ResultBean addToCart(int productId, HttpServletRequest request) throws Exception { + shopCartService.addCart(productId, request); + return new ResultBean<>(true); + } + + /** + * 移除购物车 + * + * @param productId + * @param request + * @return + */ + @ResponseBody + @RequestMapping("/delCart.do") + public ResultBean delToCart(int productId, HttpServletRequest request) throws Exception { + shopCartService.remove(productId, request); + return new ResultBean<>(true); + } + + /** + * 查看购物车商品 + * @param request + * @return + */ + @ResponseBody + @RequestMapping("/listCart.do") + public ResultBean> listCart(HttpServletRequest request) throws Exception { + List orderItems = shopCartService.listCart(request); + return new ResultBean<>(orderItems); + } + + +} diff --git a/mall-master/src/main/java/priv/jesse/mall/web/user/UserController.java b/mall-master/src/main/java/priv/jesse/mall/web/user/UserController.java new file mode 100644 index 0000000..eb156d0 --- /dev/null +++ b/mall-master/src/main/java/priv/jesse/mall/web/user/UserController.java @@ -0,0 +1,123 @@ +package priv.jesse.mall.web.user; + +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; +import priv.jesse.mall.entity.User; +import priv.jesse.mall.entity.pojo.ResultBean; +import priv.jesse.mall.service.UserService; +import priv.jesse.mall.service.exception.LoginException; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; + +@Controller +@RequestMapping("/user") +public class UserController { + @Autowired + private UserService userService; + + /** + * 打开注册页面 + * + * @return + */ + @RequestMapping("/toRegister.html") + public String toRegister() { + return "mall/user/register"; + } + + /** + * 打开登录页面 + * + * @return + */ + @RequestMapping("/toLogin.html") + public String toLogin() { + return "mall/user/login"; + } + + /** + * 登录 + * + * @param username + * @param password + */ + @RequestMapping("/login.do") + public void login(String username, + String password, + HttpServletRequest request, + HttpServletResponse response) throws IOException { + User user = userService.checkLogin(username, password); + if (user != null) { + //登录成功 重定向到首页 + request.getSession().setAttribute("user", user); + response.sendRedirect("/mall/index.html"); + } else { + throw new LoginException("登录失败! 用户名或者密码错误"); + } + + } + + /** + * 注册 + */ + @RequestMapping("/register.do") + public void register(String username, + String password, + String name, + String phone, + String email, + String addr, + HttpServletResponse response) throws IOException { + User user = new User(); + user.setUsername(username); + user.setPhone(phone); + user.setPassword(password); + user.setName(name); + user.setEmail(email); + user.setAddr(addr); + userService.create(user); + // 注册完成后重定向到登录页面 + response.sendRedirect("/mall/user/toLogin.html"); + } + + /** + * 登出 + */ + @RequestMapping("/logout.do") + public void logout(HttpServletRequest request, HttpServletResponse response) throws IOException { + request.getSession().removeAttribute("user"); + response.sendRedirect("/mall/index.html"); + } + + /** + * 验证用户名是否唯一 + * @param username + * @return + */ + @ResponseBody + @RequestMapping("/checkUsername.do") + public ResultBean checkUsername(String username){ + List users = userService.findByUsername(username); + if (users==null||users.isEmpty()){ + return new ResultBean<>(true); + } + return new ResultBean<>(false); + } + + /** + * 如发生错误 转发到这页面 + * + * @param response + * @param request + * @return + */ + @RequestMapping("/error.html") + public String error(HttpServletResponse response, HttpServletRequest request) { + return "error"; + } +} diff --git a/mall-master/src/main/resources/application.properties b/mall-master/src/main/resources/application.properties new file mode 100644 index 0000000..6127606 --- /dev/null +++ b/mall-master/src/main/resources/application.properties @@ -0,0 +1,89 @@ +# \u8BBF\u95EE\u8DEF\u5F84\uFF0C\u7AEF\u53E3\u914D\u7F6E +server.context-path=/mall +server.port=8081 + +# \u6587\u4EF6\u4E0A\u4F20\u914D\u7F6E +spring.http.multipart.enabled=true +spring.http.multipart.max-file-size=100MB +spring.http.multipart.max-request-size=100MB + + +logging.level.priv.jesse.mall=DEBUG + +# \u914D\u7F6E\u8F6Cjson\u7684\u65F6\u95F4\u683C\u5F0F +spring.jackson.time-zone=GMT+8 +spring.jackson.date-format=yyyy-MM-dd HH:mm:ss + +# jdbc\u8FDE\u63A5\u914D\u7F6E +# mysql +spring.datasource.url=jdbc:mysql://localhost:3306/mall?useSSL=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull +spring.datasource.username=root +spring.datasource.password=123456 +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver + + + +spring.datasource.type=com.alibaba.druid.pool.DruidDataSource + +#thymeleaf \u6A21\u677F\u5F15\u64CE\u8BBE\u7F6E +spring.thymeleaf.mode=HTML5 +spring.thymeleaf.encoding=UTF-8 +spring.thymeleaf.content-type=text/html +##\u5F00\u53D1\u65F6\u5173\u95ED\u7F13\u5B58,\u4E0D\u7136\u6CA1\u6CD5\u770B\u5230\u5B9E\u65F6\u9875\u9762 +spring.thymeleaf.cache=false + +##################### jpa hibernate \u914D\u7F6E ######################### +spring.jpa.show-sql=false +spring.jpa.database=mysql +spring.jpa.properties.hibernate.format_sql=false +spring.jpa.generate-ddl=true +# \u6700\u5E38\u7528\u7684\u5C5E\u6027\uFF0C\u7B2C\u4E00\u6B21\u52A0\u8F7Dhibernate\u65F6\u6839\u636Emodel\u7C7B\u4F1A\u81EA\u52A8\u5EFA\u7ACB\u8D77\u8868\u7684\u7ED3\u6784\uFF08\u524D\u63D0\u662F\u5148\u5EFA\u7ACB\u597D\u6570\u636E\u5E93\uFF09\uFF0C +# \u4EE5\u540E\u52A0\u8F7Dhibernate\u65F6\u6839\u636Emodel\u7C7B\u81EA\u52A8\u66F4\u65B0\u8868\u7ED3\u6784\uFF0C\u5373\u4F7F\u8868\u7ED3\u6784\u6539\u53D8\u4E86\u4F46\u8868\u4E2D\u7684\u884C\u4ECD\u7136\u5B58\u5728\u4E0D\u4F1A\u5220\u9664\u4EE5\u524D\u7684\u884C\u3002 +# \u8981\u6CE8\u610F\u7684\u662F\u5F53\u90E8\u7F72\u5230\u670D\u52A1\u5668\u540E\uFF0C\u8868\u7ED3\u6784\u662F\u4E0D\u4F1A\u88AB\u9A6C\u4E0A\u5EFA\u7ACB\u8D77\u6765\u7684\uFF0C\u662F\u8981\u7B49\u5E94\u7528\u7B2C\u4E00\u6B21\u8FD0\u884C\u8D77\u6765\u540E\u624D\u4F1A\u3002 +spring.jpa.hibernate.ddl-auto=update +################################################################## + + + +##################druid\u6570\u636E\u5E93\u8FDE\u63A5\u6C60\u914D\u7F6E############################ +#\u914D\u7F6E\u521D\u59CB\u5316\u5927\u5C0F\uFF0C\u6700\u5C0F\uFF0C\u6700\u5927 +spring.datasource.druid.initial-size=1 +spring.datasource.druid.max-active=20 +spring.datasource.druid.min-idle=1 +#\u914D\u7F6E\u83B7\u53D6\u8FDE\u63A5\u7B49\u5F85\u8D85\u65F6\u7684\u65F6\u95F4 +spring.datasource.druid.max-wait=60000 +#\u914D\u7F6E\u95F4\u9694\u591A\u4E45\u624D\u8FDB\u884C\u4E00\u6B21\u68C0\u6D4B\uFF0C\u68C0\u6D4B\u9700\u8981\u5173\u95ED\u7684\u7A7A\u95F2\u8FDE\u63A5\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2 +spring.datasource.druid.time-between-eviction-runs-millis=60000 +#\u914D\u7F6E\u4E00\u4E2A\u8FDE\u63A5\u5728\u6C60\u4E2D\u6700\u5C0F\u751F\u5B58\u7684\u65F6\u95F4\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2 +spring.datasource.druid.min-evictable-idle-time-millis=300000 +spring.datasource.druid.validation-query=SELECT 'x' +spring.datasource.druid.test-on-borrow=false +spring.datasource.druid.test-on-return=false +spring.datasource.druid.test-while-idle=true +#\u6253\u5F00PSCache\uFF0C\u5E76\u4E14\u6307\u5B9A\u6BCF\u4E2A\u8FDE\u63A5\u4E0APSCache\u7684\u5927\u5C0F +#\u5982\u679C\u7528Oracle\uFF0C\u5219\u628ApoolPreparedStatements\u914D\u7F6E\u4E3Atrue\uFF0Cmysql\u53EF\u4EE5\u914D\u7F6E\u4E3Afalse\u3002\u5206\u5E93\u5206\u8868\u8F83\u591A\u7684\u6570\u636E\u5E93\uFF0C\u5EFA\u8BAE\u914D\u7F6E\u4E3Afalse\u3002 +spring.datasource.druid.pool-prepared-statements=false +spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20 +#druid\u76D1\u63A7\u914D\u7F6E +spring.datasource.druid.filters=stat,slf4j +# WebStatFilter\u914D\u7F6E\uFF0C\u8BF4\u660E\u8BF7\u53C2\u8003Druid Wiki\uFF0C\u914D\u7F6E_\u914D\u7F6EWebStatFilter +spring.datasource.druid.web-stat-filter.enabled=true +spring.datasource.druid.filter.stat.log-slow-sql=true +spring.datasource.druid.filter.stat.slow-sql-millis=2000 +# StatViewServlet\u914D\u7F6E\uFF0C\u8BF4\u660E\u8BF7\u53C2\u8003Druid Wiki\uFF0C\u914D\u7F6E_StatViewServlet\u914D\u7F6E +spring.datasource.druid.stat-view-servlet.enabled=true +spring.datasource.druid.stat-view-servlet.url-pattern=/druid/* +spring.datasource.druid.stat-view-servlet.reset-enable=true +spring.datasource.druid.stat-view-servlet.login-username=druid +spring.datasource.druid.stat-view-servlet.login-password=123456 +# Spring\u76D1\u63A7\u914D\u7F6E\uFF0C\u8BF4\u660E\u8BF7\u53C2\u8003Druid Github Wiki\uFF0C\u914D\u7F6E_Druid\u548CSpring\u5173\u8054\u76D1\u63A7\u914D\u7F6E +spring.datasource.druid.aop-patterns=priv.jesse.mall.service.impl.* +# druid\u65E5\u5FD7\u8F93\u51FA +spring.datasource.druid.filter.slf4j.enabled=true +spring.datasource.druid.filter.slf4j.result-set-log-enabled=false +spring.datasource.druid.filter.slf4j.statement-create-after-log-enabled=false +spring.datasource.druid.filter.slf4j.statement-close-after-log-enabled=false +spring.datasource.druid.filter.slf4j.result-set-open-after-log-enabled=false +spring.datasource.druid.filter.slf4j.result-set-close-after-log-enabled=false +##################druid\u8FDE\u63A5\u6C60\u914D\u7F6E\u7ED3\u675F############################ + diff --git a/mall-master/src/main/resources/logback.xml b/mall-master/src/main/resources/logback.xml new file mode 100644 index 0000000..7396cbf --- /dev/null +++ b/mall-master/src/main/resources/logback.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + %highlight(%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger) -%msg%n + + + + + + + + + + + + + + + + + ${log_dir}/%d{yyyy-MM-dd}/log.log + + ${maxHistory} + + + + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mall-master/src/main/resources/static/css/DT_bootstrap.css b/mall-master/src/main/resources/static/css/DT_bootstrap.css new file mode 100644 index 0000000..4b37a92 --- /dev/null +++ b/mall-master/src/main/resources/static/css/DT_bootstrap.css @@ -0,0 +1,178 @@ + +div.dataTables_length label { + float: left; + text-align: left; +} + +div.dataTables_length select { + width: 75px; +} + +div.dataTables_filter label { + float: right; +} + +div.dataTables_info { + padding-top: 8px; +} + +div.dataTables_paginate { + float: right; + margin: 0; +} + +table.table { + clear: both; + margin-bottom: 6px !important; + max-width: none !important; +} + +table.table thead .sorting, +table.table thead .sorting_asc, +table.table thead .sorting_desc, +table.table thead .sorting_asc_disabled, +table.table thead .sorting_desc_disabled { + cursor: pointer; + *cursor: hand; +} + +table.table thead .sorting { background: url('../image/sort_both.png') no-repeat center right; } +table.table thead .sorting_asc { background: url('../image/sort_asc.png') no-repeat center right; } +table.table thead .sorting_desc { background: url('../image/sort_desc.png') no-repeat center right; } + +table.table thead .sorting_asc_disabled { background: url('../image/sort_asc_disabled.png') no-repeat center right; } +table.table thead .sorting_desc_disabled { background: url('../image/sort_desc_disabled.png') no-repeat center right; } + +table.dataTable th:active { + outline: none; +} + +/* Scrolling */ +div.dataTables_scrollHead table { + margin-bottom: 0 !important; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} + +div.dataTables_scrollHead table thead tr:last-child th:first-child, +div.dataTables_scrollHead table thead tr:last-child td:first-child { + border-bottom-left-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +div.dataTables_scrollBody table { + border-top: none; + margin-bottom: 0 !important; +} + +div.dataTables_scrollBody tbody tr:first-child th, +div.dataTables_scrollBody tbody tr:first-child td { + border-top: none; +} + +div.dataTables_scrollFoot table { + border-top: none; +} + + + + +/* + * TableTools styles + */ +.table tbody tr.active td, +.table tbody tr.active th { + background-color: #08C; + color: white; +} + +.table tbody tr.active:hover td, +.table tbody tr.active:hover th { + background-color: #0075b0 !important; +} + +.table-striped tbody tr.active:nth-child(odd) td, +.table-striped tbody tr.active:nth-child(odd) th { + background-color: #017ebc; +} + +table.DTTT_selectable tbody tr { + cursor: pointer; + *cursor: hand; +} + +div.DTTT .btn { + color: #333 !important; + font-size: 12px; +} + +div.DTTT .btn:hover { + text-decoration: none !important; +} + + +ul.DTTT_dropdown.dropdown-menu a { + color: #333 !important; /* needed only when demo_page.css is included */ +} + +ul.DTTT_dropdown.dropdown-menu li:hover a { + background-color: #0088cc; + color: white !important; +} + +/* TableTools information display */ +div.DTTT_print_info.modal { + height: 150px; + margin-top: -75px; + text-align: center; +} + +div.DTTT_print_info h6 { + font-weight: normal; + font-size: 28px; + line-height: 28px; + margin: 1em; +} + +div.DTTT_print_info p { + font-size: 14px; + line-height: 20px; +} + + + +/* + * FixedColumns styles + */ +div.DTFC_LeftHeadWrapper table, +div.DTFC_LeftFootWrapper table, +table.DTFC_Cloned tr.even { + background-color: white; +} + +div.DTFC_LeftHeadWrapper table { + margin-bottom: 0 !important; + border-top-right-radius: 0 !important; + border-bottom-left-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +div.DTFC_LeftHeadWrapper table thead tr:last-child th:first-child, +div.DTFC_LeftHeadWrapper table thead tr:last-child td:first-child { + border-bottom-left-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +div.DTFC_LeftBodyWrapper table { + border-top: none; + margin-bottom: 0 !important; +} + +div.DTFC_LeftBodyWrapper tbody tr:first-child th, +div.DTFC_LeftBodyWrapper tbody tr:first-child td { + border-top: none; +} + +div.DTFC_LeftFootWrapper table { + border-top: none; +} diff --git a/mall-master/src/main/resources/static/css/about-us.css b/mall-master/src/main/resources/static/css/about-us.css new file mode 100644 index 0000000..b62a369 --- /dev/null +++ b/mall-master/src/main/resources/static/css/about-us.css @@ -0,0 +1,20 @@ +/*** +Anout Us Page +***/ + +.meet-our-team h3 { + margin-bottom: 0; + padding: 0 10px 10px; + background: #fcfcfc; +} + +.meet-our-team small { + display:block; + font-size:12px; +} + +.meet-our-team .team-info { + padding: 10px; + overflow: hidden; + background: #fafafa; +} \ No newline at end of file diff --git a/mall-master/src/main/resources/static/css/animate.css b/mall-master/src/main/resources/static/css/animate.css new file mode 100644 index 0000000..8dfcfe9 --- /dev/null +++ b/mall-master/src/main/resources/static/css/animate.css @@ -0,0 +1,3263 @@ +@charset "UTF-8"; +/* +Animate.css - http://daneden.me/animate +Licensed under the MIT license + +Copyright (c) 2013 Daniel Eden + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ +body { /* Addresses a small issue in webkit: http://bit.ly/NEdoDq */ + -webkit-backface-visibility: hidden; +} +.animated { + -webkit-animation-duration: 1s; + -moz-animation-duration: 1s; + -o-animation-duration: 1s; + animation-duration: 1s; + -webkit-animation-fill-mode: both; + -moz-animation-fill-mode: both; + -o-animation-fill-mode: both; + animation-fill-mode: both; +} + +.animated.hinge { + -webkit-animation-duration: 2s; + -moz-animation-duration: 2s; + -o-animation-duration: 2s; + animation-duration: 2s; +} + +@-webkit-keyframes flash { + 0%, 50%, 100% {opacity: 1;} + 25%, 75% {opacity: 0;} +} + +@-moz-keyframes flash { + 0%, 50%, 100% {opacity: 1;} + 25%, 75% {opacity: 0;} +} + +@-o-keyframes flash { + 0%, 50%, 100% {opacity: 1;} + 25%, 75% {opacity: 0;} +} + +@keyframes flash { + 0%, 50%, 100% {opacity: 1;} + 25%, 75% {opacity: 0;} +} + +.flash { + -webkit-animation-name: flash; + -moz-animation-name: flash; + -o-animation-name: flash; + animation-name: flash; +} +@-webkit-keyframes shake { + 0%, 100% {-webkit-transform: translateX(0);} + 10%, 30%, 50%, 70%, 90% {-webkit-transform: translateX(-10px);} + 20%, 40%, 60%, 80% {-webkit-transform: translateX(10px);} +} + +@-moz-keyframes shake { + 0%, 100% {-moz-transform: translateX(0);} + 10%, 30%, 50%, 70%, 90% {-moz-transform: translateX(-10px);} + 20%, 40%, 60%, 80% {-moz-transform: translateX(10px);} +} + +@-o-keyframes shake { + 0%, 100% {-o-transform: translateX(0);} + 10%, 30%, 50%, 70%, 90% {-o-transform: translateX(-10px);} + 20%, 40%, 60%, 80% {-o-transform: translateX(10px);} +} + +@keyframes shake { + 0%, 100% {transform: translateX(0);} + 10%, 30%, 50%, 70%, 90% {transform: translateX(-10px);} + 20%, 40%, 60%, 80% {transform: translateX(10px);} +} + +.shake { + -webkit-animation-name: shake; + -moz-animation-name: shake; + -o-animation-name: shake; + animation-name: shake; +} +@-webkit-keyframes bounce { + 0%, 20%, 50%, 80%, 100% {-webkit-transform: translateY(0);} + 40% {-webkit-transform: translateY(-30px);} + 60% {-webkit-transform: translateY(-15px);} +} + +@-moz-keyframes bounce { + 0%, 20%, 50%, 80%, 100% {-moz-transform: translateY(0);} + 40% {-moz-transform: translateY(-30px);} + 60% {-moz-transform: translateY(-15px);} +} + +@-o-keyframes bounce { + 0%, 20%, 50%, 80%, 100% {-o-transform: translateY(0);} + 40% {-o-transform: translateY(-30px);} + 60% {-o-transform: translateY(-15px);} +} +@keyframes bounce { + 0%, 20%, 50%, 80%, 100% {transform: translateY(0);} + 40% {transform: translateY(-30px);} + 60% {transform: translateY(-15px);} +} + +.bounce { + -webkit-animation-name: bounce; + -moz-animation-name: bounce; + -o-animation-name: bounce; + animation-name: bounce; +} +@-webkit-keyframes tada { + 0% {-webkit-transform: scale(1);} + 10%, 20% {-webkit-transform: scale(0.9) rotate(-3deg);} + 30%, 50%, 70%, 90% {-webkit-transform: scale(1.1) rotate(3deg);} + 40%, 60%, 80% {-webkit-transform: scale(1.1) rotate(-3deg);} + 100% {-webkit-transform: scale(1) rotate(0);} +} + +@-moz-keyframes tada { + 0% {-moz-transform: scale(1);} + 10%, 20% {-moz-transform: scale(0.9) rotate(-3deg);} + 30%, 50%, 70%, 90% {-moz-transform: scale(1.1) rotate(3deg);} + 40%, 60%, 80% {-moz-transform: scale(1.1) rotate(-3deg);} + 100% {-moz-transform: scale(1) rotate(0);} +} + +@-o-keyframes tada { + 0% {-o-transform: scale(1);} + 10%, 20% {-o-transform: scale(0.9) rotate(-3deg);} + 30%, 50%, 70%, 90% {-o-transform: scale(1.1) rotate(3deg);} + 40%, 60%, 80% {-o-transform: scale(1.1) rotate(-3deg);} + 100% {-o-transform: scale(1) rotate(0);} +} + +@keyframes tada { + 0% {transform: scale(1);} + 10%, 20% {transform: scale(0.9) rotate(-3deg);} + 30%, 50%, 70%, 90% {transform: scale(1.1) rotate(3deg);} + 40%, 60%, 80% {transform: scale(1.1) rotate(-3deg);} + 100% {transform: scale(1) rotate(0);} +} + +.tada { + -webkit-animation-name: tada; + -moz-animation-name: tada; + -o-animation-name: tada; + animation-name: tada; +} +@-webkit-keyframes swing { + 20%, 40%, 60%, 80%, 100% { -webkit-transform-origin: top center; } + 20% { -webkit-transform: rotate(15deg); } + 40% { -webkit-transform: rotate(-10deg); } + 60% { -webkit-transform: rotate(5deg); } + 80% { -webkit-transform: rotate(-5deg); } + 100% { -webkit-transform: rotate(0deg); } +} + +@-moz-keyframes swing { + 20% { -moz-transform: rotate(15deg); } + 40% { -moz-transform: rotate(-10deg); } + 60% { -moz-transform: rotate(5deg); } + 80% { -moz-transform: rotate(-5deg); } + 100% { -moz-transform: rotate(0deg); } +} + +@-o-keyframes swing { + 20% { -o-transform: rotate(15deg); } + 40% { -o-transform: rotate(-10deg); } + 60% { -o-transform: rotate(5deg); } + 80% { -o-transform: rotate(-5deg); } + 100% { -o-transform: rotate(0deg); } +} + +@keyframes swing { + 20% { transform: rotate(15deg); } + 40% { transform: rotate(-10deg); } + 60% { transform: rotate(5deg); } + 80% { transform: rotate(-5deg); } + 100% { transform: rotate(0deg); } +} + +.swing { + -webkit-transform-origin: top center; + -moz-transform-origin: top center; + -o-transform-origin: top center; + transform-origin: top center; + -webkit-animation-name: swing; + -moz-animation-name: swing; + -o-animation-name: swing; + animation-name: swing; +} +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes wobble { + 0% { -webkit-transform: translateX(0%); } + 15% { -webkit-transform: translateX(-25%) rotate(-5deg); } + 30% { -webkit-transform: translateX(20%) rotate(3deg); } + 45% { -webkit-transform: translateX(-15%) rotate(-3deg); } + 60% { -webkit-transform: translateX(10%) rotate(2deg); } + 75% { -webkit-transform: translateX(-5%) rotate(-1deg); } + 100% { -webkit-transform: translateX(0%); } +} + +@-moz-keyframes wobble { + 0% { -moz-transform: translateX(0%); } + 15% { -moz-transform: translateX(-25%) rotate(-5deg); } + 30% { -moz-transform: translateX(20%) rotate(3deg); } + 45% { -moz-transform: translateX(-15%) rotate(-3deg); } + 60% { -moz-transform: translateX(10%) rotate(2deg); } + 75% { -moz-transform: translateX(-5%) rotate(-1deg); } + 100% { -moz-transform: translateX(0%); } +} + +@-o-keyframes wobble { + 0% { -o-transform: translateX(0%); } + 15% { -o-transform: translateX(-25%) rotate(-5deg); } + 30% { -o-transform: translateX(20%) rotate(3deg); } + 45% { -o-transform: translateX(-15%) rotate(-3deg); } + 60% { -o-transform: translateX(10%) rotate(2deg); } + 75% { -o-transform: translateX(-5%) rotate(-1deg); } + 100% { -o-transform: translateX(0%); } +} + +@keyframes wobble { + 0% { transform: translateX(0%); } + 15% { transform: translateX(-25%) rotate(-5deg); } + 30% { transform: translateX(20%) rotate(3deg); } + 45% { transform: translateX(-15%) rotate(-3deg); } + 60% { transform: translateX(10%) rotate(2deg); } + 75% { transform: translateX(-5%) rotate(-1deg); } + 100% { transform: translateX(0%); } +} + +.wobble { + -webkit-animation-name: wobble; + -moz-animation-name: wobble; + -o-animation-name: wobble; + animation-name: wobble; +} +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes pulse { + 0% { -webkit-transform: scale(1); } + 50% { -webkit-transform: scale(1.1); } + 100% { -webkit-transform: scale(1); } +} +@-moz-keyframes pulse { + 0% { -moz-transform: scale(1); } + 50% { -moz-transform: scale(1.1); } + 100% { -moz-transform: scale(1); } +} +@-o-keyframes pulse { + 0% { -o-transform: scale(1); } + 50% { -o-transform: scale(1.1); } + 100% { -o-transform: scale(1); } +} +@keyframes pulse { + 0% { transform: scale(1); } + 50% { transform: scale(1.1); } + 100% { transform: scale(1); } +} + +.pulse { + -webkit-animation-name: pulse; + -moz-animation-name: pulse; + -o-animation-name: pulse; + animation-name: pulse; +} +@-webkit-keyframes flip { + 0% { + -webkit-transform: perspective(400px) rotateY(0); + -webkit-animation-timing-function: ease-out; + } + 40% { + -webkit-transform: perspective(400px) translateZ(150px) rotateY(170deg); + -webkit-animation-timing-function: ease-out; + } + 50% { + -webkit-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1); + -webkit-animation-timing-function: ease-in; + } + 80% { + -webkit-transform: perspective(400px) rotateY(360deg) scale(.95); + -webkit-animation-timing-function: ease-in; + } + 100% { + -webkit-transform: perspective(400px) scale(1); + -webkit-animation-timing-function: ease-in; + } +} +@-moz-keyframes flip { + 0% { + -moz-transform: perspective(400px) rotateY(0); + -moz-animation-timing-function: ease-out; + } + 40% { + -moz-transform: perspective(400px) translateZ(150px) rotateY(170deg); + -moz-animation-timing-function: ease-out; + } + 50% { + -moz-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1); + -moz-animation-timing-function: ease-in; + } + 80% { + -moz-transform: perspective(400px) rotateY(360deg) scale(.95); + -moz-animation-timing-function: ease-in; + } + 100% { + -moz-transform: perspective(400px) scale(1); + -moz-animation-timing-function: ease-in; + } +} +@-o-keyframes flip { + 0% { + -o-transform: perspective(400px) rotateY(0); + -o-animation-timing-function: ease-out; + } + 40% { + -o-transform: perspective(400px) translateZ(150px) rotateY(170deg); + -o-animation-timing-function: ease-out; + } + 50% { + -o-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1); + -o-animation-timing-function: ease-in; + } + 80% { + -o-transform: perspective(400px) rotateY(360deg) scale(.95); + -o-animation-timing-function: ease-in; + } + 100% { + -o-transform: perspective(400px) scale(1); + -o-animation-timing-function: ease-in; + } +} +@keyframes flip { + 0% { + transform: perspective(400px) rotateY(0); + animation-timing-function: ease-out; + } + 40% { + transform: perspective(400px) translateZ(150px) rotateY(170deg); + animation-timing-function: ease-out; + } + 50% { + transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1); + animation-timing-function: ease-in; + } + 80% { + transform: perspective(400px) rotateY(360deg) scale(.95); + animation-timing-function: ease-in; + } + 100% { + transform: perspective(400px) scale(1); + animation-timing-function: ease-in; + } +} + +.flip { + -webkit-backface-visibility: visible !important; + -webkit-animation-name: flip; + -moz-backface-visibility: visible !important; + -moz-animation-name: flip; + -o-backface-visibility: visible !important; + -o-animation-name: flip; + backface-visibility: visible !important; + animation-name: flip; +} +@-webkit-keyframes flipInX { + 0% { + -webkit-transform: perspective(400px) rotateX(90deg); + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotateX(-10deg); + } + + 70% { + -webkit-transform: perspective(400px) rotateX(10deg); + } + + 100% { + -webkit-transform: perspective(400px) rotateX(0deg); + opacity: 1; + } +} +@-moz-keyframes flipInX { + 0% { + -moz-transform: perspective(400px) rotateX(90deg); + opacity: 0; + } + + 40% { + -moz-transform: perspective(400px) rotateX(-10deg); + } + + 70% { + -moz-transform: perspective(400px) rotateX(10deg); + } + + 100% { + -moz-transform: perspective(400px) rotateX(0deg); + opacity: 1; + } +} +@-o-keyframes flipInX { + 0% { + -o-transform: perspective(400px) rotateX(90deg); + opacity: 0; + } + + 40% { + -o-transform: perspective(400px) rotateX(-10deg); + } + + 70% { + -o-transform: perspective(400px) rotateX(10deg); + } + + 100% { + -o-transform: perspective(400px) rotateX(0deg); + opacity: 1; + } +} +@keyframes flipInX { + 0% { + transform: perspective(400px) rotateX(90deg); + opacity: 0; + } + + 40% { + transform: perspective(400px) rotateX(-10deg); + } + + 70% { + transform: perspective(400px) rotateX(10deg); + } + + 100% { + transform: perspective(400px) rotateX(0deg); + opacity: 1; + } +} + +.flipInX { + -webkit-backface-visibility: visible !important; + -webkit-animation-name: flipInX; + -moz-backface-visibility: visible !important; + -moz-animation-name: flipInX; + -o-backface-visibility: visible !important; + -o-animation-name: flipInX; + backface-visibility: visible !important; + animation-name: flipInX; +} +@-webkit-keyframes flipOutX { + 0% { + -webkit-transform: perspective(400px) rotateX(0deg); + opacity: 1; + } + 100% { + -webkit-transform: perspective(400px) rotateX(90deg); + opacity: 0; + } +} + +@-moz-keyframes flipOutX { + 0% { + -moz-transform: perspective(400px) rotateX(0deg); + opacity: 1; + } + 100% { + -moz-transform: perspective(400px) rotateX(90deg); + opacity: 0; + } +} + +@-o-keyframes flipOutX { + 0% { + -o-transform: perspective(400px) rotateX(0deg); + opacity: 1; + } + 100% { + -o-transform: perspective(400px) rotateX(90deg); + opacity: 0; + } +} + +@keyframes flipOutX { + 0% { + transform: perspective(400px) rotateX(0deg); + opacity: 1; + } + 100% { + transform: perspective(400px) rotateX(90deg); + opacity: 0; + } +} + +.flipOutX { + -webkit-animation-name: flipOutX; + -webkit-backface-visibility: visible !important; + -moz-animation-name: flipOutX; + -moz-backface-visibility: visible !important; + -o-animation-name: flipOutX; + -o-backface-visibility: visible !important; + animation-name: flipOutX; + backface-visibility: visible !important; +} +@-webkit-keyframes flipInY { + 0% { + -webkit-transform: perspective(400px) rotateY(90deg); + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotateY(-10deg); + } + + 70% { + -webkit-transform: perspective(400px) rotateY(10deg); + } + + 100% { + -webkit-transform: perspective(400px) rotateY(0deg); + opacity: 1; + } +} +@-moz-keyframes flipInY { + 0% { + -moz-transform: perspective(400px) rotateY(90deg); + opacity: 0; + } + + 40% { + -moz-transform: perspective(400px) rotateY(-10deg); + } + + 70% { + -moz-transform: perspective(400px) rotateY(10deg); + } + + 100% { + -moz-transform: perspective(400px) rotateY(0deg); + opacity: 1; + } +} +@-o-keyframes flipInY { + 0% { + -o-transform: perspective(400px) rotateY(90deg); + opacity: 0; + } + + 40% { + -o-transform: perspective(400px) rotateY(-10deg); + } + + 70% { + -o-transform: perspective(400px) rotateY(10deg); + } + + 100% { + -o-transform: perspective(400px) rotateY(0deg); + opacity: 1; + } +} +@keyframes flipInY { + 0% { + transform: perspective(400px) rotateY(90deg); + opacity: 0; + } + + 40% { + transform: perspective(400px) rotateY(-10deg); + } + + 70% { + transform: perspective(400px) rotateY(10deg); + } + + 100% { + transform: perspective(400px) rotateY(0deg); + opacity: 1; + } +} + +.flipInY { + -webkit-backface-visibility: visible !important; + -webkit-animation-name: flipInY; + -moz-backface-visibility: visible !important; + -moz-animation-name: flipInY; + -o-backface-visibility: visible !important; + -o-animation-name: flipInY; + backface-visibility: visible !important; + animation-name: flipInY; +} +@-webkit-keyframes flipOutY { + 0% { + -webkit-transform: perspective(400px) rotateY(0deg); + opacity: 1; + } + 100% { + -webkit-transform: perspective(400px) rotateY(90deg); + opacity: 0; + } +} +@-moz-keyframes flipOutY { + 0% { + -moz-transform: perspective(400px) rotateY(0deg); + opacity: 1; + } + 100% { + -moz-transform: perspective(400px) rotateY(90deg); + opacity: 0; + } +} +@-o-keyframes flipOutY { + 0% { + -o-transform: perspective(400px) rotateY(0deg); + opacity: 1; + } + 100% { + -o-transform: perspective(400px) rotateY(90deg); + opacity: 0; + } +} +@keyframes flipOutY { + 0% { + transform: perspective(400px) rotateY(0deg); + opacity: 1; + } + 100% { + transform: perspective(400px) rotateY(90deg); + opacity: 0; + } +} + +.flipOutY { + -webkit-backface-visibility: visible !important; + -webkit-animation-name: flipOutY; + -moz-backface-visibility: visible !important; + -moz-animation-name: flipOutY; + -o-backface-visibility: visible !important; + -o-animation-name: flipOutY; + backface-visibility: visible !important; + animation-name: flipOutY; +} +@-webkit-keyframes fadeIn { + 0% {opacity: 0;} + 100% {opacity: 1;} +} + +@-moz-keyframes fadeIn { + 0% {opacity: 0;} + 100% {opacity: 1;} +} + +@-o-keyframes fadeIn { + 0% {opacity: 0;} + 100% {opacity: 1;} +} + +@keyframes fadeIn { + 0% {opacity: 0;} + 100% {opacity: 1;} +} + +.fadeIn { + -webkit-animation-name: fadeIn; + -moz-animation-name: fadeIn; + -o-animation-name: fadeIn; + animation-name: fadeIn; +} +@-webkit-keyframes fadeInUp { + 0% { + opacity: 0; + -webkit-transform: translateY(20px); + } + + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} + +@-moz-keyframes fadeInUp { + 0% { + opacity: 0; + -moz-transform: translateY(20px); + } + + 100% { + opacity: 1; + -moz-transform: translateY(0); + } +} + +@-o-keyframes fadeInUp { + 0% { + opacity: 0; + -o-transform: translateY(20px); + } + + 100% { + opacity: 1; + -o-transform: translateY(0); + } +} + +@keyframes fadeInUp { + 0% { + opacity: 0; + transform: translateY(20px); + } + + 100% { + opacity: 1; + transform: translateY(0); + } +} + +.fadeInUp { + -webkit-animation-name: fadeInUp; + -moz-animation-name: fadeInUp; + -o-animation-name: fadeInUp; + animation-name: fadeInUp; +} +@-webkit-keyframes fadeInDown { + 0% { + opacity: 0; + -webkit-transform: translateY(-20px); + } + + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} + +@-moz-keyframes fadeInDown { + 0% { + opacity: 0; + -moz-transform: translateY(-20px); + } + + 100% { + opacity: 1; + -moz-transform: translateY(0); + } +} + +@-o-keyframes fadeInDown { + 0% { + opacity: 0; + -o-transform: translateY(-20px); + } + + 100% { + opacity: 1; + -o-transform: translateY(0); + } +} + +@keyframes fadeInDown { + 0% { + opacity: 0; + transform: translateY(-20px); + } + + 100% { + opacity: 1; + transform: translateY(0); + } +} + +.fadeInDown { + -webkit-animation-name: fadeInDown; + -moz-animation-name: fadeInDown; + -o-animation-name: fadeInDown; + animation-name: fadeInDown; +} +@-webkit-keyframes fadeInLeft { + 0% { + opacity: 0; + -webkit-transform: translateX(-20px); + } + + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } +} + +@-moz-keyframes fadeInLeft { + 0% { + opacity: 0; + -moz-transform: translateX(-20px); + } + + 100% { + opacity: 1; + -moz-transform: translateX(0); + } +} + +@-o-keyframes fadeInLeft { + 0% { + opacity: 0; + -o-transform: translateX(-20px); + } + + 100% { + opacity: 1; + -o-transform: translateX(0); + } +} + +@keyframes fadeInLeft { + 0% { + opacity: 0; + transform: translateX(-20px); + } + + 100% { + opacity: 1; + transform: translateX(0); + } +} + +.fadeInLeft { + -webkit-animation-name: fadeInLeft; + -moz-animation-name: fadeInLeft; + -o-animation-name: fadeInLeft; + animation-name: fadeInLeft; +} +@-webkit-keyframes fadeInRight { + 0% { + opacity: 0; + -webkit-transform: translateX(20px); + } + + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } +} + +@-moz-keyframes fadeInRight { + 0% { + opacity: 0; + -moz-transform: translateX(20px); + } + + 100% { + opacity: 1; + -moz-transform: translateX(0); + } +} + +@-o-keyframes fadeInRight { + 0% { + opacity: 0; + -o-transform: translateX(20px); + } + + 100% { + opacity: 1; + -o-transform: translateX(0); + } +} + +@keyframes fadeInRight { + 0% { + opacity: 0; + transform: translateX(20px); + } + + 100% { + opacity: 1; + transform: translateX(0); + } +} + +.fadeInRight { + -webkit-animation-name: fadeInRight; + -moz-animation-name: fadeInRight; + -o-animation-name: fadeInRight; + animation-name: fadeInRight; +} +@-webkit-keyframes fadeInUpBig { + 0% { + opacity: 0; + -webkit-transform: translateY(2000px); + } + + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} + +@-moz-keyframes fadeInUpBig { + 0% { + opacity: 0; + -moz-transform: translateY(2000px); + } + + 100% { + opacity: 1; + -moz-transform: translateY(0); + } +} + +@-o-keyframes fadeInUpBig { + 0% { + opacity: 0; + -o-transform: translateY(2000px); + } + + 100% { + opacity: 1; + -o-transform: translateY(0); + } +} + +@keyframes fadeInUpBig { + 0% { + opacity: 0; + transform: translateY(2000px); + } + + 100% { + opacity: 1; + transform: translateY(0); + } +} + +.fadeInUpBig { + -webkit-animation-name: fadeInUpBig; + -moz-animation-name: fadeInUpBig; + -o-animation-name: fadeInUpBig; + animation-name: fadeInUpBig; +} +@-webkit-keyframes fadeInDownBig { + 0% { + opacity: 0; + -webkit-transform: translateY(-2000px); + } + + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} + +@-moz-keyframes fadeInDownBig { + 0% { + opacity: 0; + -moz-transform: translateY(-2000px); + } + + 100% { + opacity: 1; + -moz-transform: translateY(0); + } +} + +@-o-keyframes fadeInDownBig { + 0% { + opacity: 0; + -o-transform: translateY(-2000px); + } + + 100% { + opacity: 1; + -o-transform: translateY(0); + } +} + +@keyframes fadeInDownBig { + 0% { + opacity: 0; + transform: translateY(-2000px); + } + + 100% { + opacity: 1; + transform: translateY(0); + } +} + +.fadeInDownBig { + -webkit-animation-name: fadeInDownBig; + -moz-animation-name: fadeInDownBig; + -o-animation-name: fadeInDownBig; + animation-name: fadeInDownBig; +} +@-webkit-keyframes fadeInLeftBig { + 0% { + opacity: 0; + -webkit-transform: translateX(-2000px); + } + + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } +} +@-moz-keyframes fadeInLeftBig { + 0% { + opacity: 0; + -moz-transform: translateX(-2000px); + } + + 100% { + opacity: 1; + -moz-transform: translateX(0); + } +} +@-o-keyframes fadeInLeftBig { + 0% { + opacity: 0; + -o-transform: translateX(-2000px); + } + + 100% { + opacity: 1; + -o-transform: translateX(0); + } +} +@keyframes fadeInLeftBig { + 0% { + opacity: 0; + transform: translateX(-2000px); + } + + 100% { + opacity: 1; + transform: translateX(0); + } +} + +.fadeInLeftBig { + -webkit-animation-name: fadeInLeftBig; + -moz-animation-name: fadeInLeftBig; + -o-animation-name: fadeInLeftBig; + animation-name: fadeInLeftBig; +} +@-webkit-keyframes fadeInRightBig { + 0% { + opacity: 0; + -webkit-transform: translateX(2000px); + } + + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } +} + +@-moz-keyframes fadeInRightBig { + 0% { + opacity: 0; + -moz-transform: translateX(2000px); + } + + 100% { + opacity: 1; + -moz-transform: translateX(0); + } +} + +@-o-keyframes fadeInRightBig { + 0% { + opacity: 0; + -o-transform: translateX(2000px); + } + + 100% { + opacity: 1; + -o-transform: translateX(0); + } +} + +@keyframes fadeInRightBig { + 0% { + opacity: 0; + transform: translateX(2000px); + } + + 100% { + opacity: 1; + transform: translateX(0); + } +} + +.fadeInRightBig { + -webkit-animation-name: fadeInRightBig; + -moz-animation-name: fadeInRightBig; + -o-animation-name: fadeInRightBig; + animation-name: fadeInRightBig; +} +@-webkit-keyframes fadeOut { + 0% {opacity: 1;} + 100% {opacity: 0;} +} + +@-moz-keyframes fadeOut { + 0% {opacity: 1;} + 100% {opacity: 0;} +} + +@-o-keyframes fadeOut { + 0% {opacity: 1;} + 100% {opacity: 0;} +} + +@keyframes fadeOut { + 0% {opacity: 1;} + 100% {opacity: 0;} +} + +.fadeOut { + -webkit-animation-name: fadeOut; + -moz-animation-name: fadeOut; + -o-animation-name: fadeOut; + animation-name: fadeOut; +} +@-webkit-keyframes fadeOutUp { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateY(-20px); + } +} +@-moz-keyframes fadeOutUp { + 0% { + opacity: 1; + -moz-transform: translateY(0); + } + + 100% { + opacity: 0; + -moz-transform: translateY(-20px); + } +} +@-o-keyframes fadeOutUp { + 0% { + opacity: 1; + -o-transform: translateY(0); + } + + 100% { + opacity: 0; + -o-transform: translateY(-20px); + } +} +@keyframes fadeOutUp { + 0% { + opacity: 1; + transform: translateY(0); + } + + 100% { + opacity: 0; + transform: translateY(-20px); + } +} + +.fadeOutUp { + -webkit-animation-name: fadeOutUp; + -moz-animation-name: fadeOutUp; + -o-animation-name: fadeOutUp; + animation-name: fadeOutUp; +} +@-webkit-keyframes fadeOutDown { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateY(20px); + } +} + +@-moz-keyframes fadeOutDown { + 0% { + opacity: 1; + -moz-transform: translateY(0); + } + + 100% { + opacity: 0; + -moz-transform: translateY(20px); + } +} + +@-o-keyframes fadeOutDown { + 0% { + opacity: 1; + -o-transform: translateY(0); + } + + 100% { + opacity: 0; + -o-transform: translateY(20px); + } +} + +@keyframes fadeOutDown { + 0% { + opacity: 1; + transform: translateY(0); + } + + 100% { + opacity: 0; + transform: translateY(20px); + } +} + +.fadeOutDown { + -webkit-animation-name: fadeOutDown; + -moz-animation-name: fadeOutDown; + -o-animation-name: fadeOutDown; + animation-name: fadeOutDown; +} +@-webkit-keyframes fadeOutLeft { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateX(-20px); + } +} + +@-moz-keyframes fadeOutLeft { + 0% { + opacity: 1; + -moz-transform: translateX(0); + } + + 100% { + opacity: 0; + -moz-transform: translateX(-20px); + } +} + +@-o-keyframes fadeOutLeft { + 0% { + opacity: 1; + -o-transform: translateX(0); + } + + 100% { + opacity: 0; + -o-transform: translateX(-20px); + } +} + +@keyframes fadeOutLeft { + 0% { + opacity: 1; + transform: translateX(0); + } + + 100% { + opacity: 0; + transform: translateX(-20px); + } +} + +.fadeOutLeft { + -webkit-animation-name: fadeOutLeft; + -moz-animation-name: fadeOutLeft; + -o-animation-name: fadeOutLeft; + animation-name: fadeOutLeft; +} +@-webkit-keyframes fadeOutRight { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateX(20px); + } +} + +@-moz-keyframes fadeOutRight { + 0% { + opacity: 1; + -moz-transform: translateX(0); + } + + 100% { + opacity: 0; + -moz-transform: translateX(20px); + } +} + +@-o-keyframes fadeOutRight { + 0% { + opacity: 1; + -o-transform: translateX(0); + } + + 100% { + opacity: 0; + -o-transform: translateX(20px); + } +} + +@keyframes fadeOutRight { + 0% { + opacity: 1; + transform: translateX(0); + } + + 100% { + opacity: 0; + transform: translateX(20px); + } +} + +.fadeOutRight { + -webkit-animation-name: fadeOutRight; + -moz-animation-name: fadeOutRight; + -o-animation-name: fadeOutRight; + animation-name: fadeOutRight; +} +@-webkit-keyframes fadeOutUpBig { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateY(-2000px); + } +} + +@-moz-keyframes fadeOutUpBig { + 0% { + opacity: 1; + -moz-transform: translateY(0); + } + + 100% { + opacity: 0; + -moz-transform: translateY(-2000px); + } +} + +@-o-keyframes fadeOutUpBig { + 0% { + opacity: 1; + -o-transform: translateY(0); + } + + 100% { + opacity: 0; + -o-transform: translateY(-2000px); + } +} + +@keyframes fadeOutUpBig { + 0% { + opacity: 1; + transform: translateY(0); + } + + 100% { + opacity: 0; + transform: translateY(-2000px); + } +} + +.fadeOutUpBig { + -webkit-animation-name: fadeOutUpBig; + -moz-animation-name: fadeOutUpBig; + -o-animation-name: fadeOutUpBig; + animation-name: fadeOutUpBig; +} +@-webkit-keyframes fadeOutDownBig { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateY(2000px); + } +} + +@-moz-keyframes fadeOutDownBig { + 0% { + opacity: 1; + -moz-transform: translateY(0); + } + + 100% { + opacity: 0; + -moz-transform: translateY(2000px); + } +} + +@-o-keyframes fadeOutDownBig { + 0% { + opacity: 1; + -o-transform: translateY(0); + } + + 100% { + opacity: 0; + -o-transform: translateY(2000px); + } +} + +@keyframes fadeOutDownBig { + 0% { + opacity: 1; + transform: translateY(0); + } + + 100% { + opacity: 0; + transform: translateY(2000px); + } +} + +.fadeOutDownBig { + -webkit-animation-name: fadeOutDownBig; + -moz-animation-name: fadeOutDownBig; + -o-animation-name: fadeOutDownBig; + animation-name: fadeOutDownBig; +} +@-webkit-keyframes fadeOutLeftBig { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateX(-2000px); + } +} + +@-moz-keyframes fadeOutLeftBig { + 0% { + opacity: 1; + -moz-transform: translateX(0); + } + + 100% { + opacity: 0; + -moz-transform: translateX(-2000px); + } +} + +@-o-keyframes fadeOutLeftBig { + 0% { + opacity: 1; + -o-transform: translateX(0); + } + + 100% { + opacity: 0; + -o-transform: translateX(-2000px); + } +} + +@keyframes fadeOutLeftBig { + 0% { + opacity: 1; + transform: translateX(0); + } + + 100% { + opacity: 0; + transform: translateX(-2000px); + } +} + +.fadeOutLeftBig { + -webkit-animation-name: fadeOutLeftBig; + -moz-animation-name: fadeOutLeftBig; + -o-animation-name: fadeOutLeftBig; + animation-name: fadeOutLeftBig; +} +@-webkit-keyframes fadeOutRightBig { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateX(2000px); + } +} +@-moz-keyframes fadeOutRightBig { + 0% { + opacity: 1; + -moz-transform: translateX(0); + } + + 100% { + opacity: 0; + -moz-transform: translateX(2000px); + } +} +@-o-keyframes fadeOutRightBig { + 0% { + opacity: 1; + -o-transform: translateX(0); + } + + 100% { + opacity: 0; + -o-transform: translateX(2000px); + } +} +@keyframes fadeOutRightBig { + 0% { + opacity: 1; + transform: translateX(0); + } + + 100% { + opacity: 0; + transform: translateX(2000px); + } +} + +.fadeOutRightBig { + -webkit-animation-name: fadeOutRightBig; + -moz-animation-name: fadeOutRightBig; + -o-animation-name: fadeOutRightBig; + animation-name: fadeOutRightBig; +} +@-webkit-keyframes bounceIn { + 0% { + opacity: 0; + -webkit-transform: scale(.3); + } + + 50% { + opacity: 1; + -webkit-transform: scale(1.05); + } + + 70% { + -webkit-transform: scale(.9); + } + + 100% { + -webkit-transform: scale(1); + } +} + +@-moz-keyframes bounceIn { + 0% { + opacity: 0; + -moz-transform: scale(.3); + } + + 50% { + opacity: 1; + -moz-transform: scale(1.05); + } + + 70% { + -moz-transform: scale(.9); + } + + 100% { + -moz-transform: scale(1); + } +} + +@-o-keyframes bounceIn { + 0% { + opacity: 0; + -o-transform: scale(.3); + } + + 50% { + opacity: 1; + -o-transform: scale(1.05); + } + + 70% { + -o-transform: scale(.9); + } + + 100% { + -o-transform: scale(1); + } +} + +@keyframes bounceIn { + 0% { + opacity: 0; + transform: scale(.3); + } + + 50% { + opacity: 1; + transform: scale(1.05); + } + + 70% { + transform: scale(.9); + } + + 100% { + transform: scale(1); + } +} + +.bounceIn { + -webkit-animation-name: bounceIn; + -moz-animation-name: bounceIn; + -o-animation-name: bounceIn; + animation-name: bounceIn; +} +@-webkit-keyframes bounceInUp { + 0% { + opacity: 0; + -webkit-transform: translateY(2000px); + } + + 60% { + opacity: 1; + -webkit-transform: translateY(-30px); + } + + 80% { + -webkit-transform: translateY(10px); + } + + 100% { + -webkit-transform: translateY(0); + } +} +@-moz-keyframes bounceInUp { + 0% { + opacity: 0; + -moz-transform: translateY(2000px); + } + + 60% { + opacity: 1; + -moz-transform: translateY(-30px); + } + + 80% { + -moz-transform: translateY(10px); + } + + 100% { + -moz-transform: translateY(0); + } +} + +@-o-keyframes bounceInUp { + 0% { + opacity: 0; + -o-transform: translateY(2000px); + } + + 60% { + opacity: 1; + -o-transform: translateY(-30px); + } + + 80% { + -o-transform: translateY(10px); + } + + 100% { + -o-transform: translateY(0); + } +} + +@keyframes bounceInUp { + 0% { + opacity: 0; + transform: translateY(2000px); + } + + 60% { + opacity: 1; + transform: translateY(-30px); + } + + 80% { + transform: translateY(10px); + } + + 100% { + transform: translateY(0); + } +} + +.bounceInUp { + -webkit-animation-name: bounceInUp; + -moz-animation-name: bounceInUp; + -o-animation-name: bounceInUp; + animation-name: bounceInUp; +} +@-webkit-keyframes bounceInDown { + 0% { + opacity: 0; + -webkit-transform: translateY(-2000px); + } + + 60% { + opacity: 1; + -webkit-transform: translateY(30px); + } + + 80% { + -webkit-transform: translateY(-10px); + } + + 100% { + -webkit-transform: translateY(0); + } +} + +@-moz-keyframes bounceInDown { + 0% { + opacity: 0; + -moz-transform: translateY(-2000px); + } + + 60% { + opacity: 1; + -moz-transform: translateY(30px); + } + + 80% { + -moz-transform: translateY(-10px); + } + + 100% { + -moz-transform: translateY(0); + } +} + +@-o-keyframes bounceInDown { + 0% { + opacity: 0; + -o-transform: translateY(-2000px); + } + + 60% { + opacity: 1; + -o-transform: translateY(30px); + } + + 80% { + -o-transform: translateY(-10px); + } + + 100% { + -o-transform: translateY(0); + } +} + +@keyframes bounceInDown { + 0% { + opacity: 0; + transform: translateY(-2000px); + } + + 60% { + opacity: 1; + transform: translateY(30px); + } + + 80% { + transform: translateY(-10px); + } + + 100% { + transform: translateY(0); + } +} + +.bounceInDown { + -webkit-animation-name: bounceInDown; + -moz-animation-name: bounceInDown; + -o-animation-name: bounceInDown; + animation-name: bounceInDown; +} +@-webkit-keyframes bounceInLeft { + 0% { + opacity: 0; + -webkit-transform: translateX(-2000px); + } + + 60% { + opacity: 1; + -webkit-transform: translateX(30px); + } + + 80% { + -webkit-transform: translateX(-10px); + } + + 100% { + -webkit-transform: translateX(0); + } +} + +@-moz-keyframes bounceInLeft { + 0% { + opacity: 0; + -moz-transform: translateX(-2000px); + } + + 60% { + opacity: 1; + -moz-transform: translateX(30px); + } + + 80% { + -moz-transform: translateX(-10px); + } + + 100% { + -moz-transform: translateX(0); + } +} + +@-o-keyframes bounceInLeft { + 0% { + opacity: 0; + -o-transform: translateX(-2000px); + } + + 60% { + opacity: 1; + -o-transform: translateX(30px); + } + + 80% { + -o-transform: translateX(-10px); + } + + 100% { + -o-transform: translateX(0); + } +} + +@keyframes bounceInLeft { + 0% { + opacity: 0; + transform: translateX(-2000px); + } + + 60% { + opacity: 1; + transform: translateX(30px); + } + + 80% { + transform: translateX(-10px); + } + + 100% { + transform: translateX(0); + } +} + +.bounceInLeft { + -webkit-animation-name: bounceInLeft; + -moz-animation-name: bounceInLeft; + -o-animation-name: bounceInLeft; + animation-name: bounceInLeft; +} +@-webkit-keyframes bounceInRight { + 0% { + opacity: 0; + -webkit-transform: translateX(2000px); + } + + 60% { + opacity: 1; + -webkit-transform: translateX(-30px); + } + + 80% { + -webkit-transform: translateX(10px); + } + + 100% { + -webkit-transform: translateX(0); + } +} + +@-moz-keyframes bounceInRight { + 0% { + opacity: 0; + -moz-transform: translateX(2000px); + } + + 60% { + opacity: 1; + -moz-transform: translateX(-30px); + } + + 80% { + -moz-transform: translateX(10px); + } + + 100% { + -moz-transform: translateX(0); + } +} + +@-o-keyframes bounceInRight { + 0% { + opacity: 0; + -o-transform: translateX(2000px); + } + + 60% { + opacity: 1; + -o-transform: translateX(-30px); + } + + 80% { + -o-transform: translateX(10px); + } + + 100% { + -o-transform: translateX(0); + } +} + +@keyframes bounceInRight { + 0% { + opacity: 0; + transform: translateX(2000px); + } + + 60% { + opacity: 1; + transform: translateX(-30px); + } + + 80% { + transform: translateX(10px); + } + + 100% { + transform: translateX(0); + } +} + +.bounceInRight { + -webkit-animation-name: bounceInRight; + -moz-animation-name: bounceInRight; + -o-animation-name: bounceInRight; + animation-name: bounceInRight; +} +@-webkit-keyframes bounceOut { + 0% { + -webkit-transform: scale(1); + } + + 25% { + -webkit-transform: scale(.95); + } + + 50% { + opacity: 1; + -webkit-transform: scale(1.1); + } + + 100% { + opacity: 0; + -webkit-transform: scale(.3); + } +} + +@-moz-keyframes bounceOut { + 0% { + -moz-transform: scale(1); + } + + 25% { + -moz-transform: scale(.95); + } + + 50% { + opacity: 1; + -moz-transform: scale(1.1); + } + + 100% { + opacity: 0; + -moz-transform: scale(.3); + } +} + +@-o-keyframes bounceOut { + 0% { + -o-transform: scale(1); + } + + 25% { + -o-transform: scale(.95); + } + + 50% { + opacity: 1; + -o-transform: scale(1.1); + } + + 100% { + opacity: 0; + -o-transform: scale(.3); + } +} + +@keyframes bounceOut { + 0% { + transform: scale(1); + } + + 25% { + transform: scale(.95); + } + + 50% { + opacity: 1; + transform: scale(1.1); + } + + 100% { + opacity: 0; + transform: scale(.3); + } +} + +.bounceOut { + -webkit-animation-name: bounceOut; + -moz-animation-name: bounceOut; + -o-animation-name: bounceOut; + animation-name: bounceOut; +} +@-webkit-keyframes bounceOutUp { + 0% { + -webkit-transform: translateY(0); + } + + 20% { + opacity: 1; + -webkit-transform: translateY(20px); + } + + 100% { + opacity: 0; + -webkit-transform: translateY(-2000px); + } +} + +@-moz-keyframes bounceOutUp { + 0% { + -moz-transform: translateY(0); + } + + 20% { + opacity: 1; + -moz-transform: translateY(20px); + } + + 100% { + opacity: 0; + -moz-transform: translateY(-2000px); + } +} + +@-o-keyframes bounceOutUp { + 0% { + -o-transform: translateY(0); + } + + 20% { + opacity: 1; + -o-transform: translateY(20px); + } + + 100% { + opacity: 0; + -o-transform: translateY(-2000px); + } +} + +@keyframes bounceOutUp { + 0% { + transform: translateY(0); + } + + 20% { + opacity: 1; + transform: translateY(20px); + } + + 100% { + opacity: 0; + transform: translateY(-2000px); + } +} + +.bounceOutUp { + -webkit-animation-name: bounceOutUp; + -moz-animation-name: bounceOutUp; + -o-animation-name: bounceOutUp; + animation-name: bounceOutUp; +} +@-webkit-keyframes bounceOutDown { + 0% { + -webkit-transform: translateY(0); + } + + 20% { + opacity: 1; + -webkit-transform: translateY(-20px); + } + + 100% { + opacity: 0; + -webkit-transform: translateY(2000px); + } +} + +@-moz-keyframes bounceOutDown { + 0% { + -moz-transform: translateY(0); + } + + 20% { + opacity: 1; + -moz-transform: translateY(-20px); + } + + 100% { + opacity: 0; + -moz-transform: translateY(2000px); + } +} + +@-o-keyframes bounceOutDown { + 0% { + -o-transform: translateY(0); + } + + 20% { + opacity: 1; + -o-transform: translateY(-20px); + } + + 100% { + opacity: 0; + -o-transform: translateY(2000px); + } +} + +@keyframes bounceOutDown { + 0% { + transform: translateY(0); + } + + 20% { + opacity: 1; + transform: translateY(-20px); + } + + 100% { + opacity: 0; + transform: translateY(2000px); + } +} + +.bounceOutDown { + -webkit-animation-name: bounceOutDown; + -moz-animation-name: bounceOutDown; + -o-animation-name: bounceOutDown; + animation-name: bounceOutDown; +} +@-webkit-keyframes bounceOutLeft { + 0% { + -webkit-transform: translateX(0); + } + + 20% { + opacity: 1; + -webkit-transform: translateX(20px); + } + + 100% { + opacity: 0; + -webkit-transform: translateX(-2000px); + } +} + +@-moz-keyframes bounceOutLeft { + 0% { + -moz-transform: translateX(0); + } + + 20% { + opacity: 1; + -moz-transform: translateX(20px); + } + + 100% { + opacity: 0; + -moz-transform: translateX(-2000px); + } +} + +@-o-keyframes bounceOutLeft { + 0% { + -o-transform: translateX(0); + } + + 20% { + opacity: 1; + -o-transform: translateX(20px); + } + + 100% { + opacity: 0; + -o-transform: translateX(-2000px); + } +} + +@keyframes bounceOutLeft { + 0% { + transform: translateX(0); + } + + 20% { + opacity: 1; + transform: translateX(20px); + } + + 100% { + opacity: 0; + transform: translateX(-2000px); + } +} + +.bounceOutLeft { + -webkit-animation-name: bounceOutLeft; + -moz-animation-name: bounceOutLeft; + -o-animation-name: bounceOutLeft; + animation-name: bounceOutLeft; +} +@-webkit-keyframes bounceOutRight { + 0% { + -webkit-transform: translateX(0); + } + + 20% { + opacity: 1; + -webkit-transform: translateX(-20px); + } + + 100% { + opacity: 0; + -webkit-transform: translateX(2000px); + } +} + +@-moz-keyframes bounceOutRight { + 0% { + -moz-transform: translateX(0); + } + + 20% { + opacity: 1; + -moz-transform: translateX(-20px); + } + + 100% { + opacity: 0; + -moz-transform: translateX(2000px); + } +} + +@-o-keyframes bounceOutRight { + 0% { + -o-transform: translateX(0); + } + + 20% { + opacity: 1; + -o-transform: translateX(-20px); + } + + 100% { + opacity: 0; + -o-transform: translateX(2000px); + } +} + +@keyframes bounceOutRight { + 0% { + transform: translateX(0); + } + + 20% { + opacity: 1; + transform: translateX(-20px); + } + + 100% { + opacity: 0; + transform: translateX(2000px); + } +} + +.bounceOutRight { + -webkit-animation-name: bounceOutRight; + -moz-animation-name: bounceOutRight; + -o-animation-name: bounceOutRight; + animation-name: bounceOutRight; +} +@-webkit-keyframes rotateIn { + 0% { + -webkit-transform-origin: center center; + -webkit-transform: rotate(-200deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: center center; + -webkit-transform: rotate(0); + opacity: 1; + } +} +@-moz-keyframes rotateIn { + 0% { + -moz-transform-origin: center center; + -moz-transform: rotate(-200deg); + opacity: 0; + } + + 100% { + -moz-transform-origin: center center; + -moz-transform: rotate(0); + opacity: 1; + } +} +@-o-keyframes rotateIn { + 0% { + -o-transform-origin: center center; + -o-transform: rotate(-200deg); + opacity: 0; + } + + 100% { + -o-transform-origin: center center; + -o-transform: rotate(0); + opacity: 1; + } +} +@keyframes rotateIn { + 0% { + transform-origin: center center; + transform: rotate(-200deg); + opacity: 0; + } + + 100% { + transform-origin: center center; + transform: rotate(0); + opacity: 1; + } +} + +.rotateIn { + -webkit-animation-name: rotateIn; + -moz-animation-name: rotateIn; + -o-animation-name: rotateIn; + animation-name: rotateIn; +} +@-webkit-keyframes rotateInUpLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(90deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } +} + +@-moz-keyframes rotateInUpLeft { + 0% { + -moz-transform-origin: left bottom; + -moz-transform: rotate(90deg); + opacity: 0; + } + + 100% { + -moz-transform-origin: left bottom; + -moz-transform: rotate(0); + opacity: 1; + } +} + +@-o-keyframes rotateInUpLeft { + 0% { + -o-transform-origin: left bottom; + -o-transform: rotate(90deg); + opacity: 0; + } + + 100% { + -o-transform-origin: left bottom; + -o-transform: rotate(0); + opacity: 1; + } +} + +@keyframes rotateInUpLeft { + 0% { + transform-origin: left bottom; + transform: rotate(90deg); + opacity: 0; + } + + 100% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } +} + +.rotateInUpLeft { + -webkit-animation-name: rotateInUpLeft; + -moz-animation-name: rotateInUpLeft; + -o-animation-name: rotateInUpLeft; + animation-name: rotateInUpLeft; +} +@-webkit-keyframes rotateInDownLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(-90deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } +} + +@-moz-keyframes rotateInDownLeft { + 0% { + -moz-transform-origin: left bottom; + -moz-transform: rotate(-90deg); + opacity: 0; + } + + 100% { + -moz-transform-origin: left bottom; + -moz-transform: rotate(0); + opacity: 1; + } +} + +@-o-keyframes rotateInDownLeft { + 0% { + -o-transform-origin: left bottom; + -o-transform: rotate(-90deg); + opacity: 0; + } + + 100% { + -o-transform-origin: left bottom; + -o-transform: rotate(0); + opacity: 1; + } +} + +@keyframes rotateInDownLeft { + 0% { + transform-origin: left bottom; + transform: rotate(-90deg); + opacity: 0; + } + + 100% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } +} + +.rotateInDownLeft { + -webkit-animation-name: rotateInDownLeft; + -moz-animation-name: rotateInDownLeft; + -o-animation-name: rotateInDownLeft; + animation-name: rotateInDownLeft; +} +@-webkit-keyframes rotateInUpRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(-90deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } +} + +@-moz-keyframes rotateInUpRight { + 0% { + -moz-transform-origin: right bottom; + -moz-transform: rotate(-90deg); + opacity: 0; + } + + 100% { + -moz-transform-origin: right bottom; + -moz-transform: rotate(0); + opacity: 1; + } +} + +@-o-keyframes rotateInUpRight { + 0% { + -o-transform-origin: right bottom; + -o-transform: rotate(-90deg); + opacity: 0; + } + + 100% { + -o-transform-origin: right bottom; + -o-transform: rotate(0); + opacity: 1; + } +} + +@keyframes rotateInUpRight { + 0% { + transform-origin: right bottom; + transform: rotate(-90deg); + opacity: 0; + } + + 100% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } +} + +.rotateInUpRight { + -webkit-animation-name: rotateInUpRight; + -moz-animation-name: rotateInUpRight; + -o-animation-name: rotateInUpRight; + animation-name: rotateInUpRight; +} +@-webkit-keyframes rotateInDownRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(90deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } +} + +@-moz-keyframes rotateInDownRight { + 0% { + -moz-transform-origin: right bottom; + -moz-transform: rotate(90deg); + opacity: 0; + } + + 100% { + -moz-transform-origin: right bottom; + -moz-transform: rotate(0); + opacity: 1; + } +} + +@-o-keyframes rotateInDownRight { + 0% { + -o-transform-origin: right bottom; + -o-transform: rotate(90deg); + opacity: 0; + } + + 100% { + -o-transform-origin: right bottom; + -o-transform: rotate(0); + opacity: 1; + } +} + +@keyframes rotateInDownRight { + 0% { + transform-origin: right bottom; + transform: rotate(90deg); + opacity: 0; + } + + 100% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } +} + +.rotateInDownRight { + -webkit-animation-name: rotateInDownRight; + -moz-animation-name: rotateInDownRight; + -o-animation-name: rotateInDownRight; + animation-name: rotateInDownRight; +} +@-webkit-keyframes rotateOut { + 0% { + -webkit-transform-origin: center center; + -webkit-transform: rotate(0); + opacity: 1; + } + + 100% { + -webkit-transform-origin: center center; + -webkit-transform: rotate(200deg); + opacity: 0; + } +} + +@-moz-keyframes rotateOut { + 0% { + -moz-transform-origin: center center; + -moz-transform: rotate(0); + opacity: 1; + } + + 100% { + -moz-transform-origin: center center; + -moz-transform: rotate(200deg); + opacity: 0; + } +} + +@-o-keyframes rotateOut { + 0% { + -o-transform-origin: center center; + -o-transform: rotate(0); + opacity: 1; + } + + 100% { + -o-transform-origin: center center; + -o-transform: rotate(200deg); + opacity: 0; + } +} + +@keyframes rotateOut { + 0% { + transform-origin: center center; + transform: rotate(0); + opacity: 1; + } + + 100% { + transform-origin: center center; + transform: rotate(200deg); + opacity: 0; + } +} + +.rotateOut { + -webkit-animation-name: rotateOut; + -moz-animation-name: rotateOut; + -o-animation-name: rotateOut; + animation-name: rotateOut; +} +@-webkit-keyframes rotateOutUpLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(-90deg); + opacity: 0; + } +} + +@-moz-keyframes rotateOutUpLeft { + 0% { + -moz-transform-origin: left bottom; + -moz-transform: rotate(0); + opacity: 1; + } + + 100% { + -moz-transform-origin: left bottom; + -moz-transform: rotate(-90deg); + opacity: 0; + } +} + +@-o-keyframes rotateOutUpLeft { + 0% { + -o-transform-origin: left bottom; + -o-transform: rotate(0); + opacity: 1; + } + + 100% { + -o-transform-origin: left bottom; + -o-transform: rotate(-90deg); + opacity: 0; + } +} + +@keyframes rotateOutUpLeft { + 0% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } + + 100% { + transform-origin: left bottom; + transform: rotate(-90deg); + opacity: 0; + } +} + +.rotateOutUpLeft { + -webkit-animation-name: rotateOutUpLeft; + -moz-animation-name: rotateOutUpLeft; + -o-animation-name: rotateOutUpLeft; + animation-name: rotateOutUpLeft; +} +@-webkit-keyframes rotateOutDownLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(90deg); + opacity: 0; + } +} + +@-moz-keyframes rotateOutDownLeft { + 0% { + -moz-transform-origin: left bottom; + -moz-transform: rotate(0); + opacity: 1; + } + + 100% { + -moz-transform-origin: left bottom; + -moz-transform: rotate(90deg); + opacity: 0; + } +} + +@-o-keyframes rotateOutDownLeft { + 0% { + -o-transform-origin: left bottom; + -o-transform: rotate(0); + opacity: 1; + } + + 100% { + -o-transform-origin: left bottom; + -o-transform: rotate(90deg); + opacity: 0; + } +} + +@keyframes rotateOutDownLeft { + 0% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } + + 100% { + transform-origin: left bottom; + transform: rotate(90deg); + opacity: 0; + } +} + +.rotateOutDownLeft { + -webkit-animation-name: rotateOutDownLeft; + -moz-animation-name: rotateOutDownLeft; + -o-animation-name: rotateOutDownLeft; + animation-name: rotateOutDownLeft; +} +@-webkit-keyframes rotateOutUpRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(90deg); + opacity: 0; + } +} + +@-moz-keyframes rotateOutUpRight { + 0% { + -moz-transform-origin: right bottom; + -moz-transform: rotate(0); + opacity: 1; + } + + 100% { + -moz-transform-origin: right bottom; + -moz-transform: rotate(90deg); + opacity: 0; + } +} + +@-o-keyframes rotateOutUpRight { + 0% { + -o-transform-origin: right bottom; + -o-transform: rotate(0); + opacity: 1; + } + + 100% { + -o-transform-origin: right bottom; + -o-transform: rotate(90deg); + opacity: 0; + } +} + +@keyframes rotateOutUpRight { + 0% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } + + 100% { + transform-origin: right bottom; + transform: rotate(90deg); + opacity: 0; + } +} + +.rotateOutUpRight { + -webkit-animation-name: rotateOutUpRight; + -moz-animation-name: rotateOutUpRight; + -o-animation-name: rotateOutUpRight; + animation-name: rotateOutUpRight; +} +@-webkit-keyframes rotateOutDownRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(-90deg); + opacity: 0; + } +} + +@-moz-keyframes rotateOutDownRight { + 0% { + -moz-transform-origin: right bottom; + -moz-transform: rotate(0); + opacity: 1; + } + + 100% { + -moz-transform-origin: right bottom; + -moz-transform: rotate(-90deg); + opacity: 0; + } +} + +@-o-keyframes rotateOutDownRight { + 0% { + -o-transform-origin: right bottom; + -o-transform: rotate(0); + opacity: 1; + } + + 100% { + -o-transform-origin: right bottom; + -o-transform: rotate(-90deg); + opacity: 0; + } +} + +@keyframes rotateOutDownRight { + 0% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } + + 100% { + transform-origin: right bottom; + transform: rotate(-90deg); + opacity: 0; + } +} + +.rotateOutDownRight { + -webkit-animation-name: rotateOutDownRight; + -moz-animation-name: rotateOutDownRight; + -o-animation-name: rotateOutDownRight; + animation-name: rotateOutDownRight; +} +@-webkit-keyframes hinge { + 0% { -webkit-transform: rotate(0); -webkit-transform-origin: top left; -webkit-animation-timing-function: ease-in-out; } + 20%, 60% { -webkit-transform: rotate(80deg); -webkit-transform-origin: top left; -webkit-animation-timing-function: ease-in-out; } + 40% { -webkit-transform: rotate(60deg); -webkit-transform-origin: top left; -webkit-animation-timing-function: ease-in-out; } + 80% { -webkit-transform: rotate(60deg) translateY(0); opacity: 1; -webkit-transform-origin: top left; -webkit-animation-timing-function: ease-in-out; } + 100% { -webkit-transform: translateY(700px); opacity: 0; } +} + +@-moz-keyframes hinge { + 0% { -moz-transform: rotate(0); -moz-transform-origin: top left; -moz-animation-timing-function: ease-in-out; } + 20%, 60% { -moz-transform: rotate(80deg); -moz-transform-origin: top left; -moz-animation-timing-function: ease-in-out; } + 40% { -moz-transform: rotate(60deg); -moz-transform-origin: top left; -moz-animation-timing-function: ease-in-out; } + 80% { -moz-transform: rotate(60deg) translateY(0); opacity: 1; -moz-transform-origin: top left; -moz-animation-timing-function: ease-in-out; } + 100% { -moz-transform: translateY(700px); opacity: 0; } +} + +@-o-keyframes hinge { + 0% { -o-transform: rotate(0); -o-transform-origin: top left; -o-animation-timing-function: ease-in-out; } + 20%, 60% { -o-transform: rotate(80deg); -o-transform-origin: top left; -o-animation-timing-function: ease-in-out; } + 40% { -o-transform: rotate(60deg); -o-transform-origin: top left; -o-animation-timing-function: ease-in-out; } + 80% { -o-transform: rotate(60deg) translateY(0); opacity: 1; -o-transform-origin: top left; -o-animation-timing-function: ease-in-out; } + 100% { -o-transform: translateY(700px); opacity: 0; } +} + +@keyframes hinge { + 0% { transform: rotate(0); transform-origin: top left; animation-timing-function: ease-in-out; } + 20%, 60% { transform: rotate(80deg); transform-origin: top left; animation-timing-function: ease-in-out; } + 40% { transform: rotate(60deg); transform-origin: top left; animation-timing-function: ease-in-out; } + 80% { transform: rotate(60deg) translateY(0); opacity: 1; transform-origin: top left; animation-timing-function: ease-in-out; } + 100% { transform: translateY(700px); opacity: 0; } +} + +.hinge { + -webkit-animation-name: hinge; + -moz-animation-name: hinge; + -o-animation-name: hinge; + animation-name: hinge; +} +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes rollIn { + 0% { opacity: 0; -webkit-transform: translateX(-100%) rotate(-120deg); } + 100% { opacity: 1; -webkit-transform: translateX(0px) rotate(0deg); } +} + +@-moz-keyframes rollIn { + 0% { opacity: 0; -moz-transform: translateX(-100%) rotate(-120deg); } + 100% { opacity: 1; -moz-transform: translateX(0px) rotate(0deg); } +} + +@-o-keyframes rollIn { + 0% { opacity: 0; -o-transform: translateX(-100%) rotate(-120deg); } + 100% { opacity: 1; -o-transform: translateX(0px) rotate(0deg); } +} + +@keyframes rollIn { + 0% { opacity: 0; transform: translateX(-100%) rotate(-120deg); } + 100% { opacity: 1; transform: translateX(0px) rotate(0deg); } +} + +.rollIn { + -webkit-animation-name: rollIn; + -moz-animation-name: rollIn; + -o-animation-name: rollIn; + animation-name: rollIn; +} +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes rollOut { + 0% { + opacity: 1; + -webkit-transform: translateX(0px) rotate(0deg); + } + + 100% { + opacity: 0; + -webkit-transform: translateX(100%) rotate(120deg); + } +} + +@-moz-keyframes rollOut { + 0% { + opacity: 1; + -moz-transform: translateX(0px) rotate(0deg); + } + + 100% { + opacity: 0; + -moz-transform: translateX(100%) rotate(120deg); + } +} + +@-o-keyframes rollOut { + 0% { + opacity: 1; + -o-transform: translateX(0px) rotate(0deg); + } + + 100% { + opacity: 0; + -o-transform: translateX(100%) rotate(120deg); + } +} + +@keyframes rollOut { + 0% { + opacity: 1; + transform: translateX(0px) rotate(0deg); + } + + 100% { + opacity: 0; + transform: translateX(100%) rotate(120deg); + } +} + +.rollOut { + -webkit-animation-name: rollOut; + -moz-animation-name: rollOut; + -o-animation-name: rollOut; + animation-name: rollOut; +} + +/* originally authored by Angelo Rohit - https://github.com/angelorohit */ + +@-webkit-keyframes lightSpeedIn { + 0% { -webkit-transform: translateX(100%) skewX(-30deg); opacity: 0; } + 60% { -webkit-transform: translateX(-20%) skewX(30deg); opacity: 1; } + 80% { -webkit-transform: translateX(0%) skewX(-15deg); opacity: 1; } + 100% { -webkit-transform: translateX(0%) skewX(0deg); opacity: 1; } +} + +@-moz-keyframes lightSpeedIn { + 0% { -moz-transform: translateX(100%) skewX(-30deg); opacity: 0; } + 60% { -moz-transform: translateX(-20%) skewX(30deg); opacity: 1; } + 80% { -moz-transform: translateX(0%) skewX(-15deg); opacity: 1; } + 100% { -moz-transform: translateX(0%) skewX(0deg); opacity: 1; } +} + +@-o-keyframes lightSpeedIn { + 0% { -o-transform: translateX(100%) skewX(-30deg); opacity: 0; } + 60% { -o-transform: translateX(-20%) skewX(30deg); opacity: 1; } + 80% { -o-transform: translateX(0%) skewX(-15deg); opacity: 1; } + 100% { -o-transform: translateX(0%) skewX(0deg); opacity: 1; } +} + +@keyframes lightSpeedIn { + 0% { transform: translateX(100%) skewX(-30deg); opacity: 0; } + 60% { transform: translateX(-20%) skewX(30deg); opacity: 1; } + 80% { transform: translateX(0%) skewX(-15deg); opacity: 1; } + 100% { transform: translateX(0%) skewX(0deg); opacity: 1; } +} + +.lightSpeedIn { + -webkit-animation-name: lightSpeedIn; + -moz-animation-name: lightSpeedIn; + -o-animation-name: lightSpeedIn; + animation-name: lightSpeedIn; + + -webkit-animation-timing-function: ease-out; + -moz-animation-timing-function: ease-out; + -o-animation-timing-function: ease-out; + animation-timing-function: ease-out; +} + +.animated.lightSpeedIn { + -webkit-animation-duration: 0.5s; + -moz-animation-duration: 0.5s; + -o-animation-duration: 0.5s; + animation-duration: 0.5s; +} + +/* originally authored by Angelo Rohit - https://github.com/angelorohit */ + +@-webkit-keyframes lightSpeedOut { + 0% { -webkit-transform: translateX(0%) skewX(0deg); opacity: 1; } + 100% { -webkit-transform: translateX(100%) skewX(-30deg); opacity: 0; } +} + +@-moz-keyframes lightSpeedOut { + 0% { -moz-transform: translateX(0%) skewX(0deg); opacity: 1; } + 100% { -moz-transform: translateX(100%) skewX(-30deg); opacity: 0; } +} + +@-o-keyframes lightSpeedOut { + 0% { -o-transform: translateX(0%) skewX(0deg); opacity: 1; } + 100% { -o-transform: translateX(100%) skewX(-30deg); opacity: 0; } +} + +@keyframes lightSpeedOut { + 0% { transform: translateX(0%) skewX(0deg); opacity: 1; } + 100% { transform: translateX(100%) skewX(-30deg); opacity: 0; } +} + +.lightSpeedOut { + -webkit-animation-name: lightSpeedOut; + -moz-animation-name: lightSpeedOut; + -o-animation-name: lightSpeedOut; + animation-name: lightSpeedOut; + + -webkit-animation-timing-function: ease-in; + -moz-animation-timing-function: ease-in; + -o-animation-timing-function: ease-in; + animation-timing-function: ease-in; +} + +.animated.lightSpeedOut { + -webkit-animation-duration: 0.25s; + -moz-animation-duration: 0.25s; + -o-animation-duration: 0.25s; + animation-duration: 0.25s; +} + +/* originally authored by Angelo Rohit - https://github.com/angelorohit */ + +@-webkit-keyframes wiggle { + 0% { -webkit-transform: skewX(9deg); } + 10% { -webkit-transform: skewX(-8deg); } + 20% { -webkit-transform: skewX(7deg); } + 30% { -webkit-transform: skewX(-6deg); } + 40% { -webkit-transform: skewX(5deg); } + 50% { -webkit-transform: skewX(-4deg); } + 60% { -webkit-transform: skewX(3deg); } + 70% { -webkit-transform: skewX(-2deg); } + 80% { -webkit-transform: skewX(1deg); } + 90% { -webkit-transform: skewX(0deg); } + 100% { -webkit-transform: skewX(0deg); } +} + +@-moz-keyframes wiggle { + 0% { -moz-transform: skewX(9deg); } + 10% { -moz-transform: skewX(-8deg); } + 20% { -moz-transform: skewX(7deg); } + 30% { -moz-transform: skewX(-6deg); } + 40% { -moz-transform: skewX(5deg); } + 50% { -moz-transform: skewX(-4deg); } + 60% { -moz-transform: skewX(3deg); } + 70% { -moz-transform: skewX(-2deg); } + 80% { -moz-transform: skewX(1deg); } + 90% { -moz-transform: skewX(0deg); } + 100% { -moz-transform: skewX(0deg); } +} + +@-o-keyframes wiggle { + 0% { -o-transform: skewX(9deg); } + 10% { -o-transform: skewX(-8deg); } + 20% { -o-transform: skewX(7deg); } + 30% { -o-transform: skewX(-6deg); } + 40% { -o-transform: skewX(5deg); } + 50% { -o-transform: skewX(-4deg); } + 60% { -o-transform: skewX(3deg); } + 70% { -o-transform: skewX(-2deg); } + 80% { -o-transform: skewX(1deg); } + 90% { -o-transform: skewX(0deg); } + 100% { -o-transform: skewX(0deg); } +} + +@keyframes wiggle { + 0% { transform: skewX(9deg); } + 10% { transform: skewX(-8deg); } + 20% { transform: skewX(7deg); } + 30% { transform: skewX(-6deg); } + 40% { transform: skewX(5deg); } + 50% { transform: skewX(-4deg); } + 60% { transform: skewX(3deg); } + 70% { transform: skewX(-2deg); } + 80% { transform: skewX(1deg); } + 90% { transform: skewX(0deg); } + 100% { transform: skewX(0deg); } +} + +.wiggle { + -webkit-animation-name: wiggle; + -moz-animation-name: wiggle; + -o-animation-name: wiggle; + animation-name: wiggle; + + -webkit-animation-timing-function: ease-in; + -moz-animation-timing-function: ease-in; + -o-animation-timing-function: ease-in; + animation-timing-function: ease-in; +} + +.animated.wiggle { + -webkit-animation-duration: 0.75s; + -moz-animation-duration: 0.75s; + -o-animation-duration: 0.75s; + animation-duration: 0.75s; +} diff --git a/mall-master/src/main/resources/static/css/blog.css b/mall-master/src/main/resources/static/css/blog.css new file mode 100644 index 0000000..b1f8e74 --- /dev/null +++ b/mall-master/src/main/resources/static/css/blog.css @@ -0,0 +1,163 @@ +/*** +Blog Page +***/ + +/*--Block Article--*/ +.blog-page { + padding-bottom: 20px; +} + +.blog-page h1 { + margin-bottom: 20px; +} + +.blog-page h2 a { + color: #000; +} + +.blog-page h2 a:hover { + color: #0d638f; + text-decoration: none; +} + +.blog-page hr { + margin-top: 30px !important; +} + +.blog-page .article-block { + padding-bottom: 20px; +} + +.blog-page .news-img img { + margin-top: 9px; +} + +.blog-page .blog-tag-data ul { + margin-bottom: 5px; +} + +.blog-page .blog-tag-data li { + padding: 0; +} + +.blog-page .blog-tag-data li i { + color: #78cff8; +} + +.blog-page .blog-tag-data li a { + padding: 0; + color: #555; + margin-right: 8px; +} + +.blog-page .blog-tag-data { + margin-bottom: 10px; +} + +.blog-page .blog-tag-data ul.blog-tags a { + background: #eee; + padding: 1px 4px; + margin: 0 4px 4px 0; + display: inline-block; +} + +.blog-page .blog-tag-data ul.blog-tags a:hover { + background: #ddd; + text-decoration: none; +} + +.blog-page .blog-tag-data .blog-tag-data-inner { + text-align: right; +} + +.blog-page .blog-tag-data img { + margin-bottom: 12px; +} + +.blog-page .blog-article { + padding-bottom: 20px; +} + +.blog-page .blog-article h2 { + margin-top: 0; +} + +/*--Block Sidebar--*/ +.blog-sidebar h2 { + font-size: 38.5px; + margin-bottom: 20px; +} + +/*Twitter block*/ +.blog-twitter-block { + padding: 5px; + position: relative; + margin-bottom: 10px; + border-right: solid 2px #ddd; +} + +.blog-twitter-block:hover { + background: #fafafa; + border-color: #35aa47; +} + +.blog-twitter-block a { + color: #4d90fe; +} + +.blog-twitter-block p { + margin-bottom: 0; +} + +.blog-twitter-block span { + color: #555; + display: block; + font-size: 12px; +} + +.blog-twitter-block i.blog-twiiter-icon { + color: #eee; + right: 10px; + bottom: 10px; + font-size: 30px; + position: absolute; +} + +/*** +Blog & News Item Page +***/ +/*--Media Object--*/ +.blog-page .media img { + height: 54px; + position: relative; + top: 3px; + width: 54px; +} + +.blog-page h4.media-heading { + position: relative; +} + +.blog-page h4.media-heading span { + color: #777777; + font-size: 12px; + position: absolute; + right: 0; + top: 3px; +} + +.blog-page h4.media-heading span a { + color: #78cff8; +} + +/*Post Comment*/ +.blog-page .post-comment .color-red { + color: #f00; +} + +/*For Responsive*/ +@media (max-width: 768px) { + .blog-page .blog-tag-data .blog-tag-data-inner { + text-align: left; + } +} \ No newline at end of file diff --git a/mall-master/src/main/resources/static/css/blue.css b/mall-master/src/main/resources/static/css/blue.css new file mode 100644 index 0000000..35f1295 --- /dev/null +++ b/mall-master/src/main/resources/static/css/blue.css @@ -0,0 +1,287 @@ +/*** +Blue theme +***/ +/*** +Reset and overrides +***/ +body { + background-color: #1570a6 !important; +} +/*** +Page header +***/ +.header .navbar-inner { + filter: none !important; + background-image: none !important; + background-color: #0f4e74 !important; +} +.header .btn-navbar { + background-color: #0f4e74 !important; +} +.header .nav .dropdown-toggle:hover, +.header .nav .dropdown.open .dropdown-toggle { + background-color: #146a9d !important; +} +.header .nav li.dropdown .dropdown-toggle i { + color: #68bbec !important; +} +/*** +Page sidebar +***/ +.page-sidebar { + background-color: #1570a6; +} +ul.page-sidebar-menu > li > a { + border-top: 1px solid #1c95dc !important; + color: #ffffff !important; +} +ul.page-sidebar-menu > li:last-child > a { + border-bottom: 1px solid transparent !important; +} +ul.page-sidebar-menu > li a i { + color: #7fc5ef; +} +ul.page-sidebar-menu > li.open > a, +ul.page-sidebar-menu > li > a:hover, +ul.page-sidebar-menu > li:hover > a { + background: #12618f; +} +ul.page-sidebar-menu > li.active > a { + background: #cc1d1d !important; + border-top-color: transparent !important; + color: #ffffff; +} +ul.page-sidebar-menu > li.active > a i { + color: #ffffff; +} +ul.page-sidebar-menu > li > ul.sub-menu > li:first-child > a { + border-top: 0px !important; +} +ul.page-sidebar-menu > li > ul.sub-menu > li.active > a, +ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { + color: #ffffff !important; + background: #1b8fd3 !important; +} +ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { + background: #1b8fd3 !important; +} +/* 3rd level sub menu */ +ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li.active > a, +ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li > a:hover, +ul.page-sidebar-menu > li > ul.sub-menu li.open > a { + color: #ffffff !important; + background: #1b8fd3 !important; +} +/* font color for all sub menu links*/ +ul.page-sidebar-menu li > ul.sub-menu > li > a { + color: #c3e4f7; +} +/* menu arrows */ +ul.page-sidebar-menu > li > a .arrow:before, +ul.page-sidebar-menu > li > a .arrow.open:before { + color: #51b1e9 !important; +} +ul.page-sidebar-menu > li > ul.sub-menu a .arrow:before, +ul.page-sidebar-menu > li > ul.sub-menu a .arrow.open:before { + color: #3ba6e6 !important; +} +ul.page-sidebar-menu > li > a > .arrow.open:before { + color: #68bbec !important; +} +ul.page-sidebar-menu > li.active > a .arrow:before, +ul.page-sidebar-menu > li.active > a .arrow.open:before { + color: #ffffff !important; +} +/* sidebar search */ +.page-sidebar .sidebar-search input { + background-color: #0f5179 !important; + color: #51b1e9; +} +.page-sidebar .sidebar-search input::-webkit-input-placeholder { + color: #51b1e9 !important; +} +.page-sidebar .sidebar-search input:-moz-placeholder { + color: #51b1e9 !important; +} +.page-sidebar .sidebar-search input:-ms-input-placeholder { + color: #51b1e9 !important; +} +.page-sidebar .sidebar-search input { + background-color: #1570a6 !important; + color: #bfbfbf !important; +} +.page-sidebar .sidebar-search .input-box { + border-bottom: 1px solid #51b1e9 !important; +} +.page-sidebar .sidebar-search .submit { + background-image: url(../../img/search-icon-blue.png); +} +/*** +Sidebar toggler +***/ +.sidebar-toggler { + background-image: url(../../img/sidebar-toggler-blue.jpg); + background-color: #0f5179; +} +/* search box bg color on expanded */ +.page-sidebar-closed .page-sidebar .sidebar-search.open { + background-color: #1570a6 !important; +} +.page-sidebar-closed .page-sidebar .sidebar-search.open .remove { + background-image: url("../../img/sidebar-search-close-blue.png"); +} +/* sub menu bg color on hover menu item */ +.page-sidebar-closed ul.page-sidebar-menu > li:hover .sub-menu { + background-color: #1570a6; +} +/*** +Horizontal Menu(new in v1.2) +***/ +/*search*/ +.header .hor-menu .hor-menu-search-form-toggler.hide { + background: #000000 url(../../img/hor-menu-search-close.png) no-repeat center; +} +.header .hor-menu .search-form { + background: #000000; +} +.header .hor-menu .search-form .btn { + color: #f0f8fd; + background: #04141e url(../../img/search-icon.png) no-repeat center; +} +.header .hor-menu .search-form form input { + color: #f0f8fd; +} +.header .hor-menu .search-form form input::-webkit-input-placeholder { + /* WebKit browsers */ + + color: #f0f8fd; +} +.header .hor-menu .search-form form input:-moz-placeholder { + /* Mozilla Firefox 4 to 18 */ + + color: #f0f8fd; +} +.header .hor-menu .search-form form input::-moz-placeholder { + /* Mozilla Firefox 19+ */ + + color: #f0f8fd; +} +.header .hor-menu .search-form form input:-ms-input-placeholder { + /* Internet Explorer 10+ */ + + color: #f0f8fd; +} +/*** +Footer +***/ +.footer .footer-inner { + color: #68bbec; +} +.footer .footer-tools .go-top { + background-color: #1985c6; +} +.footer .footer-tools .go-top:hover { + opacity: 0.7; + filter: alpha(opacity=70); +} +.footer .footer-tools .go-top i { + color: #68bbec; +} +/*** +Footer Layouts (new in v1.3) +***/ +/* begin:fixed footer */ +.page-footer-fixed .footer { + background-color: #0f5179; +} +.page-footer-fixed .footer .footer-inner { + color: #68bbec; +} +.page-footer-fixed .footer .footer-tools .go-top { + background-color: #1985c6; +} +.page-footer-fixed .footer .footer-tools .go-top i { + color: #68bbec; +} +/* end:fixed footer */ +/*** +Gritter Notifications +***/ +.gritter-top { + background: url(../../plugins/gritter/images/gritter-blue.png) no-repeat left -30px !important; +} +.gritter-bottom { + background: url(../../plugins/gritter/images/gritter-blue.png) no-repeat left bottom !important; +} +.gritter-item { + display: block; + background: url(../../plugins/gritter/images/gritter-blue.png) no-repeat left -40px !important; +} +.gritter-close { + background: url(../../plugins/gritter/images/gritter-blue.png) no-repeat left top !important; +} +.gritter-title { + text-shadow: none !important; + /* Not supported by IE :( */ + +} +/* for the light (white) version of the gritter notice */ +.gritter-light .gritter-item, +.gritter-light .gritter-bottom, +.gritter-light .gritter-top, +.gritter-light .gritter-close { + background-image: url(../../plugins/gritter/images/gritter-light.png) !important; +} +.gritter-item-wrapper a { + color: #18a5ed; +} +.gritter-item-wrapper a:hover { + color: #0b6694; +} +/* begin: boxed page */ +@media (min-width: 980px) { + .page-boxed { + background-color: #125e8b !important; + } + .page-boxed .page-container { + background-color: #1570a6; + border-left: 1px solid #1c98e1; + border-bottom: 1px solid #1c98e1; + } + .page-boxed.page-sidebar-fixed .page-container { + border-left: 0; + border-bottom: 0; + } + .page-boxed.page-sidebar-fixed .page-sidebar { + border-left: 1px solid #1c98e1; + } + .page-boxed.page-sidebar-fixed.page-footer-fixed .footer { + background-color: #125e8b !important; + } +} +/* end: boxed page */ +/*** +Landscape phone to portrait tablet +***/ +@media (max-width: 979px) { + /*** + page sidebar + ***/ + .page-sidebar { + background-color: #105882 !important; + } + ul.page-sidebar-menu > li > a { + border-top: 1px solid #187fbd !important; + } + ul.page-sidebar-menu > li:last-child > a { + border-bottom: 0 !important; + } + .page-sidebar .sidebar-search input { + background-color: #105882 !important; + } + ul.page-sidebar-menu > li.open > a, + ul.page-sidebar-menu > li > a:hover, + ul.page-sidebar-menu > li:hover > a { + background: #0e4b70; + } +} diff --git a/mall-master/src/main/resources/static/css/bootstrap-fileupload.css b/mall-master/src/main/resources/static/css/bootstrap-fileupload.css new file mode 100644 index 0000000..76cf76e --- /dev/null +++ b/mall-master/src/main/resources/static/css/bootstrap-fileupload.css @@ -0,0 +1,116 @@ +.btn-file { + position: relative; + overflow: hidden; + vertical-align: middle; +} + +.btn-file > input { + position: absolute; + top: 0; + right: 0; + margin: 0; + font-size: 23px; + cursor: pointer; + opacity: 0; + filter: alpha(opacity=0); + transform: translate(-300px, 0) scale(4); + direction: ltr; +} + +.fileupload { + margin-bottom: 9px; +} + +.fileupload .uneditable-input { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + cursor: text; +} + +.fileupload .thumbnail { + display: inline-block; + margin-bottom: 5px; + overflow: hidden; + text-align: center; + vertical-align: middle; +} + +.fileupload .thumbnail > img { + display: inline-block; + max-height: 100%; + vertical-align: middle; +} + +.fileupload .btn { + vertical-align: middle; +} + +.fileupload-exists .fileupload-new, +.fileupload-new .fileupload-exists { + display: none; +} + +.fileupload-inline .fileupload-controls { + display: inline; +} + +.fileupload-new .input-append .btn-file { + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} + +.thumbnail-borderless .thumbnail { + padding: 0; + border: none; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.fileupload-new.thumbnail-borderless .thumbnail { + border: 1px solid #ddd; +} + +.control-group.warning .fileupload .uneditable-input { + color: #a47e3c; + border-color: #a47e3c; +} + +.control-group.warning .fileupload .fileupload-preview { + color: #a47e3c; +} + +.control-group.warning .fileupload .thumbnail { + border-color: #a47e3c; +} + +.control-group.error .fileupload .uneditable-input { + color: #b94a48; + border-color: #b94a48; +} + +.control-group.error .fileupload .fileupload-preview { + color: #b94a48; +} + +.control-group.error .fileupload .thumbnail { + border-color: #b94a48; +} + +.control-group.success .fileupload .uneditable-input { + color: #468847; + border-color: #468847; +} + +.control-group.success .fileupload .fileupload-preview { + color: #468847; +} + +.control-group.success .fileupload .thumbnail { + border-color: #468847; +} diff --git a/mall-master/src/main/resources/static/css/bootstrap-modal.css b/mall-master/src/main/resources/static/css/bootstrap-modal.css new file mode 100644 index 0000000..76e3be2 --- /dev/null +++ b/mall-master/src/main/resources/static/css/bootstrap-modal.css @@ -0,0 +1,214 @@ +/*! + * Bootstrap Modal + * + * Copyright Jordan Schroter + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + */ + +.modal-open { + overflow: hidden; +} + + +/* add a scroll bar to stop page from jerking around */ +.modal-open.page-overflow .page-container, +.modal-open.page-overflow .page-container .navbar-fixed-top, +.modal-open.page-overflow .page-container .navbar-fixed-bottom, +.modal-open.page-overflow .modal-scrollable { + overflow-y: scroll; +} + +@media (max-width: 979px) { + .modal-open.page-overflow .page-container .navbar-fixed-top, + .modal-open.page-overflow .page-container .navbar-fixed-bottom { + overflow-y: visible; + } +} + + +.modal-scrollable { + position: fixed; + top: 0; + bottom: 0; + left: 0; + right: 0; + overflow: auto; +} + +.modal { + outline: none; + position: absolute; + margin-top: 0; + top: 50%; + overflow: visible; /* allow content to popup out (i.e tooltips) */ +} + +.modal.fade { + top: -100%; + -webkit-transition: opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out; + -moz-transition: opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out; + -o-transition: opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out; + transition: opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out; +} + +.modal.fade.in { + top: 50%; +} + +.modal-body { + max-height: none; + overflow: visible; +} + +.modal.modal-absolute { + position: absolute; + z-index: 950; +} + +.modal .loading-mask { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + background: #fff; + border-radius: 6px; +} + +.modal-backdrop.modal-absolute{ + position: absolute; + z-index: 940; +} + +.modal-backdrop, +.modal-backdrop.fade.in{ + opacity: 0.7; + filter: alpha(opacity=70); + background: #fff; +} + +.modal.container { + width: 940px; + margin-left: -470px; +} + +/* Modal Overflow */ + +.modal-overflow.modal { + top: 1%; +} + +.modal-overflow.modal.fade { + top: -100%; +} + +.modal-overflow.modal.fade.in { + top: 1%; +} + +.modal-overflow .modal-body { + overflow: auto; + -webkit-overflow-scrolling: touch; +} + +/* Responsive */ + +@media (min-width: 1200px) { + .modal.container { + width: 1170px; + margin-left: -585px; + } +} + +@media (max-width: 979px) { + .modal, + .modal.container, + .modal.modal-overflow { + top: 1%; + right: 1%; + left: 1%; + bottom: auto; + width: auto !important; + height: auto !important; + margin: 0 !important; + padding: 0 !important; + } + + .modal.fade.in, + .modal.container.fade.in, + .modal.modal-overflow.fade.in { + top: 1%; + bottom: auto; + } + + .modal-body, + .modal-overflow .modal-body { + position: static; + margin: 0; + height: auto !important; + max-height: none !important; + overflow: visible !important; + } + + .modal-footer, + .modal-overflow .modal-footer { + position: static; + } +} + +.loading-spinner { + position: absolute; + top: 50%; + left: 50%; + margin: -12px 0 0 -12px; +} + +/* +Animate.css - http://daneden.me/animate +Licensed under the ☺ license (http://licence.visualidiot.com/) + +Copyright (c) 2012 Dan Eden*/ + +.animated { + -webkit-animation-duration: 1s; + -moz-animation-duration: 1s; + -o-animation-duration: 1s; + animation-duration: 1s; + -webkit-animation-fill-mode: both; + -moz-animation-fill-mode: both; + -o-animation-fill-mode: both; + animation-fill-mode: both; +} + +@-webkit-keyframes shake { + 0%, 100% {-webkit-transform: translateX(0);} + 10%, 30%, 50%, 70%, 90% {-webkit-transform: translateX(-10px);} + 20%, 40%, 60%, 80% {-webkit-transform: translateX(10px);} +} + +@-moz-keyframes shake { + 0%, 100% {-moz-transform: translateX(0);} + 10%, 30%, 50%, 70%, 90% {-moz-transform: translateX(-10px);} + 20%, 40%, 60%, 80% {-moz-transform: translateX(10px);} +} + +@-o-keyframes shake { + 0%, 100% {-o-transform: translateX(0);} + 10%, 30%, 50%, 70%, 90% {-o-transform: translateX(-10px);} + 20%, 40%, 60%, 80% {-o-transform: translateX(10px);} +} + +@keyframes shake { + 0%, 100% {transform: translateX(0);} + 10%, 30%, 50%, 70%, 90% {transform: translateX(-10px);} + 20%, 40%, 60%, 80% {transform: translateX(10px);} +} + +.shake { + -webkit-animation-name: shake; + -moz-animation-name: shake; + -o-animation-name: shake; + animation-name: shake; +} diff --git a/mall-master/src/main/resources/static/css/bootstrap-responsive.min.css b/mall-master/src/main/resources/static/css/bootstrap-responsive.min.css new file mode 100644 index 0000000..d1b7f4b --- /dev/null +++ b/mall-master/src/main/resources/static/css/bootstrap-responsive.min.css @@ -0,0 +1,9 @@ +/*! + * Bootstrap Responsive v2.3.1 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@-ms-viewport{width:device-width}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}.visible-desktop{display:inherit!important}@media(min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}}@media(max-width:767px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-phone{display:inherit!important}.hidden-phone{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:inherit!important}.hidden-print{display:none!important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.media .pull-left,.media .pull-right{display:block;float:none;margin-bottom:10px}.media-object{margin-right:0;margin-left:0}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:none;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .open>.dropdown-menu{display:block}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}} diff --git a/mall-master/src/main/resources/static/css/bootstrap-responsive1.min.css b/mall-master/src/main/resources/static/css/bootstrap-responsive1.min.css new file mode 100644 index 0000000..e69de29 diff --git a/mall-master/src/main/resources/static/css/bootstrap-tag.css b/mall-master/src/main/resources/static/css/bootstrap-tag.css new file mode 100644 index 0000000..42c95d3 --- /dev/null +++ b/mall-master/src/main/resources/static/css/bootstrap-tag.css @@ -0,0 +1,94 @@ +.tags { + display: inline-block; + padding: 4px 6px; + margin-bottom: 10px; + color: #555555; + vertical-align: middle; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + background-color: #ffffff; + border: 1px solid #cccccc; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border linear .2s, box-shadow linear .2s; + -moz-transition: border linear .2s, box-shadow linear .2s; + -o-transition: border linear .2s, box-shadow linear .2s; + transition: border linear .2s, box-shadow linear .2s; + width: 206px; +} +.tags-hover { + border-color: rgba(82, 168, 236, 0.8); + outline: 0; + outline: thin dotted \9; + /* IE6-9 */ + + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6); + -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6); +} +.tags[class*="span"] { + float: none; + margin-left: 0; +} +.tags input[type="text"], +.tags input[type="text"]:focus { + border: none; + display: inline; + outline: 0; + margin: 0; + padding: 0; + font-size: 11.844px; + line-height: 14px; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + width: 100%; +} +.tag { + display: inline-block; + padding: 2px 4px; + font-size: 11.844px; + font-weight: bold; + line-height: 14px; + color: #ffffff; + vertical-align: baseline; + white-space: nowrap; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #999999; + padding-left: 9px; + padding-right: 9px; + -webkit-border-radius: 9px; + -moz-border-radius: 9px; + border-radius: 9px; + margin-bottom: 5px; + margin-right: 5px; + -webkit-transition: all 0.2s; + -moz-transition: all 0.2s; + -o-transition: all 0.2s; + transition: all 0.2s; +} +.tag:empty { + display: none; +} +.tag-important { + background-color: #953b39; +} +.tag-warning { + background-color: #c67605; +} +.tag-success { + background-color: #356635; +} +.tag-info { + background-color: #2d6987; +} +.tag-inverse { + background-color: #1a1a1a; +} +.tag .close { + font-size: 14px; + line-height: 14px; + margin-left: 7px; +} diff --git a/mall-master/src/main/resources/static/css/bootstrap-toggle-buttons.css b/mall-master/src/main/resources/static/css/bootstrap-toggle-buttons.css new file mode 100644 index 0000000..8793bcc --- /dev/null +++ b/mall-master/src/main/resources/static/css/bootstrap-toggle-buttons.css @@ -0,0 +1,155 @@ +/* line 11, ../sass/bootstrap-toggle-buttons.scss */ +.toggle-button { + display: inline-block; + cursor: pointer; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + border: 1px solid; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + position: relative; + text-align: left; + overflow: hidden; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +/* line 29, ../sass/bootstrap-toggle-buttons.scss */ +.toggle-button.deactivate { + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50); + opacity: 0.5; + cursor: default !important; +} +/* line 32, ../sass/bootstrap-toggle-buttons.scss */ +.toggle-button.deactivate label, .toggle-button.deactivate span { + cursor: default !important; +} +/* line 36, ../sass/bootstrap-toggle-buttons.scss */ +.toggle-button > div { + display: inline-block; + width: 150px; + position: absolute; + top: 0; +} +/* line 41, ../sass/bootstrap-toggle-buttons.scss */ +.toggle-button > div.disabled { + left: -50%; +} +/* line 45, ../sass/bootstrap-toggle-buttons.scss */ +.toggle-button input[type=checkbox] { + display: none; +} +/* line 53, ../sass/bootstrap-toggle-buttons.scss */ +.toggle-button span, .toggle-button label { + cursor: pointer; + position: relative; + float: left; + display: inline-block; +} +/* line 60, ../sass/bootstrap-toggle-buttons.scss */ +.toggle-button label { + background: #fefefe; + margin-left: -4px; + margin-right: -4px; + border: 1px solid #E6E6E6; + margin-top: -1px; + z-index: 100; + background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #fefefe), color-stop(100%, #e6e6e6)); + background-image: -webkit-linear-gradient(top, #fefefe, #e6e6e6); + background-image: -moz-linear-gradient(top, #fefefe, #e6e6e6); + background-image: -o-linear-gradient(top, #fefefe, #e6e6e6); + background-image: linear-gradient(top, #fefefe, #e6e6e6); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + -ms-border-radius: 4px; + -o-border-radius: 4px; + border-radius: 4px; +} +/* line 72, ../sass/bootstrap-toggle-buttons.scss */ +.toggle-button span { + color: #fefefe; + text-align: center; + font-weight: bold; + z-index: 1; +} +/* line 78, ../sass/bootstrap-toggle-buttons.scss */ +.toggle-button span.labelLeft { + -moz-border-radius-topleft: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + padding-left: 3px; +} +/* line 83, ../sass/bootstrap-toggle-buttons.scss */ +.toggle-button span.labelRight { + -moz-border-radius-topright: 4px; + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-bottomright: 4px; + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + color: black; + background-image: -webkit-gradient(linear, 50% 100%, 50% 0%, color-stop(0%, #fefefe), color-stop(100%, #e6e6e6)); + background-image: -webkit-linear-gradient(bottom, #fefefe, #e6e6e6); + background-image: -moz-linear-gradient(bottom, #fefefe, #e6e6e6); + background-image: -o-linear-gradient(bottom, #fefefe, #e6e6e6); + background-image: linear-gradient(bottom, #fefefe, #e6e6e6); + padding-right: 3px; +} +/* line 91, ../sass/bootstrap-toggle-buttons.scss */ +.toggle-button span.primary, .toggle-button span.labelLeft { + color: #fefefe; + background: #0088cc; + background-image: -webkit-gradient(linear, 50% 100%, 50% 0%, color-stop(0%, #0088cc), color-stop(100%, #0055cc)); + background-image: -webkit-linear-gradient(bottom, #0088cc, #0055cc); + background-image: -moz-linear-gradient(bottom, #0088cc, #0055cc); + background-image: -o-linear-gradient(bottom, #0088cc, #0055cc); + background-image: linear-gradient(bottom, #0088cc, #0055cc); +} +/* line 96, ../sass/bootstrap-toggle-buttons.scss */ +.toggle-button span.info { + color: #fefefe; + background: #5bc0de; + background-image: -webkit-gradient(linear, 50% 100%, 50% 0%, color-stop(0%, #5bc0de), color-stop(100%, #2f96b4)); + background-image: -webkit-linear-gradient(bottom, #5bc0de, #2f96b4); + background-image: -moz-linear-gradient(bottom, #5bc0de, #2f96b4); + background-image: -o-linear-gradient(bottom, #5bc0de, #2f96b4); + background-image: linear-gradient(bottom, #5bc0de, #2f96b4); +} +/* line 102, ../sass/bootstrap-toggle-buttons.scss */ +.toggle-button span.success { + color: #fefefe; + background: #62c462; + background-image: -webkit-gradient(linear, 50% 100%, 50% 0%, color-stop(0%, #62c462), color-stop(100%, #51a351)); + background-image: -webkit-linear-gradient(bottom, #62c462, #51a351); + background-image: -moz-linear-gradient(bottom, #62c462, #51a351); + background-image: -o-linear-gradient(bottom, #62c462, #51a351); + background-image: linear-gradient(bottom, #62c462, #51a351); +} +/* line 108, ../sass/bootstrap-toggle-buttons.scss */ +.toggle-button span.warning { + color: #fefefe; + background: #dbb450; + background-image: -webkit-gradient(linear, 50% 100%, 50% 0%, color-stop(0%, #dbb450), color-stop(100%, #f89406)); + background-image: -webkit-linear-gradient(bottom, #dbb450, #f89406); + background-image: -moz-linear-gradient(bottom, #dbb450, #f89406); + background-image: -o-linear-gradient(bottom, #dbb450, #f89406); + background-image: linear-gradient(bottom, #dbb450, #f89406); +} +/* line 114, ../sass/bootstrap-toggle-buttons.scss */ +.toggle-button span.danger { + color: #fefefe; + background: #ee5f5b; + background-image: -webkit-gradient(linear, 50% 100%, 50% 0%, color-stop(0%, #ee5f5b), color-stop(100%, #bd362f)); + background-image: -webkit-linear-gradient(bottom, #ee5f5b, #bd362f); + background-image: -moz-linear-gradient(bottom, #ee5f5b, #bd362f); + background-image: -o-linear-gradient(bottom, #ee5f5b, #bd362f); + background-image: linear-gradient(bottom, #ee5f5b, #bd362f); +} diff --git a/mall-master/src/main/resources/static/css/bootstrap-tree.css b/mall-master/src/main/resources/static/css/bootstrap-tree.css new file mode 100644 index 0000000..a6734a9 --- /dev/null +++ b/mall-master/src/main/resources/static/css/bootstrap-tree.css @@ -0,0 +1,60 @@ +/*! + * Bootstrap Tree v0.3 + * + * Copyright 2012 Cutters Crossing + * Bootstrap is Copyright 2012 Twitter, Inc. + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world by @cutterbl. + */ + +.tree, +.branch { + list-style: none outside none; +} +.branch { + postion: relative; + height: 0; + margin: 0 0 0 15px; + overflow: hidden; +} +.branch.in { + height: auto; +} + +a:link, +a:visited, +a:hover, +a:active { + color: #000; + text-decoration: none; +} + +a:hover { + text-decoration: underline; + cursor: pointer; +} +/* Work in progress */ +a.tree-toggle-icon-only { + height: 16px; + width: 20px; + line-height: 16px; + vertical-align: middle; + display: inline-block; + background: url("../image/bstree-halflings.png") no-repeat; + background-position: 0 -22px; +} + +a.tree-toggle { + height: 16px; + padding-left: 20px; + line-height: 16px; + vertical-align: middle; + display: inline-block; + background: url("../image/bstree-halflings.png") no-repeat; + background-position: 0 -22px; +} +a.tree-toggle.closed, a.tree-toggle-icon-only.closed { + background-position: 0 1px; +} \ No newline at end of file diff --git a/mall-master/src/main/resources/static/css/bootstrap-wysihtml5.css b/mall-master/src/main/resources/static/css/bootstrap-wysihtml5.css new file mode 100644 index 0000000..44ed777 --- /dev/null +++ b/mall-master/src/main/resources/static/css/bootstrap-wysihtml5.css @@ -0,0 +1,102 @@ +ul.wysihtml5-toolbar { + margin: 0; + padding: 0; + display: block; +} + +ul.wysihtml5-toolbar::after { + clear: both; + display: table; + content: ""; +} + +ul.wysihtml5-toolbar > li { + float: left; + display: list-item; + list-style: none; + margin: 0 5px 10px 0; +} + +ul.wysihtml5-toolbar a[data-wysihtml5-command=bold] { + font-weight: bold; +} + +ul.wysihtml5-toolbar a[data-wysihtml5-command=italic] { + font-style: italic; +} + +ul.wysihtml5-toolbar a[data-wysihtml5-command=underline] { + text-decoration: underline; +} + +ul.wysihtml5-toolbar a.btn.wysihtml5-command-active { + background-image: none; + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05); + background-color: #E6E6E6; + background-color: #D9D9D9; + outline: 0; +} + +ul.wysihtml5-commands-disabled .dropdown-menu { + display: none !important; +} + +ul.wysihtml5-toolbar div.wysihtml5-colors { + display:block; + width: 50px; + height: 20px; + margin-top: 2px; + margin-left: 5px; + position: absolute; + pointer-events: none; +} + +ul.wysihtml5-toolbar a.wysihtml5-colors-title { + padding-left: 70px; +} + +ul.wysihtml5-toolbar div[data-wysihtml5-command-value="black"] { + background: black !important; +} + +ul.wysihtml5-toolbar div[data-wysihtml5-command-value="silver"] { + background: silver !important; +} + +ul.wysihtml5-toolbar div[data-wysihtml5-command-value="gray"] { + background: gray !important; +} + +ul.wysihtml5-toolbar div[data-wysihtml5-command-value="maroon"] { + background: maroon !important; +} + +ul.wysihtml5-toolbar div[data-wysihtml5-command-value="red"] { + background: red !important; +} + +ul.wysihtml5-toolbar div[data-wysihtml5-command-value="purple"] { + background: purple !important; +} + +ul.wysihtml5-toolbar div[data-wysihtml5-command-value="green"] { + background: green !important; +} + +ul.wysihtml5-toolbar div[data-wysihtml5-command-value="olive"] { + background: olive !important; +} + +ul.wysihtml5-toolbar div[data-wysihtml5-command-value="navy"] { + background: navy !important; +} + +ul.wysihtml5-toolbar div[data-wysihtml5-command-value="blue"] { + background: blue !important; +} + +ul.wysihtml5-toolbar div[data-wysihtml5-command-value="orange"] { + background: orange !important; +} diff --git a/mall-master/src/main/resources/static/css/bootstrap.min.css b/mall-master/src/main/resources/static/css/bootstrap.min.css new file mode 100644 index 0000000..f7323e1 --- /dev/null +++ b/mall-master/src/main/resources/static/css/bootstrap.min.css @@ -0,0 +1,9 @@ +/*! + * Bootstrap v2.3.1 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover,a:focus{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover,a.muted:focus{color:#808080}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-error{color:#b94a48}a.text-error:hover,a.text-error:focus{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;padding-right:5px;padding-left:5px;*zoom:1}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:20px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{display:inline-block;margin-bottom:10px;font-size:0;white-space:nowrap;vertical-align:middle}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success>td{background-color:#dff0d8}.table tbody tr.error>td{background-color:#f2dede}.table tbody tr.warning>td{background-color:#fcf8e3}.table tbody tr.info>td{background-color:#d9edf7}.table-hover tbody tr.success:hover>td{background-color:#d0e9c6}.table-hover tbody tr.error:hover>td{background-color:#ebcccc}.table-hover tbody tr.warning:hover>td{background-color:#faf2cc}.table-hover tbody tr.info:hover>td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../image/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:focus>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:focus>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class*=" icon-"]{background-image:url("../image/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{width:16px;background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open{*z-index:1000}.open>.dropdown-menu{display:block}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover,.btn:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;*background-color:#04c;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary:active,.btn-primary.active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;*background-color:#222;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#08c;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover,.btn-link:focus{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px}.btn-group>.btn-mini{font-size:10.5px}.btn-group>.btn-small{font-size:11.9px}.btn-group>.btn-large{font-size:17.5px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.btn-mini .caret,.btn-small .caret{margin-top:8px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success h4{color:#468847}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info h4{color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px;color:#777}.navbar-link{color:#777}.navbar-link:hover,.navbar-link:focus{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,0.1);box-shadow:0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;*background-color:#e5e5e5;background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#555;background-color:#e5e5e5}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff111111',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#fff}.navbar-inverse .brand{color:#999}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#222;border-left-color:#111}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#111}.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;*background-color:#040404;background-image:-moz-linear-gradient(top,#151515,#040404);background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515',endColorstr='#ff040404',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb>li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px}.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:default;background-color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;outline:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:10%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-title:empty{display:none}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover,a.thumbnail:focus{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.media,.media-body{overflow:hidden;*overflow:visible;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{margin-left:0;list-style:none}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.label:empty,.badge:empty{display:none}a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255,255,255,0.25);border-radius:5px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit li{line-height:30px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed} diff --git a/mall-master/src/main/resources/static/css/brown.css b/mall-master/src/main/resources/static/css/brown.css new file mode 100644 index 0000000..dd6c1e3 --- /dev/null +++ b/mall-master/src/main/resources/static/css/brown.css @@ -0,0 +1,287 @@ +/*** +Brown theme +***/ +/*** +Reset and overrides +***/ +body { + background-color: #623f18 !important; +} +/*** +Page header +***/ +.header .navbar-inner { + filter: none !important; + background-image: none !important; + background-color: #35220d !important; +} +.header .btn-navbar { + background-color: #35220d !important; +} +.header .nav .dropdown-toggle:hover, +.header .nav .dropdown.open .dropdown-toggle { + background-color: #5a3a16 !important; +} +.header .nav li.dropdown .dropdown-toggle i { + color: #d18d42 !important; +} +/*** +Page sidebar +***/ +.page-sidebar { + background-color: #623f18; +} +ul.page-sidebar-menu > li > a { + border-top: 1px solid #935f24 !important; + color: #ffffff !important; +} +ul.page-sidebar-menu > li:last-child > a { + border-bottom: 1px solid transparent !important; +} +ul.page-sidebar-menu > li a i { + color: #9a6d3a; +} +ul.page-sidebar-menu > li.open > a, +ul.page-sidebar-menu > li > a:hover, +ul.page-sidebar-menu > li:hover > a { + background: #4e3112; +} +ul.page-sidebar-menu > li.active > a { + background: #4e3112 !important; + border-top-color: transparent !important; + color: #ffffff; +} +ul.page-sidebar-menu > li.active > a i { + color: #ffffff; +} +ul.page-sidebar-menu > li > ul.sub-menu > li:first-child > a { + border-top: 0px !important; +} +ul.page-sidebar-menu > li > ul.sub-menu > li.active > a, +ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { + color: #ffffff !important; + background: #8b5922 !important; +} +ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { + background: #8b5922 !important; +} +/* 3rd level sub menu */ +ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li.active > a, +ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li > a:hover, +ul.page-sidebar-menu > li > ul.sub-menu li.open > a { + color: #ffffff !important; + background: #8b5922 !important; +} +/* font color for all sub menu links*/ +ul.page-sidebar-menu li > ul.sub-menu > li > a { + color: #e5bf94; +} +/* menu arrows */ +ul.page-sidebar-menu > li > a .arrow:before, +ul.page-sidebar-menu > li > a .arrow.open:before { + color: #c88131 !important; +} +ul.page-sidebar-menu > li > ul.sub-menu a .arrow:before, +ul.page-sidebar-menu > li > ul.sub-menu a .arrow.open:before { + color: #b4742c !important; +} +ul.page-sidebar-menu > li > a > .arrow.open:before { + color: #d18d42 !important; +} +ul.page-sidebar-menu > li.active > a .arrow:before, +ul.page-sidebar-menu > li.active > a .arrow.open:before { + color: #ffffff !important; +} +/* sidebar search */ +.page-sidebar .sidebar-search input { + background-color: #39250e !important; + color: #b18d65; +} +.page-sidebar .sidebar-search input::-webkit-input-placeholder { + color: #b18d65 !important; +} +.page-sidebar .sidebar-search input:-moz-placeholder { + color: #b18d65 !important; +} +.page-sidebar .sidebar-search input:-ms-input-placeholder { + color: #b18d65 !important; +} +.page-sidebar .sidebar-search input { + background-color: #623f18 !important; + color: #b18d65 !important; +} +.page-sidebar .sidebar-search .input-box { + border-bottom: 1px solid #845f36 !important; +} +.page-sidebar .sidebar-search .submit { + background-image: url(../../img/search-icon-brown.png); +} +/*** +Sidebar toggler +***/ +.sidebar-toggler { + background-image: url(../../img/sidebar-toggler-brown.jpg); + background-color: #39250e; +} +/* search box bg color on expanded */ +.page-sidebar-closed .page-sidebar .sidebar-search.open { + background-color: #623f18 !important; +} +.page-sidebar-closed .page-sidebar .sidebar-search.open .remove { + background-image: url("../../img/sidebar-search-close-brown.png"); +} +/* sub menu bg color on hover menu item */ +.page-sidebar-closed ul.page-sidebar-menu > li:hover .sub-menu { + background-color: #623f18; +} +/*** +Horizontal Menu(new in v1.2) +***/ +/*search*/ +.header .hor-menu .hor-menu-search-form-toggler.hide { + background: #000000 url(../../img/hor-menu-search-close.png) no-repeat center; +} +.header .hor-menu .search-form { + background: #000000; +} +.header .hor-menu .search-form .btn { + color: #efd7bd; + background: #000000 url(../../img/search-icon.png) no-repeat center; +} +.header .hor-menu .search-form form input { + color: #efd7bd; +} +.header .hor-menu .search-form form input::-webkit-input-placeholder { + /* WebKit browsers */ + + color: #efd7bd; +} +.header .hor-menu .search-form form input:-moz-placeholder { + /* Mozilla Firefox 4 to 18 */ + + color: #efd7bd; +} +.header .hor-menu .search-form form input::-moz-placeholder { + /* Mozilla Firefox 19+ */ + + color: #efd7bd; +} +.header .hor-menu .search-form form input:-ms-input-placeholder { + /* Internet Explorer 10+ */ + + color: #efd7bd; +} +/*** +Footer +***/ +.footer .footer-inner { + color: #999999; +} +.footer .footer-tools .go-top { + background-color: #7f511f; +} +.footer .footer-tools .go-top:hover { + opacity: 0.7; + filter: alpha(opacity=70); +} +.footer .footer-tools .go-top i { + color: #d18d42; +} +/*** +Footer Layouts (new in v1.3) +***/ +/* begin:fixed footer */ +.page-footer-fixed .footer { + background-color: #39250e; +} +.page-footer-fixed .footer .footer-inner { + color: #999999; +} +.page-footer-fixed .footer .footer-tools .go-top { + background-color: #7f511f; +} +.page-footer-fixed .footer .footer-tools .go-top i { + color: #d18d42; +} +/* end:fixed footer */ +/*** +Gritter Notifications +***/ +.gritter-top { + background: url(../../plugins/gritter/images/gritter-brown.png) no-repeat left -30px !important; +} +.gritter-bottom { + background: url(../../plugins/gritter/images/gritter-brown.png) no-repeat left bottom !important; +} +.gritter-item { + display: block; + background: url(../../plugins/gritter/images/gritter-brown.png) no-repeat left -40px !important; +} +.gritter-close { + background: url(../../plugins/gritter/images/gritter-brown.png) no-repeat left top !important; +} +.gritter-title { + text-shadow: none !important; + /* Not supported by IE :( */ + +} +/* for the light (white) version of the gritter notice */ +.gritter-light .gritter-item, +.gritter-light .gritter-bottom, +.gritter-light .gritter-top, +.gritter-light .gritter-close { + background-image: url(../../plugins/gritter/images/gritter-light.png) !important; +} +.gritter-item-wrapper a { + color: #b18d65; +} +.gritter-item-wrapper a:hover { + color: #755a3b; +} +/* begin: boxed page */ +@media (min-width: 980px) { + .page-boxed { + background-color: #492f12 !important; + } + .page-boxed .page-container { + background-color: #623f18; + border-left: 1px solid #976125; + border-bottom: 1px solid #976125; + } + .page-boxed.page-sidebar-fixed .page-container { + border-left: 0; + border-bottom: 0; + } + .page-boxed.page-sidebar-fixed .page-sidebar { + border-left: 1px solid #976125; + } + .page-boxed.page-sidebar-fixed.page-footer-fixed .footer { + background-color: #492f12 !important; + } +} +/* end: boxed page */ +/*** +Landscape phone to portrait tablet +***/ +@media (max-width: 979px) { + /*** + page sidebar + ***/ + .page-sidebar { + background-color: #412a10 !important; + } + ul.page-sidebar-menu > li > a { + border-top: 1px solid #764c1d !important; + } + ul.page-sidebar-menu > li:last-child > a { + border-bottom: 0 !important; + } + .page-sidebar .sidebar-search input { + background-color: #412a10 !important; + } + ul.page-sidebar-menu > li.open > a, + ul.page-sidebar-menu > li > a:hover, + ul.page-sidebar-menu > li:hover > a { + background: #311f0c; + } +} diff --git a/mall-master/src/main/resources/static/css/chosen.css b/mall-master/src/main/resources/static/css/chosen.css new file mode 100644 index 0000000..00f60ac --- /dev/null +++ b/mall-master/src/main/resources/static/css/chosen.css @@ -0,0 +1,429 @@ +/* +* +* Chosen for Bootstrap and Less +* +* Converted by @whitetruffle (http://www.twitter.com/whitetruffle) +* from @joeylomanto's SASS fork (http://chosen-sass-bootstrap.herokuapp.com/) +* Havest: @harvest +* +*/ +/*! + * Bootstrap v2.1.1 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ + +.chzn-container { + position: relative; + display: inline-block; + zoom: 1; + *display: inline; +} +.chzn-container .chzn-drop { + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15); + box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15); + background: #fff; + border: 1px solid #CCC; + position: absolute; + top: 29px; + left: 0; + z-index: 1010; + margin: 4px 0 0; +} + +.chzn-container-single .chzn-single { + margin-top: 3px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: 0 0 3px #ffffff inset, 0 1px 1px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 0 3px #ffffff inset, 0 1px 1px rgba(0, 0, 0, 0.1); + box-shadow: 0 0 3px #ffffff inset, 0 1px 1px rgba(0, 0, 0, 0.1); + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; + background-color: #f6f6f6; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), color-stop(50%, #f6f6f6), to(#f4f4f4)); + background-image: -webkit-linear-gradient(#ffffff, #f6f6f6 50%, #f4f4f4); + background-image: -moz-linear-gradient(top, #ffffff, #f6f6f6 50%, #f4f4f4); + background-image: -o-linear-gradient(#ffffff, #f6f6f6 50%, #f4f4f4); + background-image: linear-gradient(#ffffff, #f6f6f6 50%, #f4f4f4); + background-repeat: no-repeat; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff4f4f4', GradientType=0); + -moz-background-clip: padding; + background-color: #ffffff; + border: 1px solid #CCC; + display: block; + overflow: hidden; + white-space: nowrap; + position: relative; + height: 28px; + line-height: 29px; + padding: 0 0 0 8px; + color: #555555; + text-decoration: none; +} +.chzn-container-single .chzn-single span { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + margin-right: 26px; + display: block; + overflow: hidden; + white-space: nowrap; +} +.chzn-container-single .chzn-single abbr { + display: block; + position: absolute; + right: 26px; + top: 8px; + width: 12px; + height: 13px; + font-size: 1px; + background: url("../image/chosen-sprite.png") right top no-repeat; +} +.chzn-container-single .chzn-single abbr:hover { + background-position: right -11px; +} +.chzn-container-single .chzn-single div { + position: absolute; + right: 0; + top: 0; + display: block; + height: 100%; + width: 18px; +} +.chzn-container-single .chzn-single div b { + background: url("../image/chosen-sprite.png") no-repeat 0 2px; + display: block; + width: 100%; + height: 100%; +} +.chzn-container-single .chzn-search { + padding: 3px 4px; + position: relative; + margin: 0; + white-space: nowrap; + z-index: 1010; +} +.chzn-container-single .chzn-search input { + margin: 1px 0; + padding: 4px 20px 4px 5px; + outline: 0; +} +.chzn-container-single .chzn-default { + color: #999; +} +.chzn-container-single .chzn-drop { + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; + -moz-background-clip: padding; +} +.chzn-container-single.chzn-disabled .chzn-single abbr:hover { + background-position: right top; +} +.chzn-container-single-nosearch .chzn-search input { + position: absolute; + left: -9000px; +} +.chzn-container-multi .chzn-choices { + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border linear 0.2s; + -moz-transition: border linear 0.2s; + -o-transition: border linear 0.2s; + transition: border linear 0.2s; + -webkit-transition: box-shadow linear 0.2s; + -moz-transition: box-shadow linear 0.2s; + -o-transition: box-shadow linear 0.2s; + transition: box-shadow linear 0.2s; + background-color: #ffffff !important; + border: 1px solid #cccccc; + cursor: text; + overflow: hidden; + height: auto !important; + height: 1%; + position: relative; + display: block; + padding: 0; + margin: 0; + font-size: 14px; + line-height: 20px; + color: #555555; +} +.chzn-container-multi .chzn-choices li { + float: left; + list-style: none; +} +.chzn-container-multi .chzn-choices .search-field { + white-space: nowrap; + margin: 0; + padding: 0; +} +.chzn-container-multi .chzn-choices .search-field input { + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + color: #555555; + background: transparent !important; + border: 0 !important; + font-family: sans-serif; + font-size: 100%; + height: 15px; + padding: 5px; + margin: 1px 0 2px; + outline: 0; +} +.chzn-container-multi .chzn-choices .search-field .default { + color: #999; +} +.chzn-container-multi .chzn-choices .search-choice { + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: 0 0 2px #ffffff inset, 0 1px 0 rgba(0, 0, 0, 0.05); + -moz-box-shadow: 0 0 2px #ffffff inset, 0 1px 0 rgba(0, 0, 0, 0.05); + box-shadow: 0 0 2px #ffffff inset, 0 1px 0 rgba(0, 0, 0, 0.05); + background-color: #f6f6f6; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), color-stop(50%, #f6f6f6), to(#f4f4f4)); + background-image: -webkit-linear-gradient(#ffffff, #f6f6f6 50%, #f4f4f4); + background-image: -moz-linear-gradient(top, #ffffff, #f6f6f6 50%, #f4f4f4); + background-image: -o-linear-gradient(#ffffff, #f6f6f6 50%, #f4f4f4); + background-image: linear-gradient(#ffffff, #f6f6f6 50%, #f4f4f4); + background-repeat: no-repeat; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff4f4f4', GradientType=0); + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; + -moz-background-clip: padding; + color: #555555; + border: 1px solid #999999; + line-height: 13px; + padding: 3px 20px 3px 5px; + margin: 3px 0 3px 5px; + position: relative; + cursor: default; +} +.chzn-container-multi .chzn-choices .search-choice .search-choice-close { + display: block; + position: absolute; + right: 3px; + top: 4px; + width: 12px; + height: 13px; + font-size: 1px; + background: url("../image/chosen-sprite.png") right top no-repeat; +} +.chzn-container-multi .chzn-choices .search-choice .search-choice-close:hover { + background-position: right -11px; +} +.chzn-container-multi .chzn-choices .search-choice.search-choice-disabled { + background-color: #eeeeee; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f4f4f4), color-stop(50%, #f0f0f0), to(#e8e8e8)); + background-image: -webkit-linear-gradient(#f4f4f4, #f0f0f0 50%, #e8e8e8); + background-image: -moz-linear-gradient(top, #f4f4f4, #f0f0f0 50%, #e8e8e8); + background-image: -o-linear-gradient(#f4f4f4, #f0f0f0 50%, #e8e8e8); + background-image: linear-gradient(#f4f4f4, #f0f0f0 50%, #e8e8e8); + background-repeat: no-repeat; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff4f4f4', endColorstr='#ffe8e8e8', GradientType=0); + color: #666; + border: 1px solid #cccccc; + padding-right: 5px; +} +.chzn-container-multi .chzn-choices .search-choice-focus { + background: #d4d4d4; +} +.chzn-container-multi .chzn-choices .search-choice-focus .search-choice-close { + background-position: right -11px; +} +.chzn-container .chzn-results { + margin: 0 4px 4px 0; + max-height: 240px; + padding: 0 0 0 4px; + position: relative; + overflow-x: hidden; + overflow-y: auto; + -webkit-overflow-scrolling: touch; +} +.chzn-container .chzn-results li { + display: none; + line-height: 15px; + padding: 5px 6px; + margin: 0; + list-style: none; +} +.chzn-container .chzn-results li em { + background: #feffde; + font-style: normal; +} +.chzn-container .chzn-results .no-results { + background: #f4f4f4; + display: list-item; +} +.chzn-container .chzn-results .group-result { + cursor: default; + color: #999; + font-weight: bold; +} +.chzn-container .chzn-results .group-option { + padding-left: 15px; +} +.chzn-container .chzn-results .active-result { + cursor: pointer; + display: list-item; +} +.chzn-container .chzn-results .highlighted { + background-color: #326dcc; + background-image: -moz-linear-gradient(top, #3875d7, #2a62bc); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#3875d7), to(#2a62bc)); + background-image: -webkit-linear-gradient(top, #3875d7, #2a62bc); + background-image: -o-linear-gradient(top, #3875d7, #2a62bc); + background-image: linear-gradient(to bottom, #3875d7, #2a62bc); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3875d7', endColorstr='#ff2a62bc', GradientType=0); + color: #fff; +} +.chzn-container .chzn-results .highlighted em { + background: transparent; +} +.chzn-container .chzn-results-scroll { + background: white; + margin: 0 4px; + position: absolute; + text-align: center; + width: 321px; + /* This should by dynamic with js */ + + z-index: 1; +} +.chzn-container .chzn-results-scroll span { + display: inline-block; + height: 17px; + text-indent: -5000px; + width: 9px; +} +.chzn-container .chzn-results-scroll-down { + bottom: 0; +} +.chzn-container .chzn-results-scroll-down span { + background: url("../image/chosen-sprite.png") no-repeat -4px -3px; +} +.chzn-container .chzn-results-scroll-up span { + background: url("../image/chosen-sprite.png") no-repeat -22px -3px; +} +.chzn-container-multi .chzn-results { + margin: 4px; + padding: 0; +} +.chzn-container-multi .chzn-drop .result-selected { + display: none; +} +.chzn-container-active .chzn-single { + border: 1px solid #CCC; +} +.chzn-container-active .chzn-single .chzn-drop { + margin-top: -29px; +} +.chzn-container-active .chzn-single-with-drop { + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + border-color: #CCC; +} +.chzn-container-active .chzn-single-with-drop div { + background: transparent; + border-left: none; +} +.chzn-container-active .chzn-single-with-drop div b { + background-position: -18px 1px; +} +.chzn-container-active .chzn-choices { + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + border: 1px solid rgba(82, 168, 236, 0.8); + outline: 0; + outline: thin dotted \9; + /* IE6-9 */ + +} +.chzn-container-active .chzn-choices .search-field input { + color: #111 !important; +} +.chzn-disabled { + opacity: 0.005; + filter: alpha(opacity=0.5); + cursor: default; +} +.chzn-disabled .chzn-single { + cursor: default; +} +.chzn-disabled .search-choice-close { + cursor: default; +} +.chzn-rtl { + text-align: right; +} +.chzn-rtl .chzn-single { + padding: 0 8px 0 0; + overflow: visible; +} +.chzn-rtl .chzn-single span { + margin-left: 26px; + margin-right: 0; + direction: rtl; +} +.chzn-rtl .chzn-single div { + left: 3px; + right: auto; +} +.chzn-rtl .chzn-single abbr { + left: 26px; + right: auto; +} +.chzn-rtl .chzn-choices li { + float: right; +} +.chzn-rtl .chzn-choices .search-field input { + direction: rtl; +} +.chzn-rtl .chzn-choices .search-choice { + padding: 3px 5px 3px 19px; + margin: 3px 5px 3px 0; +} +.chzn-rtl .chzn-choices .search-choice .search-choice-close { + left: 4px; + right: auto; + background-position: right top; +} +.chzn-rtl .chzn-results .group-option { + padding-left: 0; + padding-right: 15px; +} +.chzn-rtl .chzn-search input { + padding: 4px 5px 4px 20px; + direction: rtl; +} +.chzn-rtl.chzn-container-single .chzn-results { + margin: 0 0 4px 4px; + padding: 0 4px 0 0; +} +.chzn-rtl.chzn-container-active .chzn-single-with-drop div { + border-right: none; +} diff --git a/mall-master/src/main/resources/static/css/clockface.css b/mall-master/src/main/resources/static/css/clockface.css new file mode 100644 index 0000000..f554a03 --- /dev/null +++ b/mall-master/src/main/resources/static/css/clockface.css @@ -0,0 +1,229 @@ +.clearfix { + *zoom: 1; +} +.clearfix:before, +.clearfix:after { + display: table; + content: ""; + line-height: 0; +} +.clearfix:after { + clear: both; +} +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} +.input-block-level { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.clockface { + width: 160px; + padding: 3px; + text-align: center; + /* + .l3 .center span { + vertical-align: middle; + display: inline-block; + .ie7-inline-block(); + padding: 0 2px; + } + */ + + /* + input { + width: 20px; + margin: 0; + vertical-align: top; + } + + a { + text-decoration: none; + padding: 0 3px; + vertical-align: top; + font-size: 0.85em; + .border-radius(3px); + + &.am {margin-right: 8px;} + + &.active, + &.active:hover { + .buttonBackground(@btnSuccessBackground, spin(@btnSuccessBackground, 20)); + } + } + */ + +} +.clockface > div { + clear: both; + overflow: auto; +} +.clockface .outer, +.clockface .inner { + width: 22px; + height: 22px; + line-height: 22px; + cursor: default; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.clockface .outer.active, +.clockface .inner.active, +.clockface .outer.active:hover, +.clockface .inner.active:hover { + color: #fff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} +.clockface .outer:hover, +.clockface .inner:hover { + background-color: #dcdcdc; +} +.clockface .outer { + color: gray; + font-size: 0.8em; +} +.clockface .outer.active, +.clockface .outer.active:hover { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #5bb75b; + background-image: -moz-linear-gradient(top, #62c462, #51a351); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); + background-image: -webkit-linear-gradient(top, #62c462, #51a351); + background-image: -o-linear-gradient(top, #62c462, #51a351); + background-image: linear-gradient(to bottom, #62c462, #51a351); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0); + border-color: #51a351 #51a351 #387038; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #51a351; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.clockface .outer.active:hover, +.clockface .outer.active:hover:hover, +.clockface .outer.active:active, +.clockface .outer.active:hover:active, +.clockface .outer.active.active, +.clockface .outer.active:hover.active, +.clockface .outer.active.disabled, +.clockface .outer.active:hover.disabled, +.clockface .outer.active[disabled], +.clockface .outer.active:hover[disabled] { + color: #ffffff; + background-color: #51a351; + *background-color: #499249; +} +.clockface .outer.active:active, +.clockface .outer.active:hover:active, +.clockface .outer.active.active, +.clockface .outer.active:hover.active { + background-color: #408140 \9; +} +.clockface .inner.active, +.clockface .inner.active:hover { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #006dcc; + background-image: -moz-linear-gradient(top, #0088cc, #0044cc); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); + background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); + background-image: -o-linear-gradient(top, #0088cc, #0044cc); + background-image: linear-gradient(to bottom, #0088cc, #0044cc); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0); + border-color: #0044cc #0044cc #002a80; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #0044cc; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.clockface .inner.active:hover, +.clockface .inner.active:hover:hover, +.clockface .inner.active:active, +.clockface .inner.active:hover:active, +.clockface .inner.active.active, +.clockface .inner.active:hover.active, +.clockface .inner.active.disabled, +.clockface .inner.active:hover.disabled, +.clockface .inner.active[disabled], +.clockface .inner.active:hover[disabled] { + color: #ffffff; + background-color: #0044cc; + *background-color: #003bb3; +} +.clockface .inner.active:active, +.clockface .inner.active:hover:active, +.clockface .inner.active.active, +.clockface .inner.active:hover.active { + background-color: #003399 \9; +} +.clockface .l1 .cell, +.clockface .l5 .cell { + width: 22px; + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; +} +.clockface .l1 .outer { + margin-bottom: 3px; +} +.clockface .l5 .outer { + margin-top: 3px; +} +.clockface .l2 .outer, +.clockface .l3 .outer, +.clockface .l4 .outer, +.clockface .l2 .inner, +.clockface .l3 .inner, +.clockface .l4 .inner { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; + vertical-align: middle; +} +.clockface .l2 .left, +.clockface .l3 .left, +.clockface .l4 .left { + float: left; +} +.clockface .l2 .left .outer, +.clockface .l3 .left .outer, +.clockface .l4 .left .outer { + margin-right: 3px; +} +.clockface .l2 .right, +.clockface .l3 .right, +.clockface .l4 .right { + float: right; +} +.clockface .l2 .right .outer, +.clockface .l3 .right .outer, +.clockface .l4 .right .outer { + margin-left: 3px; +} +.clockface .ampm { + font-size: 0.8em; + text-decoration: none; + border-bottom: dashed 1px; +} +.clockface .ampm:focus { + outline: 0; + outline: thin dotted \9; + /* IE6-9 */ +} diff --git a/mall-master/src/main/resources/static/css/colorpicker.css b/mall-master/src/main/resources/static/css/colorpicker.css new file mode 100644 index 0000000..c133c17 --- /dev/null +++ b/mall-master/src/main/resources/static/css/colorpicker.css @@ -0,0 +1,7 @@ + /* + Colorpicker for Bootstrap + Copyright 2012 Stefan Petre + Licensed under the Apache License v2.0 + http://www.apache.org/licenses/LICENSE-2.0 +*/ + .colorpicker-saturation { width: 100px; height: 100px; background-image: url(../image/saturation.png); cursor: crosshair; float: left; } .colorpicker-saturation i { display: block; height: 5px; width: 5px; border: 1px solid #000; -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; position: absolute; top: 0; left: 0; margin: -4px 0 0 -4px; } .colorpicker-saturation i b { display: block; height: 5px; width: 5px; border: 1px solid #fff; -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; } .colorpicker-hue, .colorpicker-alpha { width: 15px; height: 100px; float: left; cursor: row-resize; margin-left: 4px; margin-bottom: 4px; } .colorpicker-hue i, .colorpicker-alpha i { display: block; height: 1px; background: #000; border-top: 1px solid #fff; position: absolute; top: 0; left: 0; width: 100%; margin-top: -1px; } .colorpicker-hue { background-image: url(../image/hue.png); } .colorpicker-alpha { background-image: url(../image/alpha.png); display: none; } .colorpicker { *zoom: 1; top: 0; left: 0; padding: 4px; min-width: 120px; margin-top: 1px; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; } .colorpicker:before, .colorpicker:after { display: table; content: ""; } .colorpicker:after { clear: both; } .colorpicker:before { content: ''; display: inline-block; border-left: 7px solid transparent; border-right: 7px solid transparent; border-bottom: 7px solid #ccc; border-bottom-color: rgba(0, 0, 0, 0.2); position: absolute; top: -7px; left: 6px; } .colorpicker:after { content: ''; display: inline-block; border-left: 6px solid transparent; border-right: 6px solid transparent; border-bottom: 6px solid #ffffff; position: absolute; top: -6px; left: 7px; } .colorpicker div { position: relative; } .colorpicker.alpha { min-width: 140px; } .colorpicker.alpha .colorpicker-alpha { display: block; } .colorpicker-color { height: 10px; margin-top: 5px; clear: both; background-image: url(../image/alpha.png); background-position: 0 100%; } .colorpicker-color div { height: 10px; } .input-append.color .add-on i, .input-prepend.color .add-on i { display: block; cursor: pointer; width: 16px; height: 16px; } \ No newline at end of file diff --git a/mall-master/src/main/resources/static/css/coming-soon.css b/mall-master/src/main/resources/static/css/coming-soon.css new file mode 100644 index 0000000..71a057f --- /dev/null +++ b/mall-master/src/main/resources/static/css/coming-soon.css @@ -0,0 +1,114 @@ +/*** +Coming Soon Page +***/ +body { + background-color: #ddd; + padding: 0; + margin: 0; +} + +.coming-soon-header { + padding: 20px; + margin-top: 80px; +} + +.coming-soon-content { + padding: 20px; + margin-top: 10px; +} + +.coming-soon-countdown { + padding: 20px; +} + +.coming-soon-content h1, +.coming-soon-content p { + color: #fff; +} + +.coming-soon-content h1 { + font-size: 42px; + line-height: 50px; + margin-bottom: 15px; + font-weight: 300; +} + +.coming-soon-content p { + font-size: 13px; +} + + +.coming-soon-content input { + background: #fff !important; +} + +.coming-soon-footer { + text-align: left !important; + font-size: 12px; + color: #333; + padding: 20px 20px 20px 20px; +} + +/*Countdown*/ +#defaultCountdown { + width: 100%; + margin: 10px 0; + overflow: hidden; +} + +#defaultCountdown span.countdown_row { + overflow: hidden; +} + +#defaultCountdown span.countdown_row span { + font-size: 16px; + font-weight: 300; + line-height: 20px; + margin-right: 2px; +} + +#defaultCountdown span.countdown_row > span { + float: left; +} + +#defaultCountdown span.countdown_section { + color: #fff; + padding: 7px 15px !important; + margin-bottom: 2px; + font-weight: 300; + background: url(../image/bg-white.png) repeat; + text-align: center; +} + +#defaultCountdown span.countdown_amount { + display: inline-block; + font-size: 38px !important; + padding: 15px !important; + font-weight: 300; +} + +/*Responsive*/ +@media (max-width: 1024px) { + #defaultCountdown span.countdown_amount { + padding: 10px; + } +} + +@media (max-width: 767px) { + + .coming-soon-header, + .coming-soon-countdown, + .coming-soon-content, + .coming-soon-footer { + margin-top: 0px; + padding: 10px; + } +} + +@media (max-width: 320px) { + + .coming-soon-content .btn-subscribe span { + display: none; + } + +} \ No newline at end of file diff --git a/mall-master/src/main/resources/static/css/common.css b/mall-master/src/main/resources/static/css/common.css new file mode 100644 index 0000000..a334722 --- /dev/null +++ b/mall-master/src/main/resources/static/css/common.css @@ -0,0 +1,1616 @@ +/** + + layui官网 + By 贤心 + +*/ + +h1, h2, h3 { + font-size: 14px; +} + +/* 布局 */ +.site-inline { + font-size: 0; +} + +.site-tree, .site-content { + display: inline-block; + *display: inline; + *zoom: 1; + vertical-align: top; + font-size: 14px; +} + +.site-tree { + width: 220px; + min-height: 900px; + padding: 5px 0 20px; +} + +.site-content { + width: 899px; + min-height: 900px; + padding: 20px 0 10px 20px; +} + +/* 头部 */ +.header { + height: 59px; + border-bottom: 1px solid #404553; + background-color: #393D49; + position: relative; + top: 0; + left: 0; +} + +.logo { + position: absolute; + left: 0; + top: 5px; +} + +.logo img { + height: 50px; +} + +.header .layui-nav { + position: absolute; + right: 0; + top: 0; + padding: 0; + background: none; +} + +.header .layui-nav .layui-nav-item { + margin: 0 20px; +} + +.header .layui-nav .layui-nav-item[mobile] { + display: none; +} + +.header .layui-container .logo { + left: 15px; +} + +.header .layui-container .layui-nav { + right: 15px; +} + +.menu { + position: absolute; + right: 0; + top: 0; + line-height: 65px; +} + +.menu a { + display: inline-block; + *display: inline; + *zoom: 1; + vertical-align: top; +} + +.menu a { + position: relative; + padding: 0 20px; + margin: 0 20px; + color: #c2c2c2; + font-size: 14px; +} + +.menu a:hover { + color: #fff; + transition: all .5s; + -webkit-transition: all .5s +} + +.menu a.this { + color: #fff +} + +.menu a.this::after { + content: ''; + position: absolute; + left: 0; + bottom: -1px; + width: 100%; + height: 5px; + background-color: #5FB878; +} + +.header-index { + background-color: #0A0E11; + background-color: #100903; + border: none; +} + +.header-demo { + height: 60px; + border-bottom: none; +} + +.header-demo .logo { + left: 40px; +} + +.header-demo .layui-nav { + top: 0; +} + +.header-demo .layui-nav .layui-nav-item { + margin: 0 10px; +} + +.header-demo .layui-nav .layui-this a { + padding: 0 30px; +} + +.component { + position: absolute; + width: 200px; + left: 120px; + top: 16px; +} + +.component .layui-input { + height: 30px; + padding-left: 12px; + background-color: #424652; + background-color: rgba(255, 255, 255, .05); + border: none 0; + color: #fff; + font-size: 12px; +} + +.component .layui-form-select .layui-edge { + display: none; + border-top-color: #999; +} + +.component .layui-form-select dl { + top: 36px; + background-color: rgba(255, 255, 255, .9) +} + +.header-demo .component { + left: 185px; +} + +/* 子侧边 */ +.layui-side-child { + width: 160px !important; + left: 200px; + bottom: 60px !important; + border-right: 1px solid #eee; + background-color: #fff; +} + +.layui-side-child .layui-side-scroll { + width: 170px; +} + +.layui-side-child .layui-nav { + padding: 10px 0; + width: 160px; + border-radius: 0; + background: none +} + +.layui-side-child .layui-nav-child { + border-radius: 0; +} + +.layui-side-child .layui-nav .layui-nav-title a, +.layui-side-child .layui-nav .layui-nav-title a:hover, +.layui-side-child .layui-nav-itemed > a { + color: #666 !important; +} + +.layui-side-child .layui-nav-itemed .layui-nav-child { + margin-bottom: 10px; + background: none !important; +} + +.layui-side-child .layui-nav .layui-nav-item a { + height: 30px; + line-height: 30px; + color: #666; +} + +.layui-side-child .layui-nav .layui-nav-item a:hover { + background: none !important; +} + +.layui-side-child .layui-nav .layui-nav-child a { + color: #999 !important; +} + +.layui-side-child .layui-nav .layui-nav-more { + display: none; +} + +.layui-side-child .layui-nav-tree .layui-this, +.layui-side-child .layui-nav-tree .layui-this > a, +.layui-side-child .layui-nav-tree .layui-nav-child dd.layui-this, +.layui-side-child .layui-nav-tree .layui-nav-child dd.layui-this a { + background: none; + color: #5FB878 !important; +} + +.layui-side-child .layui-nav .layui-nav-child a:hover { + color: #009688 !important +} + +.layui-side-child .layui-nav-bar { + background-color: #5FB878; +} + +/* 底部 */ +.footer { + padding: 30px 0; + line-height: 30px; + text-align: center; + color: #666; + font-weight: 300; +} + +body .layui-layout-admin .footer-demo { + height: 50px; + padding: 5px 0; +} + +.footer a { + padding: 0 5px; +} + +.site-union { + margin-top: 10px; + color: #999; +} + +.site-union > * { + display: inline-block; + vertical-align: middle; +} + +.site-union a[upyun] img { + width: 80px; +} + +.site-union span { + position: relative; + top: 3px; +} + +.site-union span a { + padding: 0; + display: inline; + color: #999; +} + +.site-union span a:hover { + text-decoration: underline; +} + +.footer-demo p { + display: inline-block; + vertical-align: middle; + height: 50px; + padding-right: 10px; +} + +.footer-demo .site-union { + position: relative; + top: -9px; +} + +/* 首页banner部分 */ +.site-banner { + position: relative; + height: 600px; + text-align: center; + overflow: hidden; + background-color: #393D49; +} + +.site-banner-bg, .site-banner-main { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; +} + +.site-banner-bg { + background-position: center 0; +} + +.site-zfj { + padding-top: 25px; + height: 220px; +} + +.site-zfj i { + position: absolute; + left: 50%; + top: 25px; + width: 200px; + height: 200px; + margin-left: -100px; + font-size: 200px; + color: #c2c2c2; +} + +@-webkit-keyframes site-zfj { + 0% { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0) rotate(0deg) scale(1); + } + 10% { + opacity: 0.8; + -webkit-transform: translate3d(-100px, 0px, 0) rotate(10deg) scale(0.7); + } + 35% { + opacity: 0.6; + -webkit-transform: translate3d(100px, 0px, 0) rotate(30deg) scale(0.4); + } + 50% { + opacity: 0.4; + -webkit-transform: translate3d(0, 0, 0) rotate(360deg) scale(0); + } + 80% { + opacity: 0.2; + -webkit-transform: translate3d(0, 0, 0) rotate(720deg) scale(1); + } + 90% { + opacity: 0.1; + -webkit-transform: translate3d(0, 0, 0) rotate(3600deg) scale(6); + } + 100% { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0) rotate(3600deg) scale(1); + } +} + +@keyframes site-zfj { + 0% { + opacity: 1; + transform: translate3d(0, 0, 0) rotate(0deg) scale(1); + } + 10% { + opacity: 0.8; + transform: translate3d(-100px, 0px, 0) rotate(10deg) scale(0.7); + } + 35% { + opacity: 0.6; + transform: translate3d(100px, 0px, 0) rotate(30deg) scale(0.4); + } + 50% { + opacity: 0.4; + transform: translate3d(0, 0, 0) rotate(360deg) scale(0); + } + 80% { + opacity: 0.2; + transform: translate3d(0, 0, 0) rotate(720deg) scale(1); + } + 90% { + opacity: 0.1; + transform: translate3d(0, 0, 0) rotate(3600deg) scale(6); + } + 100% { + opacity: 1; + transform: translate3d(0, 0, 0) rotate(3600deg) scale(1); + } +} + +@-webkit-keyframes site-desc { + 0% { + -webkit-transform: scale(1.1); + } + 100% { + opacity: 1; + -webkit-transform: scale(1); + } +} + +@keyframes site-desc { + 0% { + transform: scale(1.1); + } + 100% { + transform: scale(1); + } +} + +.site-zfj-anim i { + -webkit-animation-name: site-zfj; + animation-name: site-zfj; + -webkit-animation-duration: 5s; + animation-duration: 5s; + -webkit-animation-timing-function: linear; + animation-timing-function: linear; +} + +.site-desc { + position: relative; + height: 70px; + margin-top: 25px; + background: url(../images/layui/desc.png) center no-repeat; +} + +.site-desc-anim { + -webkit-animation-name: site-desc; + animation-name: site-desc; +} + +.site-desc cite { + position: absolute; + bottom: -40px; + left: 0; + width: 100%; + color: #c2c2c2; + font-style: normal; +} + +.site-download { + margin-top: 80px; + font-size: 0; +} + +.site-download a { + position: relative; + padding: 0 45px 0 90px; + height: 60px; + line-height: 60px; + border: 1px solid rgba(255, 255, 255, .2); + font-size: 24px; + color: #ccc; + transition: all .5s; + -webkit-transition: all .5s; +} + +.site-download a:hover { + border-color: rgba(255, 255, 255, .3); + color: #fff; + background-color: rgba(255, 255, 255, .05); + border-radius: 30px; +} + +.site-download a cite { + position: absolute; + left: 45px; + font-size: 30px; +} + +.site-version { + position: relative; + margin-top: 15px; + color: #ccc; + font-size: 12px; +} + +.site-version span { + padding: 0 3px; +} + +.site-version * { + font-style: normal; +} + +.site-version a { + color: #e2e2e2; + text-decoration: underline; +} + +.site-banner-other { + position: absolute; + left: 0; + bottom: 30px; + width: 100%; + text-align: center; + font-size: 0; +} + +.site-banner-other iframe { + border: none; +} + +.site-banner-other a { + display: inline-block; + line-height: 28px; + margin: 0 5px; + padding: 0 8px; + border-radius: 2px; + color: rgba(255, 255, 255, .8); + border: 1px solid rgba(255, 255, 255, .2); + font-size: 14px; + transition: all .5s; + -webkit-transition: all .5s; +} + +.site-banner-other a:hover { + color: #fff; + background-color: rgba(255, 255, 255, .1); +} + +.site-idea { + margin: 50px 0; + font-size: 0; + text-align: center; + font-weight: 300; +} + +.site-idea li { + display: inline-block; + vertical-align: top; + *display: inline; + *zoom: 1; + font-size: 14px; +} + +.site-idea li { + width: 298px; + height: 150px; + padding: 30px; + line-height: 24px; + margin-left: 30px; + border: 1px solid #d2d2d2; + text-align: left; +} + +.site-idea li:first-child { + margin-left: 0 +} + +.site-idea .layui-field-title { + border-color: #d2d2d2 +} + +.site-idea .layui-field-title legend { + margin: 0 20px 20px 0; + padding: 0 20px; + text-align: center; +} + +/* 辅助 */ +.site-tips { + margin-bottom: 10px; + padding: 15px; + line-height: 22px; + border-left: 5px solid #0078AD; + background-color: #f2f2f2; +} + +body .site-tips p { + margin: 0; +} + +body .layui-layer-notice .layui-layer-content { + padding: 20px; + line-height: 26px; + background-color: #393D49; + color: #fff; + font-weight: 300; +} + +.layui-layer-notice .layui-text { + color: #f8f8f8; +} + +.layui-layer-notice .layui-text a { + color: #009688; +} + +/* 目录 */ +.site-dir { + display: none; +} + +.site-dir li { + line-height: 26px; + margin-left: 20px; + overflow: visible; + list-style-type: disc; +} + +.site-dir li a { + display: block; +} + +.site-dir li a:active { + color: #01AAED; +} + +.site-dir li a.layui-this { + color: #01AAED; +} + +body .layui-layer-dir { + box-shadow: none; + border: 1px solid #d2d2d2; +} + +body .layui-layer-dir .layui-layer-content { + padding: 10px; +} + +.site-dir a em { + padding-left: 5px; + font-size: 12px; + color: #c2c2c2; + font-style: normal; +} + +/* 文档 */ +.site-tree { + border-right: 1px solid #eee; +} + +.site-tree .layui-tree { + line-height: 32px; +} + +.site-tree .layui-tree li i { + position: relative; + font-size: 22px; + color: #000 +} + +.site-tree .layui-tree li a cite { + padding: 0 8px; +} + +.site-tree .layui-tree .site-tree-noicon a cite { + padding-left: 15px; +} + +.site-tree .layui-tree li a em { + font-size: 12px; + color: #bbb; + padding-right: 5px; + font-style: normal; +} + +.site-tree .layui-tree li h2 { + line-height: 36px; + border-left: 5px solid #009E94; + margin: 15px 0 5px; + padding: 0 10px; + background-color: #f2f2f2; +} + +.site-tree .layui-tree li ul { + margin-left: 27px; + line-height: 28px; +} + +.site-tree .layui-tree li ul a, +.site-tree .layui-tree li ul a i { + color: #777; +} + +.site-tree .layui-tree li ul a:hover { + color: #333; +} + +.site-tree .layui-tree li ul li { + margin-left: 25px; + overflow: visible; + list-style-type: disc; /*list-style-position: inside;*/ +} + +.site-tree .layui-tree li ul li cite, +.site-tree .layui-tree .site-tree-noicon ul li cite { + padding-left: 0; +} + +.site-tree .layui-tree .layui-this a { + color: #01AAED; +} + +.site-tree .layui-tree .layui-this .layui-icon { + color: #01AAED; +} + +.site-fix .site-tree { + position: fixed; + top: 0; + bottom: 0; + z-index: 666; + min-height: 0; + overflow: auto; + background-color: #fff; +} + +.site-fix .site-content { + margin-left: 220px; +} + +.site-fix-footer .site-tree { /*margin-bottom: 120px;*/ +} + +.site-title { + margin: 30px 0 20px; +} + +.site-title fieldset { + border: none; + padding: 0; + border-top: 1px solid #eee; +} + +.site-title fieldset legend { + margin-left: 20px; + padding: 0 10px; + font-size: 22px; + font-weight: 300; +} + +.site-text a { + color: #01AAED; +} + +.site-h1 { + margin-bottom: 20px; + line-height: 60px; + padding-bottom: 10px; + color: #393D49; + border-bottom: 1px solid #D2D2D2; + font-size: 22px; + font-weight: 300; +} + +.site-h1 .layui-icon { + position: relative; + top: 5px; + font-size: 50px; + margin-right: 10px; +} + +.site-text { + position: relative; +} + +.site-text p { + margin-bottom: 10px; + line-height: 22px; +} + +.site-text em { + padding: 0 3px; + font-weight: 500; + font-style: italic; + color: #666; +} + +.site-text code { + margin: 0 5px; + padding: 3px 10px; + border: 1px solid #e2e2e2; + background-color: #fbfbfb; + color: #666; + border-radius: 2px; +} + +.site-table { + width: 100%; + margin: 10px 0; +} + +.site-table thead { + background-color: #f2f2f2; +} + +.site-table th, +.site-table td { + padding: 6px 15px; + min-height: 20px; + line-height: 20px; + border: 1px solid #ddd; + font-size: 14px; + font-weight: 400; +} + +.site-table tr:nth-child(even) { + background: #fbfbfb; +} + +.site-block { + padding: 20px; + border: 1px solid #eee; +} + +.site-block .layui-form { + margin-right: 200px; +} + +/* 更新日志 */ +.site-changelog .layui-timeline-title h2 { + display: inline-block; +} + +.site-changelog .layui-timeline-title .layui-badge-rim { + top: -2px; + left: 10px; +} + +/* 颜色 */ +.site-doc-color { + font-size: 0; +} + +.site-doc-color li { + display: inline-block; + vertical-align: middle; + width: 180px; + margin-left: 20px; + margin-bottom: 20px; + padding: 20px 10px; + color: #fff; + text-align: center; + border-radius: 2px; + line-height: 22px; + font-size: 14px; +} + +.site-doc-color li p[tips] { + opacity: 0.8; + font-size: 12px; +} + +.site-doc-necolor li { + width: 108px; + margin-top: 15px; + margin-left: 0; + border-radius: 0; +} + +.site-doc-bgcolor li { + padding: 10px; +} + +/* 宫格 */ +.site-doc-icon { + margin-bottom: 50px; + font-size: 0; +} + +.site-doc-icon li { + display: inline-block; + vertical-align: middle; + width: 127px; + line-height: 25px; + padding: 20px 0; + margin-right: -1px; + margin-bottom: -1px; + border: 1px solid #e2e2e2; + font-size: 14px; + text-align: center; + color: #666; + transition: all .3s; + -webkit-transition: all .3s; +} + +.site-doc-icon li .layui-icon { + display: inline-block; + font-size: 36px; +} + +.site-doc-icon li .fontclass { + display: none; +} + +.site-doc-icon li .name { + color: #c2c2c2; +} + +.site-doc-icon li:hover { + background-color: #f2f2f2; + color: #000; +} + +/* 栅格示例 */ +.grid-demo { + padding: 10px; + line-height: 50px; + text-align: center; + background-color: #79C48C; + color: #fff; +} + +.grid-demo-bg1 { + background-color: #63BA79; +} + +.grid-demo-bg2 { + background-color: #49A761; +} + +.grid-demo-bg3 { + background-color: #38814A; +} + +/* 演示 */ +body .layui-layout-admin .site-demo { + bottom: 60px; + padding: 0; +} + +body .site-demo-nav .layui-nav-item { + line-height: 40px +} + +.layui-nav-item .layui-icon { + position: relative; + font-size: 20px; +} + +.layui-nav-item a cite { + padding: 0 10px; +} + +.site-demo .layui-main { + margin: 15px; + line-height: 22px; +} + +.site-demo-editor { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 50%; +} + +.site-demo-area { + position: absolute; + top: 0; + bottom: 0; + width: 100%; +} + +.site-demo-editor textarea { + position: absolute; + width: 100%; + height: 100%; + padding: 10px; + border: none; + resize: none; + background-color: #F7FBFF; + background-color: #13151A; + color: #999; + font-family: Courier New; + font-size: 12px; + -webkit-box-sizing: border-box !important; + -moz-box-sizing: border-box !important; + box-sizing: border-box !important; +} + +.site-demo-btn { + position: absolute; + bottom: 15px; + right: 20px; +} + +.site-demo-zanzhu { + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 90px; + text-align: center; + background-color: #e2e2e2; + overflow: hidden; +} + +.site-demo-zanzhu > * { + position: relative; + z-index: 1; +} + +.site-demo-zanzhu:before { + content: ""; + position: absolute; + z-index: 0; + top: 50%; + left: 50%; + width: 120px; + margin: -10px 0px 0px -60px; + text-align: center; + color: rgb(170, 170, 170); + font-size: 18px; + font-weight: 300; +} + +.site-demo-result { + position: absolute; + right: 0; + top: 0; + bottom: 0; + width: 50%; +} + +.site-demo-result iframe { + position: absolute; + width: 100%; + height: 100%; +} + +.site-demo-button { + margin-bottom: 30px; +} + +.site-demo-button div { + margin: 20px 30px 10px; +} + +.site-demo-button .layui-btn + .layui-btn { + margin-left: 0; +} + +.site-demo-button .layui-btn { + margin: 0 7px 10px 0; +} + +.site-demo-text a { + color: #01AAED; +} + +.site-demo-laytpl { + text-align: center; +} + +.site-demo-laytpl textarea, +.site-demo-laytpl div span { + width: 40%; + padding: 15px; + margin: 0 15px; +} + +.site-demo-laytpl textarea { + height: 300px; + border: none; + background-color: #3F3F3F; + color: #E3CEAB; + font-family: Courier New; + resize: none; +} + +.site-demo-laytpl div span { + display: inline-block; + text-align: center; + background: #101010; + color: #fff; +} + +.site-demo-tplres { + margin: 10px 0; + text-align: center +} + +.site-demo-tplres .site-demo-tplh2, +.site-demo-tplres .site-demo-tplview { + display: inline-block; + width: 50%; +} + +.site-demo-tplres h2 { + padding: 15px; + background: #e2e2e2; +} + +.site-demo-tplres h3 { + font-weight: 700; +} + +.site-demo-tplres div { + padding: 14px; + border: 1px solid #e2e2e2; + text-align: left; +} + +.site-demo-upload, +.site-demo-upload img { + width: 200px; + height: 200px; + border-radius: 100%; +} + +.site-demo-upload { + position: relative; + background: #e2e2e2; +} + +.site-demo-upload .site-demo-upbar { + position: absolute; + top: 50%; + left: 50%; + margin: -18px 0 0 -56px; +} + +.site-demo-upload .layui-upload-button { + background-color: rgba(0, 0, 0, .2); + color: rgba(255, 255, 255, 1); +} + +.site-demo-util { + position: relative; + width: 300px; +} + +.site-demo-util img { + width: 300px; + border-radius: 100%; +} + +.site-demo-util span { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: #333; + cursor: pointer; +} + +@-webkit-keyframes demo-fengjie { + 0% { + -webkit-filter: blur(0); + opacity: 1; + background: #fff; + height: 300px; + border-radius: 100%; + } + 80% { + -webkit-filter: blur(50px); + opacity: 0.95; + } + 100% { + -webkit-filter: blur(20px); + opacity: 0; + background: #fff; + } +} + +@keyframes demo-fengjie { + 0% { + filter: blur(0); + opacity: 1; + background: #fff; + height: 300px; + border-radius: 100%; + } + 80% { + filter: blur(50px); + opacity: 0.95; + } + 100% { + filter: blur(20px); + opacity: 0; + background: #fff; + } +} + +.site-demo-fengjie { + -webkit-animation-name: demo-fengjie; + animation-name: demo-fengjie; + -webkit-animation-duration: 5s; + animation-duration: 5s; +} + +.layui-layout-admin .site-demo-body { + top: 106px; +} + +.site-demo-title { + position: fixed; + left: 200px; + right: 0; + top: 65px; +} + +.site-demo-code { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + border: none; + padding: 10px; + resize: none; + font-size: 12px; + background-color: #F7FBFF; + color: #881280; + font-family: Courier New; +} + +.site-demo-overflow { + overflow: hidden; +} + +/* 其它 */ +#trans-tooltip, +#tip-arrow-bottom, +#tip-arrow-top { + display: none !important; +} + +/* 独立组件 */ +.alone { + text-align: center; + background-color: #009688; + color: #fff; + font-weight: 300; + transition: all .3s; + -webkit-transition: all .3s; +} + +.alone:hover { + background-color: #5FB878; +} + +.alone a { + display: block; + padding: 50px 20px; + color: #fff; + font-size: 30px; +} + +.alone a cite { + display: block; + padding-top: 10px; + font-size: 14px; +} + +/* 适配多设备 */ +@media screen and (max-width: 750px) { + .layui-main { + width: auto; + margin: 0 10px; + } + + .logo, + .header-demo .logo { + left: 10px; + } + + .component { + display: none + } + + .site-demo-overflow { + overflow: auto; + } + + .site-nav-layim { + display: none !important; + } + + .header .layui-nav .layui-nav-item { + margin: 0; + } + + .header .layui-nav .layui-nav-item a { + padding: 0 20px; + } + + .header .layui-nav .layui-nav-item[pc] { + display: none; + } + + .header .layui-nav .layui-nav-item[mobile] { + display: inline-block; + } + + .site-banner { + height: 300px; + } + + .site-banner-bg { + background-size: cover; + } + + .site-zfj { + height: 100px; + padding-top: 5px; + } + + .site-zfj i { + top: 10px; + width: 100px; + height: 100px; + margin-left: -50px; + font-size: 100px; + } + + .site-desc { + background-size: 70%; + margin: 0; + } + + .site-desc cite { + display: none; + } + + .site-download { + margin-top: 0; + } + + .site-download a { + height: 40px; + line-height: 40px; + padding: 0 25px 0 60px; + border-radius: 30px; + color: #fff; + font-size: 16px; + } + + .site-download a cite { + left: 20px; + } + + .site-banner-other { + bottom: 10px; + } + + .site-idea { + margin: 20px 0; + } + + .site-idea li { + margin: 0 0 20px 0; + width: 100%; + height: auto; + -webkit-box-sizing: border-box !important; + -moz-box-sizing: border-box !important; + box-sizing: border-box !important; + } + + .site-hengfu img { + max-width: 100% + } + + .site-block .layui-form { + margin-right: 0; + } + + .layui-layer-dir { + display: none; + } + + .site-tree { + position: fixed; + top: 0; + bottom: 0; + min-height: 0; + overflow: auto; + z-index: 1000; + left: -260px; + background-color: #fff; + transition: all .3s; + -webkit-transition: all .3s; + } + + .site-content { + width: 100%; + padding: 0; + overflow: auto; + } + + .site-content img { + max-width: 100%; + } + + .site-tree-mobile { + display: block !important; + position: fixed; + z-index: 100000; + bottom: 15px; + left: 15px; + width: 50px; + height: 50px; + line-height: 50px; + border-radius: 2px; + text-align: center; + background-color: rgba(0, 0, 0, .7); + color: #fff; + } + + .site-home .site-tree-mobile { + display: none !important; + } + + .site-mobile .site-tree-mobile { + display: none !important; + } + + .site-mobile .site-tree { + left: 0; + } + + .site-mobile .site-mobile-shade { + content: ''; + position: fixed; + top: 0; + bottom: 0; + left: 0; + right: 0; + background-color: rgba(0, 0, 0, .8); + z-index: 999; + } + + .site-tree-mobile i { + font-size: 20px; + } + + .layui-code-view { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + + .layui-layout-admin .layui-side { + position: fixed; + top: 0; + left: -260px; + transition: all .3s; + -webkit-transition: all .3s; + z-index: 10000; + } + + .layui-body { + position: static; + bottom: 0; + left: 0; + } + + .site-mobile .layui-side { + left: 0; + } + + .site-mobile .layui-side-child { + top: 50%; + left: 200px; + height: 300px; + margin-top: -100px; + } + + body .layui-layout-admin .footer-demo { + position: static; + height: auto; + line-height: 30px; + } + + .footer-demo p { + height: auto; + } + + .site-demo-area, + .site-demo-editor, + .site-demo-result, + .site-demo-editor textarea, + .site-demo-result iframe { + position: static; + width: 100%; + } + + .site-demo-editor textarea { + height: 350px; + } + + .site-demo-zanzhu { + display: none; + } + + .site-demo-btn { + bottom: auto; + top: 370px; + } + + .site-demo-result iframe { + height: 500px; + } + + .site-demo-laytpl textarea, .site-demo-laytpl div span { + margin: 0; + } + + .site-demo-tplres .site-demo-tplh2, .site-demo-tplres .site-demo-tplview { + width: 100%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + + .site-demo-title { + position: static; + left: 0; + } + + body .layui-layout-admin .site-demo { + } + + .site-demo-code { + position: static; + height: 350px; + } +} + +.card { + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .14), 0 3px 1px -2px rgba(0, 0, 0, .2), 0 1px 5px 0 rgba(0, 0, 0, .12); + margin: 2px; + padding: 5px; + background-color: #FFFFFF; +} + +.more { + color: #009688; + width: 100%; +} + +body { + background-color: #f5f5f5; +} + +#product_new, #product_hot { + text-align: center; +} +#product_new{ + margin-bottom: 50px; +} + +.product_image { + text-align: center; + margin-bottom: 10px; + /*height: 200px;*/ +} + +.product_image > img { + max-width: 100%; + max-height: 200px; + border-radius: 3px; +} + +.price1 { + color: #FF5722; + font-size: 20px; + font-weight: bold; +} + +.price2 { + font-size: 15px; +} + +.product_title { + font-weight: 300; + width: 100%; + margin-top: 0; + color: #01AAED; + height: 39px; + overflow: hidden; + text-overflow: ellipsis; + text-align: left; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + word-break: break-all; /* 追加这一行代码 */ +} +.product_title>a{ + color: #01AAED; + text-decoration: underline; +} + +#content { + overflow-y: auto; +} + +.img_responsive { + display: block; + max-width: 100%; + height: auto; +} +.smaller{ + padding: 20px 300px; +} \ No newline at end of file diff --git a/mall-master/src/main/resources/static/css/datepicker.css b/mall-master/src/main/resources/static/css/datepicker.css new file mode 100644 index 0000000..6b7ff18 --- /dev/null +++ b/mall-master/src/main/resources/static/css/datepicker.css @@ -0,0 +1,449 @@ +/*! + * Datepicker for Bootstrap + * + * Copyright 2012 Stefan Petre + * Improvements by Andrew Rowls + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + */ +.datepicker { + padding: 4px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + direction: ltr; + /*.dow { + border-top: 1px solid #ddd !important; + }*/ + +} +.datepicker-inline { + width: 220px; +} +.datepicker.datepicker-rtl { + direction: rtl; +} +.datepicker.datepicker-rtl table tr td span { + float: right; +} +.datepicker-dropdown { + top: 0; + left: 0; +} +.datepicker-dropdown:before { + content: ''; + display: inline-block; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-bottom-color: rgba(0, 0, 0, 0.2); + position: absolute; + top: -7px; + left: 6px; +} +.datepicker-dropdown:after { + content: ''; + display: inline-block; + border-left: 6px solid transparent; + border-right: 6px solid transparent; + border-bottom: 6px solid #ffffff; + position: absolute; + top: -6px; + left: 7px; +} +.datepicker > div { + display: none; +} +.datepicker.days div.datepicker-days { + display: block; +} +.datepicker.months div.datepicker-months { + display: block; +} +.datepicker.years div.datepicker-years { + display: block; +} +.datepicker table { + margin: 0; +} +.datepicker td, +.datepicker th { + text-align: center; + width: 20px; + height: 20px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + border: none; +} +.table-striped .datepicker table tr td, +.table-striped .datepicker table tr th { + background-color: transparent; +} +.datepicker table tr td.day:hover { + background: #eeeeee; + cursor: pointer; +} +.datepicker table tr td.old, +.datepicker table tr td.new { + color: #999999; +} +.datepicker table tr td.disabled, +.datepicker table tr td.disabled:hover { + background: none; + color: #999999; + cursor: default; +} +.datepicker table tr td.today, +.datepicker table tr td.today:hover, +.datepicker table tr td.today.disabled, +.datepicker table tr td.today.disabled:hover { + background-color: #fde19a; + background-image: -moz-linear-gradient(top, #fdd49a, #fdf59a); + background-image: -ms-linear-gradient(top, #fdd49a, #fdf59a); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fdd49a), to(#fdf59a)); + background-image: -webkit-linear-gradient(top, #fdd49a, #fdf59a); + background-image: -o-linear-gradient(top, #fdd49a, #fdf59a); + background-image: linear-gradient(top, #fdd49a, #fdf59a); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0); + border-color: #fdf59a #fdf59a #fbed50; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + color: #000; +} +.datepicker table tr td.today:hover, +.datepicker table tr td.today:hover:hover, +.datepicker table tr td.today.disabled:hover, +.datepicker table tr td.today.disabled:hover:hover, +.datepicker table tr td.today:active, +.datepicker table tr td.today:hover:active, +.datepicker table tr td.today.disabled:active, +.datepicker table tr td.today.disabled:hover:active, +.datepicker table tr td.today.active, +.datepicker table tr td.today:hover.active, +.datepicker table tr td.today.disabled.active, +.datepicker table tr td.today.disabled:hover.active, +.datepicker table tr td.today.disabled, +.datepicker table tr td.today:hover.disabled, +.datepicker table tr td.today.disabled.disabled, +.datepicker table tr td.today.disabled:hover.disabled, +.datepicker table tr td.today[disabled], +.datepicker table tr td.today:hover[disabled], +.datepicker table tr td.today.disabled[disabled], +.datepicker table tr td.today.disabled:hover[disabled] { + background-color: #fdf59a; +} +.datepicker table tr td.today:active, +.datepicker table tr td.today:hover:active, +.datepicker table tr td.today.disabled:active, +.datepicker table tr td.today.disabled:hover:active, +.datepicker table tr td.today.active, +.datepicker table tr td.today:hover.active, +.datepicker table tr td.today.disabled.active, +.datepicker table tr td.today.disabled:hover.active { + background-color: #fbf069 \9; +} +.datepicker table tr td.today:hover:hover { + color: #000; +} +.datepicker table tr td.today.active:hover { + color: #fff; +} +.datepicker table tr td.range, +.datepicker table tr td.range:hover, +.datepicker table tr td.range.disabled, +.datepicker table tr td.range.disabled:hover { + background: #eeeeee; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.datepicker table tr td.range.today, +.datepicker table tr td.range.today:hover, +.datepicker table tr td.range.today.disabled, +.datepicker table tr td.range.today.disabled:hover { + background-color: #f3d17a; + background-image: -moz-linear-gradient(top, #f3c17a, #f3e97a); + background-image: -ms-linear-gradient(top, #f3c17a, #f3e97a); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f3c17a), to(#f3e97a)); + background-image: -webkit-linear-gradient(top, #f3c17a, #f3e97a); + background-image: -o-linear-gradient(top, #f3c17a, #f3e97a); + background-image: linear-gradient(top, #f3c17a, #f3e97a); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0); + border-color: #f3e97a #f3e97a #edde34; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.datepicker table tr td.range.today:hover, +.datepicker table tr td.range.today:hover:hover, +.datepicker table tr td.range.today.disabled:hover, +.datepicker table tr td.range.today.disabled:hover:hover, +.datepicker table tr td.range.today:active, +.datepicker table tr td.range.today:hover:active, +.datepicker table tr td.range.today.disabled:active, +.datepicker table tr td.range.today.disabled:hover:active, +.datepicker table tr td.range.today.active, +.datepicker table tr td.range.today:hover.active, +.datepicker table tr td.range.today.disabled.active, +.datepicker table tr td.range.today.disabled:hover.active, +.datepicker table tr td.range.today.disabled, +.datepicker table tr td.range.today:hover.disabled, +.datepicker table tr td.range.today.disabled.disabled, +.datepicker table tr td.range.today.disabled:hover.disabled, +.datepicker table tr td.range.today[disabled], +.datepicker table tr td.range.today:hover[disabled], +.datepicker table tr td.range.today.disabled[disabled], +.datepicker table tr td.range.today.disabled:hover[disabled] { + background-color: #f3e97a; +} +.datepicker table tr td.range.today:active, +.datepicker table tr td.range.today:hover:active, +.datepicker table tr td.range.today.disabled:active, +.datepicker table tr td.range.today.disabled:hover:active, +.datepicker table tr td.range.today.active, +.datepicker table tr td.range.today:hover.active, +.datepicker table tr td.range.today.disabled.active, +.datepicker table tr td.range.today.disabled:hover.active { + background-color: #efe24b \9; +} +.datepicker table tr td.selected, +.datepicker table tr td.selected:hover, +.datepicker table tr td.selected.disabled, +.datepicker table tr td.selected.disabled:hover { + background-color: #9e9e9e; + background-image: -moz-linear-gradient(top, #b3b3b3, #808080); + background-image: -ms-linear-gradient(top, #b3b3b3, #808080); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#b3b3b3), to(#808080)); + background-image: -webkit-linear-gradient(top, #b3b3b3, #808080); + background-image: -o-linear-gradient(top, #b3b3b3, #808080); + background-image: linear-gradient(top, #b3b3b3, #808080); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0); + border-color: #808080 #808080 #595959; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + color: #fff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} +.datepicker table tr td.selected:hover, +.datepicker table tr td.selected:hover:hover, +.datepicker table tr td.selected.disabled:hover, +.datepicker table tr td.selected.disabled:hover:hover, +.datepicker table tr td.selected:active, +.datepicker table tr td.selected:hover:active, +.datepicker table tr td.selected.disabled:active, +.datepicker table tr td.selected.disabled:hover:active, +.datepicker table tr td.selected.active, +.datepicker table tr td.selected:hover.active, +.datepicker table tr td.selected.disabled.active, +.datepicker table tr td.selected.disabled:hover.active, +.datepicker table tr td.selected.disabled, +.datepicker table tr td.selected:hover.disabled, +.datepicker table tr td.selected.disabled.disabled, +.datepicker table tr td.selected.disabled:hover.disabled, +.datepicker table tr td.selected[disabled], +.datepicker table tr td.selected:hover[disabled], +.datepicker table tr td.selected.disabled[disabled], +.datepicker table tr td.selected.disabled:hover[disabled] { + background-color: #808080; +} +.datepicker table tr td.selected:active, +.datepicker table tr td.selected:hover:active, +.datepicker table tr td.selected.disabled:active, +.datepicker table tr td.selected.disabled:hover:active, +.datepicker table tr td.selected.active, +.datepicker table tr td.selected:hover.active, +.datepicker table tr td.selected.disabled.active, +.datepicker table tr td.selected.disabled:hover.active { + background-color: #666666 \9; +} +.datepicker table tr td.active, +.datepicker table tr td.active:hover, +.datepicker table tr td.active.disabled, +.datepicker table tr td.active.disabled:hover { + background-color: #006dcc; + background-image: -moz-linear-gradient(top, #0088cc, #0044cc); + background-image: -ms-linear-gradient(top, #0088cc, #0044cc); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); + background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); + background-image: -o-linear-gradient(top, #0088cc, #0044cc); + background-image: linear-gradient(top, #0088cc, #0044cc); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0); + border-color: #0044cc #0044cc #002a80; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + color: #fff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} +.datepicker table tr td.active:hover, +.datepicker table tr td.active:hover:hover, +.datepicker table tr td.active.disabled:hover, +.datepicker table tr td.active.disabled:hover:hover, +.datepicker table tr td.active:active, +.datepicker table tr td.active:hover:active, +.datepicker table tr td.active.disabled:active, +.datepicker table tr td.active.disabled:hover:active, +.datepicker table tr td.active.active, +.datepicker table tr td.active:hover.active, +.datepicker table tr td.active.disabled.active, +.datepicker table tr td.active.disabled:hover.active, +.datepicker table tr td.active.disabled, +.datepicker table tr td.active:hover.disabled, +.datepicker table tr td.active.disabled.disabled, +.datepicker table tr td.active.disabled:hover.disabled, +.datepicker table tr td.active[disabled], +.datepicker table tr td.active:hover[disabled], +.datepicker table tr td.active.disabled[disabled], +.datepicker table tr td.active.disabled:hover[disabled] { + background-color: #0044cc; +} +.datepicker table tr td.active:active, +.datepicker table tr td.active:hover:active, +.datepicker table tr td.active.disabled:active, +.datepicker table tr td.active.disabled:hover:active, +.datepicker table tr td.active.active, +.datepicker table tr td.active:hover.active, +.datepicker table tr td.active.disabled.active, +.datepicker table tr td.active.disabled:hover.active { + background-color: #003399 \9; +} +.datepicker table tr td span { + display: block; + width: 23%; + height: 54px; + line-height: 54px; + float: left; + margin: 1%; + cursor: pointer; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.datepicker table tr td span:hover { + background: #eeeeee; +} +.datepicker table tr td span.disabled, +.datepicker table tr td span.disabled:hover { + background: none; + color: #999999; + cursor: default; +} +.datepicker table tr td span.active, +.datepicker table tr td span.active:hover, +.datepicker table tr td span.active.disabled, +.datepicker table tr td span.active.disabled:hover { + background-color: #006dcc; + background-image: -moz-linear-gradient(top, #0088cc, #0044cc); + background-image: -ms-linear-gradient(top, #0088cc, #0044cc); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); + background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); + background-image: -o-linear-gradient(top, #0088cc, #0044cc); + background-image: linear-gradient(top, #0088cc, #0044cc); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0); + border-color: #0044cc #0044cc #002a80; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + color: #fff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} +.datepicker table tr td span.active:hover, +.datepicker table tr td span.active:hover:hover, +.datepicker table tr td span.active.disabled:hover, +.datepicker table tr td span.active.disabled:hover:hover, +.datepicker table tr td span.active:active, +.datepicker table tr td span.active:hover:active, +.datepicker table tr td span.active.disabled:active, +.datepicker table tr td span.active.disabled:hover:active, +.datepicker table tr td span.active.active, +.datepicker table tr td span.active:hover.active, +.datepicker table tr td span.active.disabled.active, +.datepicker table tr td span.active.disabled:hover.active, +.datepicker table tr td span.active.disabled, +.datepicker table tr td span.active:hover.disabled, +.datepicker table tr td span.active.disabled.disabled, +.datepicker table tr td span.active.disabled:hover.disabled, +.datepicker table tr td span.active[disabled], +.datepicker table tr td span.active:hover[disabled], +.datepicker table tr td span.active.disabled[disabled], +.datepicker table tr td span.active.disabled:hover[disabled] { + background-color: #0044cc; +} +.datepicker table tr td span.active:active, +.datepicker table tr td span.active:hover:active, +.datepicker table tr td span.active.disabled:active, +.datepicker table tr td span.active.disabled:hover:active, +.datepicker table tr td span.active.active, +.datepicker table tr td span.active:hover.active, +.datepicker table tr td span.active.disabled.active, +.datepicker table tr td span.active.disabled:hover.active { + background-color: #003399 \9; +} +.datepicker table tr td span.old, +.datepicker table tr td span.new { + color: #999999; +} +.datepicker th.datepicker-switch { + width: 145px; +} +.datepicker thead tr:first-child th, +.datepicker tfoot tr th { + cursor: pointer; +} +.datepicker thead tr:first-child th:hover, +.datepicker tfoot tr th:hover { + background: #eeeeee; +} +.datepicker .cw { + font-size: 10px; + width: 12px; + padding: 0 2px 0 5px; + vertical-align: middle; +} +.datepicker thead tr:first-child th.cw { + cursor: default; + background-color: transparent; +} +.input-append.date .add-on i, +.input-prepend.date .add-on i { + display: block; + cursor: pointer; + width: 16px; + height: 16px; +} +.input-daterange input { + text-align: center; +} +.input-daterange input:first-child { + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} +.input-daterange input:last-child { + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} +.input-daterange .add-on { + display: inline-block; + width: auto; + min-width: 16px; + height: 18px; + padding: 4px 5px; + font-weight: normal; + line-height: 18px; + text-align: center; + text-shadow: 0 1px 0 #ffffff; + vertical-align: middle; + background-color: #eeeeee; + border: 1px solid #ccc; + margin-left: -5px; + margin-right: -5px; +} diff --git a/mall-master/src/main/resources/static/css/daterangepicker.css b/mall-master/src/main/resources/static/css/daterangepicker.css new file mode 100644 index 0000000..9a9e7a5 --- /dev/null +++ b/mall-master/src/main/resources/static/css/daterangepicker.css @@ -0,0 +1,188 @@ +.daterangepicker.dropdown-menu { + max-width: none; +} + +.daterangepicker.opensleft .ranges, .daterangepicker.opensleft .calendar { + float: left; + margin: 4px; +} + +.daterangepicker.opensright .ranges, .daterangepicker.opensright .calendar { + float: right; + margin: 4px; +} + +.daterangepicker .ranges { + width: 160px; + text-align: left; +} + +.daterangepicker .ranges .range_inputs>div { + float: left; +} + +.daterangepicker .ranges .range_inputs>div:nth-child(2) { + padding-left: 11px; +} + +.daterangepicker .calendar { + display: none; + max-width: 230px; +} + +.daterangepicker .calendar th, .daterangepicker .calendar td { + font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; + white-space: nowrap; + text-align: center; +} + +.daterangepicker .ranges label { + color: #333; + font-size: 11px; + margin-bottom: 2px; + text-transform: uppercase; + text-shadow: 1px 1px 0 #fff; +} + +.daterangepicker .ranges input { + font-size: 11px; +} + +.daterangepicker .ranges ul { + list-style: none; + margin: 0; + padding: 0; +} + +.daterangepicker .ranges li { + font-size: 13px; + background: #f5f5f5; + border: 1px solid #f5f5f5; + color: #08c; + padding: 3px 12px; + margin-bottom: 8px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + cursor: pointer; +} + +.daterangepicker .ranges li.active, .daterangepicker .ranges li:hover { + background: #08c; + border: 1px solid #08c; + color: #fff; +} + +.daterangepicker .calendar { + border: 1px solid #ddd; + padding: 4px; + border-radius: 4px; + background: #fff; +} + +.daterangepicker { + position: absolute; + background: #fff; + top: 100px; + left: 20px; + padding: 4px; + margin-top: 1px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.daterangepicker.opensleft:before { + position: absolute; + top: -7px; + right: 9px; + display: inline-block; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-left: 7px solid transparent; + border-bottom-color: rgba(0, 0, 0, 0.2); + content: ''; +} + +.daterangepicker.opensleft:after { + position: absolute; + top: -6px; + right: 10px; + display: inline-block; + border-right: 6px solid transparent; + border-bottom: 6px solid #fff; + border-left: 6px solid transparent; + content: ''; +} + +.daterangepicker.opensright:before { + position: absolute; + top: -7px; + left: 9px; + display: inline-block; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-left: 7px solid transparent; + border-bottom-color: rgba(0, 0, 0, 0.2); + content: ''; +} + +.daterangepicker.opensright:after { + position: absolute; + top: -6px; + left: 10px; + display: inline-block; + border-right: 6px solid transparent; + border-bottom: 6px solid #fff; + border-left: 6px solid transparent; + content: ''; +} + +.daterangepicker table { + width: 100%; + margin: 0; +} + +.daterangepicker td, .daterangepicker th { + text-align: center; + width: 20px; + height: 20px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + cursor: pointer; + white-space: nowrap; +} + +.daterangepicker td.off { + color: #999; +} +.daterangepicker td.disabled { + color: #999; +} + +.daterangepicker td.available:hover, .daterangepicker th.available:hover { + background: #eee; +} + +.daterangepicker td.active, .daterangepicker td.active:hover { + background-color: #006dcc; + background-image: -moz-linear-gradient(top, #0088cc, #0044cc); + background-image: -ms-linear-gradient(top, #0088cc, #0044cc); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); + background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); + background-image: -o-linear-gradient(top, #0088cc, #0044cc); + background-image: linear-gradient(top, #0088cc, #0044cc); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0); + border-color: #0044cc #0044cc #002a80; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + color: #fff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} + +.daterangepicker td.week, .daterangepicker th.week { + font-size: 80%; + color: #ccc; +} diff --git a/mall-master/src/main/resources/static/css/datetimepicker.css b/mall-master/src/main/resources/static/css/datetimepicker.css new file mode 100644 index 0000000..18bd8be --- /dev/null +++ b/mall-master/src/main/resources/static/css/datetimepicker.css @@ -0,0 +1,366 @@ +/*! + * Datetimepicker for Bootstrap + * + * Copyright 2012 Stefan Petre + * Improvements by Andrew Rowls + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + */ +.datetimepicker { + padding: 4px; + margin-top: 1px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + direction: ltr; + /*.dow { + border-top: 1px solid #ddd !important; + }*/ + +} +.datetimepicker-inline { + width: 220px; +} +.datetimepicker.datetimepicker-rtl { + direction: rtl; +} +.datetimepicker.datetimepicker-rtl table tr td span { + float: right; +} +.datetimepicker-dropdown, .datetimepicker-dropdown-left { + top: 0; + left: 0; +} +[class*=" datetimepicker-dropdown"]:before { + content: ''; + display: inline-block; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-bottom-color: rgba(0, 0, 0, 0.2); + position: absolute; +} +[class*=" datetimepicker-dropdown"]:after { + content: ''; + display: inline-block; + border-left: 6px solid transparent; + border-right: 6px solid transparent; + border-bottom: 6px solid #ffffff; + position: absolute; +} +[class*=" datetimepicker-dropdown-top"]:before { + content: ''; + display: inline-block; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + border-top: 7px solid #ccc; + border-top-color: rgba(0, 0, 0, 0.2); + border-bottom: 0; +} +[class*=" datetimepicker-dropdown-top"]:after { + content: ''; + display: inline-block; + border-left: 6px solid transparent; + border-right: 6px solid transparent; + border-top: 6px solid #ffffff; + border-bottom: 0; +} +.datetimepicker-dropdown-bottom-right:before { + top: -7px; + right: 6px; +} +.datetimepicker-dropdown-bottom-right:after { + top: -6px; + right: 7px; +} +.datetimepicker-dropdown-bottom-left:before { + top: -7px; + left: 6px; +} +.datetimepicker-dropdown-bottom-left:after { + top: -6px; + left: 7px; +} +.datetimepicker-dropdown-top-right:before { + bottom: -7px; + right: 6px; +} +.datetimepicker-dropdown-top-right:after { + bottom: -6px; + right: 7px; +} +.datetimepicker-dropdown-top-left:before { + bottom: -7px; + left: 6px; +} +.datetimepicker-dropdown-top-left:after { + bottom: -6px; + left: 7px; +} +.datetimepicker > div { + display: none; +} +.datetimepicker.minutes div.datetimepicker-minutes { + display: block; +} +.datetimepicker.hours div.datetimepicker-hours { + display: block; +} +.datetimepicker.days div.datetimepicker-days { + display: block; +} +.datetimepicker.months div.datetimepicker-months { + display: block; +} +.datetimepicker.years div.datetimepicker-years { + display: block; +} +.datetimepicker table { + margin: 0; +} +.datetimepicker td, +.datetimepicker th { + text-align: center; + width: 20px; + height: 20px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + border: none; +} +.table-striped .datetimepicker table tr td, +.table-striped .datetimepicker table tr th { + background-color: transparent; +} +.datetimepicker table tr td.minute:hover { + background: #eeeeee; + cursor: pointer; +} +.datetimepicker table tr td.hour:hover { + background: #eeeeee; + cursor: pointer; +} +.datetimepicker table tr td.day:hover { + background: #eeeeee; + cursor: pointer; +} +.datetimepicker table tr td.old, +.datetimepicker table tr td.new { + color: #999999; +} +.datetimepicker table tr td.disabled, +.datetimepicker table tr td.disabled:hover { + background: none; + color: #999999; + cursor: default; +} +.datetimepicker table tr td.today, +.datetimepicker table tr td.today:hover, +.datetimepicker table tr td.today.disabled, +.datetimepicker table tr td.today.disabled:hover { + background-color: #fde19a; + background-image: -moz-linear-gradient(top, #fdd49a, #fdf59a); + background-image: -ms-linear-gradient(top, #fdd49a, #fdf59a); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fdd49a), to(#fdf59a)); + background-image: -webkit-linear-gradient(top, #fdd49a, #fdf59a); + background-image: -o-linear-gradient(top, #fdd49a, #fdf59a); + background-image: linear-gradient(top, #fdd49a, #fdf59a); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0); + border-color: #fdf59a #fdf59a #fbed50; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} +.datetimepicker table tr td.today:hover, +.datetimepicker table tr td.today:hover:hover, +.datetimepicker table tr td.today.disabled:hover, +.datetimepicker table tr td.today.disabled:hover:hover, +.datetimepicker table tr td.today:active, +.datetimepicker table tr td.today:hover:active, +.datetimepicker table tr td.today.disabled:active, +.datetimepicker table tr td.today.disabled:hover:active, +.datetimepicker table tr td.today.active, +.datetimepicker table tr td.today:hover.active, +.datetimepicker table tr td.today.disabled.active, +.datetimepicker table tr td.today.disabled:hover.active, +.datetimepicker table tr td.today.disabled, +.datetimepicker table tr td.today:hover.disabled, +.datetimepicker table tr td.today.disabled.disabled, +.datetimepicker table tr td.today.disabled:hover.disabled, +.datetimepicker table tr td.today[disabled], +.datetimepicker table tr td.today:hover[disabled], +.datetimepicker table tr td.today.disabled[disabled], +.datetimepicker table tr td.today.disabled:hover[disabled] { + background-color: #fdf59a; +} +.datetimepicker table tr td.today:active, +.datetimepicker table tr td.today:hover:active, +.datetimepicker table tr td.today.disabled:active, +.datetimepicker table tr td.today.disabled:hover:active, +.datetimepicker table tr td.today.active, +.datetimepicker table tr td.today:hover.active, +.datetimepicker table tr td.today.disabled.active, +.datetimepicker table tr td.today.disabled:hover.active { + background-color: #fbf069 \9; +} +.datetimepicker table tr td.active, +.datetimepicker table tr td.active:hover, +.datetimepicker table tr td.active.disabled, +.datetimepicker table tr td.active.disabled:hover { + background-color: #006dcc; + background-image: -moz-linear-gradient(top, #0088cc, #0044cc); + background-image: -ms-linear-gradient(top, #0088cc, #0044cc); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); + background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); + background-image: -o-linear-gradient(top, #0088cc, #0044cc); + background-image: linear-gradient(top, #0088cc, #0044cc); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0); + border-color: #0044cc #0044cc #002a80; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + color: #fff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} +.datetimepicker table tr td.active:hover, +.datetimepicker table tr td.active:hover:hover, +.datetimepicker table tr td.active.disabled:hover, +.datetimepicker table tr td.active.disabled:hover:hover, +.datetimepicker table tr td.active:active, +.datetimepicker table tr td.active:hover:active, +.datetimepicker table tr td.active.disabled:active, +.datetimepicker table tr td.active.disabled:hover:active, +.datetimepicker table tr td.active.active, +.datetimepicker table tr td.active:hover.active, +.datetimepicker table tr td.active.disabled.active, +.datetimepicker table tr td.active.disabled:hover.active, +.datetimepicker table tr td.active.disabled, +.datetimepicker table tr td.active:hover.disabled, +.datetimepicker table tr td.active.disabled.disabled, +.datetimepicker table tr td.active.disabled:hover.disabled, +.datetimepicker table tr td.active[disabled], +.datetimepicker table tr td.active:hover[disabled], +.datetimepicker table tr td.active.disabled[disabled], +.datetimepicker table tr td.active.disabled:hover[disabled] { + background-color: #0044cc; +} +.datetimepicker table tr td.active:active, +.datetimepicker table tr td.active:hover:active, +.datetimepicker table tr td.active.disabled:active, +.datetimepicker table tr td.active.disabled:hover:active, +.datetimepicker table tr td.active.active, +.datetimepicker table tr td.active:hover.active, +.datetimepicker table tr td.active.disabled.active, +.datetimepicker table tr td.active.disabled:hover.active { + background-color: #003399 \9; +} +.datetimepicker table tr td span { + display: block; + width: 23%; + height: 54px; + line-height: 54px; + float: left; + margin: 1%; + cursor: pointer; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.datetimepicker .datetimepicker-hours span { + height: 26px; + line-height: 26px; +} +.datetimepicker .datetimepicker-hours table tr td span.hour_am, +.datetimepicker .datetimepicker-hours table tr td span.hour_pm { + width: 14.6%; +} +.datetimepicker .datetimepicker-hours fieldset legend, +.datetimepicker .datetimepicker-minutes fieldset legend { + margin-bottom: inherit; + line-height: 30px; +} +.datetimepicker .datetimepicker-minutes span { + height: 26px; + line-height: 26px; +} +.datetimepicker table tr td span:hover { + background: #eeeeee; +} +.datetimepicker table tr td span.disabled, +.datetimepicker table tr td span.disabled:hover { + background: none; + color: #999999; + cursor: default; +} +.datetimepicker table tr td span.active, +.datetimepicker table tr td span.active:hover, +.datetimepicker table tr td span.active.disabled, +.datetimepicker table tr td span.active.disabled:hover { + background-color: #006dcc; + background-image: -moz-linear-gradient(top, #0088cc, #0044cc); + background-image: -ms-linear-gradient(top, #0088cc, #0044cc); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); + background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); + background-image: -o-linear-gradient(top, #0088cc, #0044cc); + background-image: linear-gradient(top, #0088cc, #0044cc); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0); + border-color: #0044cc #0044cc #002a80; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + color: #fff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} +.datetimepicker table tr td span.active:hover, +.datetimepicker table tr td span.active:hover:hover, +.datetimepicker table tr td span.active.disabled:hover, +.datetimepicker table tr td span.active.disabled:hover:hover, +.datetimepicker table tr td span.active:active, +.datetimepicker table tr td span.active:hover:active, +.datetimepicker table tr td span.active.disabled:active, +.datetimepicker table tr td span.active.disabled:hover:active, +.datetimepicker table tr td span.active.active, +.datetimepicker table tr td span.active:hover.active, +.datetimepicker table tr td span.active.disabled.active, +.datetimepicker table tr td span.active.disabled:hover.active, +.datetimepicker table tr td span.active.disabled, +.datetimepicker table tr td span.active:hover.disabled, +.datetimepicker table tr td span.active.disabled.disabled, +.datetimepicker table tr td span.active.disabled:hover.disabled, +.datetimepicker table tr td span.active[disabled], +.datetimepicker table tr td span.active:hover[disabled], +.datetimepicker table tr td span.active.disabled[disabled], +.datetimepicker table tr td span.active.disabled:hover[disabled] { + background-color: #0044cc; +} +.datetimepicker table tr td span.active:active, +.datetimepicker table tr td span.active:hover:active, +.datetimepicker table tr td span.active.disabled:active, +.datetimepicker table tr td span.active.disabled:hover:active, +.datetimepicker table tr td span.active.active, +.datetimepicker table tr td span.active:hover.active, +.datetimepicker table tr td span.active.disabled.active, +.datetimepicker table tr td span.active.disabled:hover.active { + background-color: #003399 \9; +} +.datetimepicker table tr td span.old { + color: #999999; +} +.datetimepicker th.switch { + width: 145px; +} +.datetimepicker thead tr:first-child th, +.datetimepicker tfoot tr:first-child th { + cursor: pointer; +} +.datetimepicker thead tr:first-child th:hover, +.datetimepicker tfoot tr:first-child th:hover { + background: #eeeeee; +} +.input-append.date .add-on i, +.input-prepend.date .add-on i { + cursor: pointer; + width: 14px; + height: 14px; +} diff --git a/mall-master/src/main/resources/static/css/default.css b/mall-master/src/main/resources/static/css/default.css new file mode 100644 index 0000000..4f24267 --- /dev/null +++ b/mall-master/src/main/resources/static/css/default.css @@ -0,0 +1,289 @@ +/*** +Default theme +***/ +/*** +Reset and overrides +***/ +body { + /* + background-color: #3d3d3d !important; + */ +} +/*** +Page header +***/ +.header .navbar-inner { + filter: none !important; + background-image: none !important; + background-color: #212121 !important; +} +.header .btn-navbar { + background-color: #212121 !important; +} +.header .nav .dropdown-toggle:hover, +.header .nav .dropdown.open .dropdown-toggle { + background-color: #383838 !important; +} +.header .nav li.dropdown .dropdown-toggle i { + color: #8a8a8a !important; +} +/*** +Page sidebar +***/ +.page-sidebar { + background-color: #3d3d3d; +} +ul.page-sidebar-menu > li > a { + border-top: 1px solid #5c5c5c !important; + color: #ffffff !important; +} +ul.page-sidebar-menu > li:last-child > a { + border-bottom: 1px solid transparent !important; +} +ul.page-sidebar-menu > li a i { + color: #969696; +} +ul.page-sidebar-menu > li.open > a, +ul.page-sidebar-menu > li > a:hover, +ul.page-sidebar-menu > li:hover > a { + background: #303030; +} +ul.page-sidebar-menu > li.active > a { + background: #e02222 !important; + border-top-color: transparent !important; + color: #ffffff; +} +ul.page-sidebar-menu > li.active > a i { + color: #ffffff; +} +ul.page-sidebar-menu > li > ul.sub-menu > li:first-child > a { + border-top: 0px !important; +} +ul.page-sidebar-menu > li > ul.sub-menu > li.active > a, +ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { + color: #ffffff !important; + background: #575757 !important; +} +ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { + background: #575757 !important; +} +/* 3rd level sub menu */ +ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li.active > a, +ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li > a:hover, +ul.page-sidebar-menu > li > ul.sub-menu li.open > a { + color: #ffffff !important; + background: #575757 !important; +} +/* font color for all sub menu links*/ +ul.page-sidebar-menu li > ul.sub-menu > li > a { + color: #bdbdbd; +} +/* menu arrows */ +ul.page-sidebar-menu > li > a .arrow:before, +ul.page-sidebar-menu > li > a .arrow.open:before { + color: #7d7d7d !important; +} +ul.page-sidebar-menu > li > ul.sub-menu a .arrow:before, +ul.page-sidebar-menu > li > ul.sub-menu a .arrow.open:before { + color: #707070 !important; +} +ul.page-sidebar-menu > li > a > .arrow.open:before { + color: #8a8a8a !important; +} +ul.page-sidebar-menu > li.active > a .arrow:before, +ul.page-sidebar-menu > li.active > a .arrow.open:before { + color: #ffffff !important; +} +/* sidebar search */ +.page-sidebar .sidebar-search input { + background-color: #242424 !important; + color: #7d7d7d; +} +.page-sidebar .sidebar-search input::-webkit-input-placeholder { + color: #7d7d7d !important; +} +.page-sidebar .sidebar-search input:-moz-placeholder { + color: #7d7d7d !important; +} +.page-sidebar .sidebar-search input:-ms-input-placeholder { + color: #7d7d7d !important; +} +.page-sidebar .sidebar-search input { + background-color: #3d3d3d !important; + color: #bfbfbf !important; +} +.page-sidebar .sidebar-search .input-box { + border-bottom: 1px solid #7d7d7d !important; +} +.page-sidebar .sidebar-search .submit { + background-image: url(../image/search-icon.png); +} +/*** +Sidebar toggler +***/ +.sidebar-toggler { + background-image: url(../image/sidebar-toggler.jpg); + background-color: #242424; +} +/* search box bg color on expanded */ +.page-sidebar-closed .page-sidebar .sidebar-search.open { + background-color: #3d3d3d !important; +} +.page-sidebar-closed .page-sidebar .sidebar-search.open .remove { + background-image: url("../image/sidebar-search-close.png"); +} +/* sub menu bg color on hover menu item */ +.page-sidebar-closed ul.page-sidebar-menu > li:hover .sub-menu { + background-color: #3d3d3d; +} +/*** +Horizontal Menu(new in v1.2) +***/ +/*search*/ +.header .hor-menu .hor-menu-search-form-toggler.hide { + background: #000000 url(../image/hor-menu-search-close.png) no-repeat center; +} +.header .hor-menu .search-form { + background: #000000; +} +.header .hor-menu .search-form .btn { + color: #d6d6d6; + background: #000000 url(../image/search-icon.png) no-repeat center; +} +.header .hor-menu .search-form form input { + color: #d6d6d6; +} +.header .hor-menu .search-form form input::-webkit-input-placeholder { + /* WebKit browsers */ + + color: #d6d6d6; +} +.header .hor-menu .search-form form input:-moz-placeholder { + /* Mozilla Firefox 4 to 18 */ + + color: #d6d6d6; +} +.header .hor-menu .search-form form input::-moz-placeholder { + /* Mozilla Firefox 19+ */ + + color: #d6d6d6; +} +.header .hor-menu .search-form form input:-ms-input-placeholder { + /* Internet Explorer 10+ */ + + color: #d6d6d6; +} +/*** +Footer +***/ +.footer .footer-inner { + color: #999999; +} +.footer .footer-tools .go-top { + background-color: #4f4f4f; +} +.footer .footer-tools .go-top:hover { + opacity: 0.7; + filter: alpha(opacity=70); +} +.footer .footer-tools .go-top i { + color: #8a8a8a; +} +/*** +Footer Layouts (new in v1.3) +***/ +/* begin:fixed footer */ +.page-footer-fixed .footer { + background-color: #242424; +} +.page-footer-fixed .footer .footer-inner { + color: #999999; +} +.page-footer-fixed .footer .footer-tools .go-top { + background-color: #4f4f4f; +} +.page-footer-fixed .footer .footer-tools .go-top i { + color: #8a8a8a; +} +/* end:fixed footer */ +/*** +Gritter Notifications +***/ +.gritter-top { + background: url(../image/gritter.png) no-repeat left -30px !important; +} +.gritter-bottom { + background: url(../image/gritter.png) no-repeat left bottom !important; +} +.gritter-item { + display: block; + background: url(../image/gritter.png) no-repeat left -40px !important; +} +.gritter-close { + background: url(../image/gritter.png) no-repeat left top !important; +} +.gritter-title { + text-shadow: none !important; + /* Not supported by IE :( */ + +} +/* for the light (white) version of the gritter notice */ +.gritter-light .gritter-item, +.gritter-light .gritter-bottom, +.gritter-light .gritter-top, +.gritter-light .gritter-close { + background-image: url(../image/gritter-light.png) !important; +} +.gritter-item-wrapper a { + color: #18a5ed; +} +.gritter-item-wrapper a:hover { + color: #0b6694; +} +/* begin: boxed page */ +@media (min-width: 980px) { + .page-boxed { + background-color: #2e2e2e !important; + } + .page-boxed .page-container { + background-color: #3d3d3d; + border-left: 1px solid #5e5e5e; + border-bottom: 1px solid #5e5e5e; + } + .page-boxed.page-sidebar-fixed .page-container { + border-left: 0; + border-bottom: 0; + } + .page-boxed.page-sidebar-fixed .page-sidebar { + border-left: 1px solid #5e5e5e; + } + .page-boxed.page-sidebar-fixed.page-footer-fixed .footer { + background-color: #2e2e2e !important; + } +} +/* end: boxed page */ +/*** +Landscape phone to portrait tablet +***/ +@media (max-width: 979px) { + /*** + page sidebar + ***/ + .page-sidebar { + background-color: #292929 !important; + } + ul.page-sidebar-menu > li > a { + border-top: 1px solid #4a4a4a !important; + } + ul.page-sidebar-menu > li:last-child > a { + border-bottom: 0 !important; + } + .page-sidebar .sidebar-search input { + background-color: #292929 !important; + } + ul.page-sidebar-menu > li.open > a, + ul.page-sidebar-menu > li > a:hover, + ul.page-sidebar-menu > li:hover > a { + background: #1e1e1e; + } +} diff --git a/mall-master/src/main/resources/static/css/dropzone.css b/mall-master/src/main/resources/static/css/dropzone.css new file mode 100644 index 0000000..609be5e --- /dev/null +++ b/mall-master/src/main/resources/static/css/dropzone.css @@ -0,0 +1,388 @@ +/* The MIT License */ +.dropzone, +.dropzone *, +.dropzone-previews, +.dropzone-previews * { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.dropzone { + position: relative; + border: 1px solid rgba(0,0,0,0.08); + background: rgba(0,0,0,0.02); + padding: 1em; +} +.dropzone.dz-clickable { + cursor: pointer; +} +.dropzone.dz-clickable .dz-message, +.dropzone.dz-clickable .dz-message span { + cursor: pointer; +} +.dropzone.dz-clickable * { + cursor: default; +} +.dropzone .dz-message { + opacity: 1; + -ms-filter: none; + filter: none; +} +.dropzone.dz-drag-hover { + border-color: rgba(0,0,0,0.15); + background: rgba(0,0,0,0.04); +} +.dropzone.dz-started .dz-message { + display: none; +} +.dropzone .dz-preview, +.dropzone-previews .dz-preview { + background: rgba(255,255,255,0.8); + position: relative; + display: inline-block; + margin: 17px; + vertical-align: top; + border: 1px solid #acacac; + padding: 6px 6px 6px 6px; +} +.dropzone .dz-preview.dz-file-preview [data-dz-thumbnail], +.dropzone-previews .dz-preview.dz-file-preview [data-dz-thumbnail] { + display: none; +} +.dropzone .dz-preview .dz-details, +.dropzone-previews .dz-preview .dz-details { + width: 100px; + height: 100px; + position: relative; + background: #ebebeb; + padding: 5px; + margin-bottom: 22px; +} +.dropzone .dz-preview .dz-details .dz-filename, +.dropzone-previews .dz-preview .dz-details .dz-filename { + overflow: hidden; + height: 100%; +} +.dropzone .dz-preview .dz-details img, +.dropzone-previews .dz-preview .dz-details img { + position: absolute; + top: 0; + left: 0; + width: 100px; + height: 100px; +} +.dropzone .dz-preview .dz-details .dz-size, +.dropzone-previews .dz-preview .dz-details .dz-size { + position: absolute; + bottom: -28px; + left: 3px; + height: 28px; + line-height: 28px; +} +.dropzone .dz-preview.dz-error .dz-error-mark, +.dropzone-previews .dz-preview.dz-error .dz-error-mark { + display: block; +} +.dropzone .dz-preview.dz-success .dz-success-mark, +.dropzone-previews .dz-preview.dz-success .dz-success-mark { + display: block; +} +.dropzone .dz-preview:hover .dz-details img, +.dropzone-previews .dz-preview:hover .dz-details img { + display: none; +} +.dropzone .dz-preview .dz-success-mark, +.dropzone-previews .dz-preview .dz-success-mark, +.dropzone .dz-preview .dz-error-mark, +.dropzone-previews .dz-preview .dz-error-mark { + display: none; + position: absolute; + width: 40px; + height: 40px; + font-size: 30px; + text-align: center; + right: -10px; + top: -10px; +} +.dropzone .dz-preview .dz-success-mark, +.dropzone-previews .dz-preview .dz-success-mark { + color: #8cc657; +} +.dropzone .dz-preview .dz-error-mark, +.dropzone-previews .dz-preview .dz-error-mark { + color: #ee162d; +} +.dropzone .dz-preview .dz-progress, +.dropzone-previews .dz-preview .dz-progress { + position: absolute; + top: 100px; + left: 6px; + right: 6px; + height: 6px; + background: #d7d7d7; + display: none; +} +.dropzone .dz-preview .dz-progress .dz-upload, +.dropzone-previews .dz-preview .dz-progress .dz-upload { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 0%; + background-color: #8cc657; +} +.dropzone .dz-preview.dz-processing .dz-progress, +.dropzone-previews .dz-preview.dz-processing .dz-progress { + display: block; +} +.dropzone .dz-preview .dz-error-message, +.dropzone-previews .dz-preview .dz-error-message { + display: none; + position: absolute; + top: -5px; + left: -20px; + background: rgba(245,245,245,0.8); + padding: 8px 10px; + color: #800; + min-width: 140px; + max-width: 500px; + z-index: 500; +} +.dropzone .dz-preview:hover.dz-error .dz-error-message, +.dropzone-previews .dz-preview:hover.dz-error .dz-error-message { + display: block; +} +.dropzone { + border: 1px solid rgba(0,0,0,0.03); + min-height: 360px; + -webkit-border-radius: 3px; + border-radius: 3px; + background: rgba(0,0,0,0.03); + padding: 23px; +} +.dropzone .dz-default.dz-message { + opacity: 1; + -ms-filter: none; + filter: none; + -webkit-transition: opacity 0.3s ease-in-out; + -moz-transition: opacity 0.3s ease-in-out; + -o-transition: opacity 0.3s ease-in-out; + -ms-transition: opacity 0.3s ease-in-out; + transition: opacity 0.3s ease-in-out; + background-image: url("../image/spritemap.png"); + background-repeat: no-repeat; + background-position: 0 0; + position: absolute; + width: 428px; + height: 123px; + margin-left: -214px; + margin-top: -61.5px; + top: 50%; + left: 50%; +} +@media all and (-webkit-min-device-pixel-ratio: 1.5) { + .dropzone .dz-default.dz-message { + background-image: url("../image/spritemap@2x.png"); + -webkit-background-size: 428px 406px; + -moz-background-size: 428px 406px; + background-size: 428px 406px; + } +} +.dropzone .dz-default.dz-message span { + display: none; +} +.dropzone.dz-square .dz-default.dz-message { + background-position: 0 -123px; + width: 268px; + margin-left: -134px; + height: 174px; + margin-top: -87px; +} +.dropzone.dz-drag-hover .dz-message { + opacity: 0.15; + filter: alpha(opacity=15); + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=15)"; +} +.dropzone.dz-started .dz-message { + display: block; + opacity: 0; + filter: alpha(opacity=0); + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; +} +.dropzone .dz-preview, +.dropzone-previews .dz-preview { + -webkit-box-shadow: 1px 1px 4px rgba(0,0,0,0.16); + box-shadow: 1px 1px 4px rgba(0,0,0,0.16); + font-size: 14px; +} +.dropzone .dz-preview.dz-image-preview:hover .dz-details img, +.dropzone-previews .dz-preview.dz-image-preview:hover .dz-details img { + display: block; + opacity: 0.1; + filter: alpha(opacity=10); + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=10)"; +} +.dropzone .dz-preview.dz-success .dz-success-mark, +.dropzone-previews .dz-preview.dz-success .dz-success-mark { + opacity: 1; + -ms-filter: none; + filter: none; +} +.dropzone .dz-preview.dz-error .dz-error-mark, +.dropzone-previews .dz-preview.dz-error .dz-error-mark { + opacity: 1; + -ms-filter: none; + filter: none; +} +.dropzone .dz-preview.dz-error .dz-progress .dz-upload, +.dropzone-previews .dz-preview.dz-error .dz-progress .dz-upload { + background: #ee1e2d; +} +.dropzone .dz-preview .dz-error-mark, +.dropzone-previews .dz-preview .dz-error-mark, +.dropzone .dz-preview .dz-success-mark, +.dropzone-previews .dz-preview .dz-success-mark { + display: block; + opacity: 0; + filter: alpha(opacity=0); + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + -webkit-transition: opacity 0.4s ease-in-out; + -moz-transition: opacity 0.4s ease-in-out; + -o-transition: opacity 0.4s ease-in-out; + -ms-transition: opacity 0.4s ease-in-out; + transition: opacity 0.4s ease-in-out; + background-image: url("../image/spritemap.png"); + background-repeat: no-repeat; +} +@media all and (-webkit-min-device-pixel-ratio: 1.5) { + .dropzone .dz-preview .dz-error-mark, + .dropzone-previews .dz-preview .dz-error-mark, + .dropzone .dz-preview .dz-success-mark, + .dropzone-previews .dz-preview .dz-success-mark { + background-image: url("../image/spritemap@2x.png"); + -webkit-background-size: 428px 406px; + -moz-background-size: 428px 406px; + background-size: 428px 406px; + } +} +.dropzone .dz-preview .dz-error-mark span, +.dropzone-previews .dz-preview .dz-error-mark span, +.dropzone .dz-preview .dz-success-mark span, +.dropzone-previews .dz-preview .dz-success-mark span { + display: none; +} +.dropzone .dz-preview .dz-error-mark, +.dropzone-previews .dz-preview .dz-error-mark { + background-position: -268px -123px; +} +.dropzone .dz-preview .dz-success-mark, +.dropzone-previews .dz-preview .dz-success-mark { + background-position: -268px -163px; +} +.dropzone .dz-preview .dz-progress .dz-upload, +.dropzone-previews .dz-preview .dz-progress .dz-upload { + -webkit-animation: loading 0.4s linear infinite; + -moz-animation: loading 0.4s linear infinite; + -o-animation: loading 0.4s linear infinite; + -ms-animation: loading 0.4s linear infinite; + animation: loading 0.4s linear infinite; + -webkit-transition: width 0.3s ease-in-out; + -moz-transition: width 0.3s ease-in-out; + -o-transition: width 0.3s ease-in-out; + -ms-transition: width 0.3s ease-in-out; + transition: width 0.3s ease-in-out; + -webkit-border-radius: 2px; + border-radius: 2px; + position: absolute; + top: 0; + left: 0; + width: 0%; + height: 100%; + background-image: url("../image/spritemap.png"); + background-repeat: repeat-x; + background-position: 0px -400px; +} +@media all and (-webkit-min-device-pixel-ratio: 1.5) { + .dropzone .dz-preview .dz-progress .dz-upload, + .dropzone-previews .dz-preview .dz-progress .dz-upload { + background-image: url("../image/spritemap@2x.png"); + -webkit-background-size: 428px 406px; + -moz-background-size: 428px 406px; + background-size: 428px 406px; + } +} +.dropzone .dz-preview.dz-success .dz-progress, +.dropzone-previews .dz-preview.dz-success .dz-progress { + display: block; + opacity: 0; + filter: alpha(opacity=0); + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + -webkit-transition: opacity 0.4s ease-in-out; + -moz-transition: opacity 0.4s ease-in-out; + -o-transition: opacity 0.4s ease-in-out; + -ms-transition: opacity 0.4s ease-in-out; + transition: opacity 0.4s ease-in-out; +} +.dropzone .dz-preview .dz-error-message, +.dropzone-previews .dz-preview .dz-error-message { + display: block; + opacity: 0; + filter: alpha(opacity=0); + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + -webkit-transition: opacity 0.3s ease-in-out; + -moz-transition: opacity 0.3s ease-in-out; + -o-transition: opacity 0.3s ease-in-out; + -ms-transition: opacity 0.3s ease-in-out; + transition: opacity 0.3s ease-in-out; +} +.dropzone .dz-preview:hover.dz-error .dz-error-message, +.dropzone-previews .dz-preview:hover.dz-error .dz-error-message { + opacity: 1; + -ms-filter: none; + filter: none; +} +@-moz-keyframes loading { + 0% { + background-position: 0 -400px; + } + + 100% { + background-position: -7px -400px; + } +} +@-webkit-keyframes loading { + 0% { + background-position: 0 -400px; + } + + 100% { + background-position: -7px -400px; + } +} +@-o-keyframes loading { + 0% { + background-position: 0 -400px; + } + + 100% { + background-position: -7px -400px; + } +} +@-ms-keyframes loading { + 0% { + background-position: 0 -400px; + } + + 100% { + background-position: -7px -400px; + } +} +@keyframes loading { + 0% { + background-position: 0 -400px; + } + + 100% { + background-position: -7px -400px; + } +} diff --git a/mall-master/src/main/resources/static/css/email.css b/mall-master/src/main/resources/static/css/email.css new file mode 100644 index 0000000..8c27ff2 --- /dev/null +++ b/mall-master/src/main/resources/static/css/email.css @@ -0,0 +1,48 @@ +/*** +Email Template Page +***/ +.mail-template ul { + padding:0px; + margin: 0px; + list-style:none; +} + +.mail-template li { + margin:0 5px; + cursor:pointer; + list-style:none; + border:solid 2px #fff; +} + +.mail-template li:hover { + border:solid 2px #aaa; +} + +.mail-template li a{ + display:block; + padding:25px; +} + +.mail-template li a:hover { + text-decoration: none; +} + +.mail-template li.color-black { + background:#1f1f1f; +} + +.mail-template li.color-darkblue { + background:#1570a6; +} + +.mail-template li.color-lightblue { + background:#4aabf9; +} + +.mail-template li.color-red { + background:#eb4d41; +} + +.mail-template li.color-green { + background:#28b779; +} \ No newline at end of file diff --git a/mall-master/src/main/resources/static/css/error.css b/mall-master/src/main/resources/static/css/error.css new file mode 100644 index 0000000..3367ec0 --- /dev/null +++ b/mall-master/src/main/resources/static/css/error.css @@ -0,0 +1,141 @@ +/*** +Error Pages +***/ + +/* 404 page option #1 */ + +.page-404 { + text-align: center; +} + +.page-404 .number { + display: inline-block; + letter-spacing: -10px; + margin-top: 0px; + line-height: 128px; + font-size: 158px; + font-weight: 300; + color: #7bbbd6; + text-align: right; +} + +.page-404 .details { + margin-left: 40px; + display: inline-block; + padding-top: 0px; + text-align: left; +} + +/* 500 page option #1 */ +.page-500 { + text-align: center; +} + +.page-500 .number { + display: inline-block; + letter-spacing: -10px; + line-height: 128px; + font-size: 158px; + font-weight: 300; + color: #ec8c8c; + text-align: right; +} + +.page-500 .details { + margin-left: 40px; + display: inline-block; + text-align: left; +} + +/* 404 page option #2*/ +.page-404-full-page { + padding: 20px; + background-color: #fafafa !important; +} + +.page-404-full-page .details input { + background-color: #ffffff; +} + +.page-404-full-page .page-404 { + margin-top: 100px; +} + +/* 500 page option #2*/ +.page-500-full-page { + padding: 20px; + background-color: #fafafa !important; +} + +.page-500-full-page .details input { + background-color: #ffffff; +} + +.page-500-full-page .page-500 { + margin-top: 100px; +} + +/* 404 page option #3*/ + +.page-404-3 { + background: #000 !important ; +} + +.page-404-3 .page-inner img { + right: 0; + bottom: 0; + z-index: -1; + position: absolute; +} + +.page-404-3 .error-404 { + color: #fff; + text-align: left; + padding: 70px 20px 0; +} + +.page-404-3 h1 { + color: #fff; + font-size: 130px; + line-height: 160px; +} + +.page-404-3 h2 { + color: #fff; + font-size: 30px; + margin-bottom: 30px; +} + +.page-404-3 p { + color: #fff; + font-size: 16px; +} + + +@media (max-width: 480px) { + + .page-404 .number, + .page-500 .number, + .page-404 .details, + .page-500 .details { + text-align: center; + margin-left: 0px; + } + + .page-404-full-page .page-404 { + margin-top: 30px; + } + + .page-404-3 .error-404 { + text-align: left; + padding-top: 10px; + } + + .page-404-3 .page-inner img { + right: 0; + bottom: 0; + z-index: -1; + position: fixed; + } + +} \ No newline at end of file diff --git a/mall-master/src/main/resources/static/css/font-awesome.css b/mall-master/src/main/resources/static/css/font-awesome.css new file mode 100644 index 0000000..6290a2c --- /dev/null +++ b/mall-master/src/main/resources/static/css/font-awesome.css @@ -0,0 +1,1505 @@ +/*! + * Font Awesome 3.2.0 + * the iconic font designed for Bootstrap + * ------------------------------------------------------------------------------ + * The full suite of pictographic icons, examples, and documentation can be + * found at http://fontawesome.io. Stay up to date on Twitter at + * http://twitter.com/fontawesome. + * + * License + * ------------------------------------------------------------------------------ + * - The Font Awesome font is licensed under SIL OFL 1.1 - + * http://scripts.sil.org/OFL + * - Font Awesome CSS, LESS, and SASS files are licensed under MIT License - + * http://opensource.org/licenses/mit-license.html + * - Font Awesome documentation licensed under CC BY 3.0 - + * http://creativecommons.org/licenses/by/3.0/ + * - Attribution is no longer required in Font Awesome 3.0, but much appreciated: + * "Font Awesome by Dave Gandy - http://fontawesome.io" + * + * Author - Dave Gandy + * ------------------------------------------------------------------------------ + * Email: dave@fontawesome.io + * Twitter: http://twitter.com/byscuits + * Work: Lead Product Designer @ Kyruus - http://kyruus.com + */ +/* FONT PATH + * -------------------------- */ +@font-face { + font-family: 'FontAwesome'; + src: url('../image/fontawesome-webfont.eot'); + src: url('../image/fontawesome-webfont.eot') format('embedded-opentype'), url('../image/fontawesome-webfont.woff') format('woff'), url('../image/fontawesome-webfont.ttf') format('truetype'), url('../image/fontawesome-webfont.svg#fontawesomeregular') format('svg'); + font-weight: normal; + font-style: normal; +} +/* FONT AWESOME CORE + * -------------------------- */ +[class^="icon-"], +[class*=" icon-"] { + font-family: FontAwesome; + font-weight: normal; + font-style: normal; + text-decoration: inherit; + display: inline; + width: auto; + height: auto; + line-height: normal; + vertical-align: baseline; + background-image: none !important; + background-position: 0% 0%; + background-repeat: repeat; +} +[class^="icon-"]:before, +[class*=" icon-"]:before { + text-decoration: inherit; + display: inline-block; + speak: none; +} +/* makes the font 33% larger relative to the icon container */ +.icon-large:before { + vertical-align: -10%; + font-size: 1.3333333333333333em; +} +/* makes sure icons active on rollover in links */ +a [class^="icon-"], +a [class*=" icon-"] { + display: inline; +} +/* increased font size for icon-large */ +[class^="icon-"].icon-fixed-width, +[class*=" icon-"].icon-fixed-width { + display: inline-block; + width: 1.1428571428571428em; + text-align: right; + padding-right: 0.2857142857142857em; +} +[class^="icon-"].icon-fixed-width.icon-large, +[class*=" icon-"].icon-fixed-width.icon-large { + width: 1.4285714285714286em; +} +.icons-ul { + margin-left: 2.142857142857143em; + list-style-type: none; +} +.icons-ul > li { + position: relative; +} +.icons-ul .icon-li { + position: absolute; + left: -2.142857142857143em; + width: 2.142857142857143em; + text-align: center; + line-height: inherit; +} +[class^="icon-"].hide, +[class*=" icon-"].hide { + display: none; +} +.icon-muted { + color: #eeeeee; +} +.icon-light { + color: #ffffff; +} +.icon-dark { + color: #333333; +} +.icon-border { + border: solid 1px #eeeeee; + padding: .2em .25em .15em; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.icon-2x { + font-size: 2em; +} +.icon-2x.icon-border { + border-width: 2px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.icon-3x { + font-size: 3em; +} +.icon-3x.icon-border { + border-width: 3px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +.icon-4x { + font-size: 4em; +} +.icon-4x.icon-border { + border-width: 4px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} +.icon-5x { + font-size: 5em; +} +.icon-5x.icon-border { + border-width: 5px; + -webkit-border-radius: 7px; + -moz-border-radius: 7px; + border-radius: 7px; +} +.pull-right { + float: right; +} +.pull-left { + float: left; +} +[class^="icon-"].pull-left, +[class*=" icon-"].pull-left { + margin-right: .3em; +} +[class^="icon-"].pull-right, +[class*=" icon-"].pull-right { + margin-left: .3em; +} +/* BOOTSTRAP SPECIFIC CLASSES + * -------------------------- */ +/* Bootstrap 2.0 sprites.less reset */ +/* includes sprites.less reset */ +[class^="icon-"], +[class*=" icon-"] { + font-family: FontAwesome; + font-weight: normal; + font-style: normal; + text-decoration: inherit; + display: inline; + width: auto; + height: auto; + line-height: normal; + vertical-align: baseline; + background-image: none !important; + background-position: 0% 0%; + background-repeat: repeat; +} +[class^="icon-"]:before, +[class*=" icon-"]:before { + text-decoration: inherit; + display: inline-block; + speak: none; +} +/* makes sure icons active on rollover in links */ +a [class^="icon-"], +a [class*=" icon-"] { + display: inline-block; +} +/* makes the font 33% larger relative to the icon container */ +.icon-large:before { + vertical-align: -10%; + font-size: 1.3333333333333333em; +} +.btn [class^="icon-"], +.nav [class^="icon-"], +.btn [class*=" icon-"], +.nav [class*=" icon-"] { + display: inline; + /* keeps button heights with and without icons the same */ + + line-height: .6em; +} +/* more sprites.less reset */ +.icon-white, +.nav-pills > .active > a > [class^="icon-"], +.nav-pills > .active > a > [class*=" icon-"], +.nav-list > .active > a > [class^="icon-"], +.nav-list > .active > a > [class*=" icon-"], +.navbar-inverse .nav > .active > a > [class^="icon-"], +.navbar-inverse .nav > .active > a > [class*=" icon-"], +.dropdown-menu > li > a:hover > [class^="icon-"], +.dropdown-menu > li > a:hover > [class*=" icon-"], +.dropdown-menu > .active > a > [class^="icon-"], +.dropdown-menu > .active > a > [class*=" icon-"], +.dropdown-submenu:hover > a > [class^="icon-"], +.dropdown-submenu:hover > a > [class*=" icon-"] { + background-image: none; +} +/* keeps Bootstrap styles with and without icons the same */ +.btn [class^="icon-"].icon-large, +.nav [class^="icon-"].icon-large, +.btn [class*=" icon-"].icon-large, +.nav [class*=" icon-"].icon-large { + line-height: .9em; +} +.btn [class^="icon-"].icon-spin, +.nav [class^="icon-"].icon-spin, +.btn [class*=" icon-"].icon-spin, +.nav [class*=" icon-"].icon-spin { + display: inline-block; +} +.nav-tabs [class^="icon-"], +.nav-pills [class^="icon-"], +.nav-tabs [class*=" icon-"], +.nav-pills [class*=" icon-"], +.nav-tabs [class^="icon-"].icon-large, +.nav-pills [class^="icon-"].icon-large, +.nav-tabs [class*=" icon-"].icon-large, +.nav-pills [class*=" icon-"].icon-large { + line-height: .9em; +} +.btn [class^="icon-"].pull-left.icon-2x, +.btn [class*=" icon-"].pull-left.icon-2x, +.btn [class^="icon-"].pull-right.icon-2x, +.btn [class*=" icon-"].pull-right.icon-2x { + margin-top: .18em; +} +.btn [class^="icon-"].icon-spin.icon-large, +.btn [class*=" icon-"].icon-spin.icon-large { + line-height: .8em; +} +.btn.btn-small [class^="icon-"].pull-left.icon-2x, +.btn.btn-small [class*=" icon-"].pull-left.icon-2x, +.btn.btn-small [class^="icon-"].pull-right.icon-2x, +.btn.btn-small [class*=" icon-"].pull-right.icon-2x { + margin-top: .25em; +} +.btn.btn-large [class^="icon-"], +.btn.btn-large [class*=" icon-"] { + margin-top: 0; +} +.btn.btn-large [class^="icon-"].pull-left.icon-2x, +.btn.btn-large [class*=" icon-"].pull-left.icon-2x, +.btn.btn-large [class^="icon-"].pull-right.icon-2x, +.btn.btn-large [class*=" icon-"].pull-right.icon-2x { + margin-top: .05em; +} +.btn.btn-large [class^="icon-"].pull-left.icon-2x, +.btn.btn-large [class*=" icon-"].pull-left.icon-2x { + margin-right: .2em; +} +.btn.btn-large [class^="icon-"].pull-right.icon-2x, +.btn.btn-large [class*=" icon-"].pull-right.icon-2x { + margin-left: .2em; +} +/* EXTRAS + * -------------------------- */ +/* Stacked and layered icon */ +.icon-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: -35%; +} +.icon-stack [class^="icon-"], +.icon-stack [class*=" icon-"] { + display: block; + text-align: center; + position: absolute; + width: 100%; + height: 100%; + font-size: 1em; + line-height: inherit; + *line-height: 2em; +} +.icon-stack .icon-stack-base { + font-size: 2em; + *line-height: 1em; +} +/* Animated rotating icon */ +.icon-spin { + display: inline-block; + -moz-animation: spin 2s infinite linear; + -o-animation: spin 2s infinite linear; + -webkit-animation: spin 2s infinite linear; + animation: spin 2s infinite linear; +} +a .icon-spin { + display: inline-block; + text-decoration: none; +} +@-moz-keyframes spin { + 0% { + -moz-transform: rotate(0deg); + } + 100% { + -moz-transform: rotate(359deg); + } +} +@-webkit-keyframes spin { + 0% { + -webkit-transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + } +} +@-o-keyframes spin { + 0% { + -o-transform: rotate(0deg); + } + 100% { + -o-transform: rotate(359deg); + } +} +@-ms-keyframes spin { + 0% { + -ms-transform: rotate(0deg); + } + 100% { + -ms-transform: rotate(359deg); + } +} +@keyframes spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(359deg); + } +} +/* Icon rotations and mirroring */ +.icon-rotate-90:before { + -webkit-transform: rotate(90deg); + -moz-transform: rotate(90deg); + -ms-transform: rotate(90deg); + -o-transform: rotate(90deg); + transform: rotate(90deg); + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); +} +.icon-rotate-180:before { + -webkit-transform: rotate(180deg); + -moz-transform: rotate(180deg); + -ms-transform: rotate(180deg); + -o-transform: rotate(180deg); + transform: rotate(180deg); + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); +} +.icon-rotate-270:before { + -webkit-transform: rotate(270deg); + -moz-transform: rotate(270deg); + -ms-transform: rotate(270deg); + -o-transform: rotate(270deg); + transform: rotate(270deg); + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); +} +.icon-flip-horizontal:before { + -webkit-transform: scale(-1, 1); + -moz-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + -o-transform: scale(-1, 1); + transform: scale(-1, 1); +} +.icon-flip-vertical:before { + -webkit-transform: scale(1, -1); + -moz-transform: scale(1, -1); + -ms-transform: scale(1, -1); + -o-transform: scale(1, -1); + transform: scale(1, -1); +} +/* ensure rotation occurs inside anchor tags */ +a .icon-rotate-90:before, +a .icon-rotate-180:before, +a .icon-rotate-270:before, +a .icon-flip-horizontal:before, +a .icon-flip-vertical:before { + display: inline-block; +} +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ +.icon-glass:before { + content: "\f000"; +} +.icon-music:before { + content: "\f001"; +} +.icon-search:before { + content: "\f002"; +} +.icon-envelope-alt:before { + content: "\f003"; +} +.icon-heart:before { + content: "\f004"; +} +.icon-star:before { + content: "\f005"; +} +.icon-star-empty:before { + content: "\f006"; +} +.icon-user:before { + content: "\f007"; +} +.icon-film:before { + content: "\f008"; +} +.icon-th-large:before { + content: "\f009"; +} +.icon-th:before { + content: "\f00a"; +} +.icon-th-list:before { + content: "\f00b"; +} +.icon-ok:before { + content: "\f00c"; +} +.icon-remove:before { + content: "\f00d"; +} +.icon-zoom-in:before { + content: "\f00e"; +} +.icon-zoom-out:before { + content: "\f010"; +} +.icon-power-off:before, +.icon-off:before { + content: "\f011"; +} +.icon-signal:before { + content: "\f012"; +} +.icon-cog:before { + content: "\f013"; +} +.icon-trash:before { + content: "\f014"; +} +.icon-home:before { + content: "\f015"; +} +.icon-file-alt:before { + content: "\f016"; +} +.icon-time:before { + content: "\f017"; +} +.icon-road:before { + content: "\f018"; +} +.icon-download-alt:before { + content: "\f019"; +} +.icon-download:before { + content: "\f01a"; +} +.icon-upload:before { + content: "\f01b"; +} +.icon-inbox:before { + content: "\f01c"; +} +.icon-play-circle:before { + content: "\f01d"; +} +.icon-rotate-right:before, +.icon-repeat:before { + content: "\f01e"; +} +.icon-refresh:before { + content: "\f021"; +} +.icon-list-alt:before { + content: "\f022"; +} +.icon-lock:before { + content: "\f023"; +} +.icon-flag:before { + content: "\f024"; +} +.icon-headphones:before { + content: "\f025"; +} +.icon-volume-off:before { + content: "\f026"; +} +.icon-volume-down:before { + content: "\f027"; +} +.icon-volume-up:before { + content: "\f028"; +} +.icon-qrcode:before { + content: "\f029"; +} +.icon-barcode:before { + content: "\f02a"; +} +.icon-tag:before { + content: "\f02b"; +} +.icon-tags:before { + content: "\f02c"; +} +.icon-book:before { + content: "\f02d"; +} +.icon-bookmark:before { + content: "\f02e"; +} +.icon-print:before { + content: "\f02f"; +} +.icon-camera:before { + content: "\f030"; +} +.icon-font:before { + content: "\f031"; +} +.icon-bold:before { + content: "\f032"; +} +.icon-italic:before { + content: "\f033"; +} +.icon-text-height:before { + content: "\f034"; +} +.icon-text-width:before { + content: "\f035"; +} +.icon-align-left:before { + content: "\f036"; +} +.icon-align-center:before { + content: "\f037"; +} +.icon-align-right:before { + content: "\f038"; +} +.icon-align-justify:before { + content: "\f039"; +} +.icon-list:before { + content: "\f03a"; +} +.icon-indent-left:before { + content: "\f03b"; +} +.icon-indent-right:before { + content: "\f03c"; +} +.icon-facetime-video:before { + content: "\f03d"; +} +.icon-picture:before { + content: "\f03e"; +} +.icon-pencil:before { + content: "\f040"; +} +.icon-map-marker:before { + content: "\f041"; +} +.icon-adjust:before { + content: "\f042"; +} +.icon-tint:before { + content: "\f043"; +} +.icon-edit:before { + content: "\f044"; +} +.icon-share:before { + content: "\f045"; +} +.icon-check:before { + content: "\f046"; +} +.icon-move:before { + content: "\f047"; +} +.icon-step-backward:before { + content: "\f048"; +} +.icon-fast-backward:before { + content: "\f049"; +} +.icon-backward:before { + content: "\f04a"; +} +.icon-play:before { + content: "\f04b"; +} +.icon-pause:before { + content: "\f04c"; +} +.icon-stop:before { + content: "\f04d"; +} +.icon-forward:before { + content: "\f04e"; +} +.icon-fast-forward:before { + content: "\f050"; +} +.icon-step-forward:before { + content: "\f051"; +} +.icon-eject:before { + content: "\f052"; +} +.icon-chevron-left:before { + content: "\f053"; +} +.icon-chevron-right:before { + content: "\f054"; +} +.icon-plus-sign:before { + content: "\f055"; +} +.icon-minus-sign:before { + content: "\f056"; +} +.icon-remove-sign:before { + content: "\f057"; +} +.icon-ok-sign:before { + content: "\f058"; +} +.icon-question-sign:before { + content: "\f059"; +} +.icon-info-sign:before { + content: "\f05a"; +} +.icon-screenshot:before { + content: "\f05b"; +} +.icon-remove-circle:before { + content: "\f05c"; +} +.icon-ok-circle:before { + content: "\f05d"; +} +.icon-ban-circle:before { + content: "\f05e"; +} +.icon-arrow-left:before { + content: "\f060"; +} +.icon-arrow-right:before { + content: "\f061"; +} +.icon-arrow-up:before { + content: "\f062"; +} +.icon-arrow-down:before { + content: "\f063"; +} +.icon-mail-forward:before, +.icon-share-alt:before { + content: "\f064"; +} +.icon-resize-full:before { + content: "\f065"; +} +.icon-resize-small:before { + content: "\f066"; +} +.icon-plus:before { + content: "\f067"; +} +.icon-minus:before { + content: "\f068"; +} +.icon-asterisk:before { + content: "\f069"; +} +.icon-exclamation-sign:before { + content: "\f06a"; +} +.icon-gift:before { + content: "\f06b"; +} +.icon-leaf:before { + content: "\f06c"; +} +.icon-fire:before { + content: "\f06d"; +} +.icon-eye-open:before { + content: "\f06e"; +} +.icon-eye-close:before { + content: "\f070"; +} +.icon-warning-sign:before { + content: "\f071"; +} +.icon-plane:before { + content: "\f072"; +} +.icon-calendar:before { + content: "\f073"; +} +.icon-random:before { + content: "\f074"; +} +.icon-comment:before { + content: "\f075"; +} +.icon-magnet:before { + content: "\f076"; +} +.icon-chevron-up:before { + content: "\f077"; +} +.icon-chevron-down:before { + content: "\f078"; +} +.icon-retweet:before { + content: "\f079"; +} +.icon-shopping-cart:before { + content: "\f07a"; +} +.icon-folder-close:before { + content: "\f07b"; +} +.icon-folder-open:before { + content: "\f07c"; +} +.icon-resize-vertical:before { + content: "\f07d"; +} +.icon-resize-horizontal:before { + content: "\f07e"; +} +.icon-bar-chart:before { + content: "\f080"; +} +.icon-twitter-sign:before { + content: "\f081"; +} +.icon-facebook-sign:before { + content: "\f082"; +} +.icon-camera-retro:before { + content: "\f083"; +} +.icon-key:before { + content: "\f084"; +} +.icon-cogs:before { + content: "\f085"; +} +.icon-comments:before { + content: "\f086"; +} +.icon-thumbs-up-alt:before { + content: "\f087"; +} +.icon-thumbs-down-alt:before { + content: "\f088"; +} +.icon-star-half:before { + content: "\f089"; +} +.icon-heart-empty:before { + content: "\f08a"; +} +.icon-signout:before { + content: "\f08b"; +} +.icon-linkedin-sign:before { + content: "\f08c"; +} +.icon-pushpin:before { + content: "\f08d"; +} +.icon-external-link:before { + content: "\f08e"; +} +.icon-signin:before { + content: "\f090"; +} +.icon-trophy:before { + content: "\f091"; +} +.icon-github-sign:before { + content: "\f092"; +} +.icon-upload-alt:before { + content: "\f093"; +} +.icon-lemon:before { + content: "\f094"; +} +.icon-phone:before { + content: "\f095"; +} +.icon-unchecked:before, +.icon-check-empty:before { + content: "\f096"; +} +.icon-bookmark-empty:before { + content: "\f097"; +} +.icon-phone-sign:before { + content: "\f098"; +} +.icon-twitter:before { + content: "\f099"; +} +.icon-facebook:before { + content: "\f09a"; +} +.icon-github:before { + content: "\f09b"; +} +.icon-unlock:before { + content: "\f09c"; +} +.icon-credit-card:before { + content: "\f09d"; +} +.icon-rss:before { + content: "\f09e"; +} +.icon-hdd:before { + content: "\f0a0"; +} +.icon-bullhorn:before { + content: "\f0a1"; +} +.icon-bell:before { + content: "\f0a2"; +} +.icon-certificate:before { + content: "\f0a3"; +} +.icon-hand-right:before { + content: "\f0a4"; +} +.icon-hand-left:before { + content: "\f0a5"; +} +.icon-hand-up:before { + content: "\f0a6"; +} +.icon-hand-down:before { + content: "\f0a7"; +} +.icon-circle-arrow-left:before { + content: "\f0a8"; +} +.icon-circle-arrow-right:before { + content: "\f0a9"; +} +.icon-circle-arrow-up:before { + content: "\f0aa"; +} +.icon-circle-arrow-down:before { + content: "\f0ab"; +} +.icon-globe:before { + content: "\f0ac"; +} +.icon-wrench:before { + content: "\f0ad"; +} +.icon-tasks:before { + content: "\f0ae"; +} +.icon-filter:before { + content: "\f0b0"; +} +.icon-briefcase:before { + content: "\f0b1"; +} +.icon-fullscreen:before { + content: "\f0b2"; +} +.icon-group:before { + content: "\f0c0"; +} +.icon-link:before { + content: "\f0c1"; +} +.icon-cloud:before { + content: "\f0c2"; +} +.icon-beaker:before { + content: "\f0c3"; +} +.icon-cut:before { + content: "\f0c4"; +} +.icon-copy:before { + content: "\f0c5"; +} +.icon-paperclip:before, +.icon-paper-clip:before { + content: "\f0c6"; +} +.icon-save:before { + content: "\f0c7"; +} +.icon-sign-blank:before { + content: "\f0c8"; +} +.icon-reorder:before { + content: "\f0c9"; +} +.icon-list-ul:before { + content: "\f0ca"; +} +.icon-list-ol:before { + content: "\f0cb"; +} +.icon-strikethrough:before { + content: "\f0cc"; +} +.icon-underline:before { + content: "\f0cd"; +} +.icon-table:before { + content: "\f0ce"; +} +.icon-magic:before { + content: "\f0d0"; +} +.icon-truck:before { + content: "\f0d1"; +} +.icon-pinterest:before { + content: "\f0d2"; +} +.icon-pinterest-sign:before { + content: "\f0d3"; +} +.icon-google-plus-sign:before { + content: "\f0d4"; +} +.icon-google-plus:before { + content: "\f0d5"; +} +.icon-money:before { + content: "\f0d6"; +} +.icon-caret-down:before { + content: "\f0d7"; +} +.icon-caret-up:before { + content: "\f0d8"; +} +.icon-caret-left:before { + content: "\f0d9"; +} +.icon-caret-right:before { + content: "\f0da"; +} +.icon-columns:before { + content: "\f0db"; +} +.icon-sort:before { + content: "\f0dc"; +} +.icon-sort-down:before { + content: "\f0dd"; +} +.icon-sort-up:before { + content: "\f0de"; +} +.icon-envelope:before { + content: "\f0e0"; +} +.icon-linkedin:before { + content: "\f0e1"; +} +.icon-rotate-left:before, +.icon-undo:before { + content: "\f0e2"; +} +.icon-legal:before { + content: "\f0e3"; +} +.icon-dashboard:before { + content: "\f0e4"; +} +.icon-comment-alt:before { + content: "\f0e5"; +} +.icon-comments-alt:before { + content: "\f0e6"; +} +.icon-bolt:before { + content: "\f0e7"; +} +.icon-sitemap:before { + content: "\f0e8"; +} +.icon-umbrella:before { + content: "\f0e9"; +} +.icon-paste:before { + content: "\f0ea"; +} +.icon-lightbulb:before { + content: "\f0eb"; +} +.icon-exchange:before { + content: "\f0ec"; +} +.icon-cloud-download:before { + content: "\f0ed"; +} +.icon-cloud-upload:before { + content: "\f0ee"; +} +.icon-user-md:before { + content: "\f0f0"; +} +.icon-stethoscope:before { + content: "\f0f1"; +} +.icon-suitcase:before { + content: "\f0f2"; +} +.icon-bell-alt:before { + content: "\f0f3"; +} +.icon-coffee:before { + content: "\f0f4"; +} +.icon-food:before { + content: "\f0f5"; +} +.icon-file-text-alt:before { + content: "\f0f6"; +} +.icon-building:before { + content: "\f0f7"; +} +.icon-hospital:before { + content: "\f0f8"; +} +.icon-ambulance:before { + content: "\f0f9"; +} +.icon-medkit:before { + content: "\f0fa"; +} +.icon-fighter-jet:before { + content: "\f0fb"; +} +.icon-beer:before { + content: "\f0fc"; +} +.icon-h-sign:before { + content: "\f0fd"; +} +.icon-plus-sign-alt:before { + content: "\f0fe"; +} +.icon-double-angle-left:before { + content: "\f100"; +} +.icon-double-angle-right:before { + content: "\f101"; +} +.icon-double-angle-up:before { + content: "\f102"; +} +.icon-double-angle-down:before { + content: "\f103"; +} +.icon-angle-left:before { + content: "\f104"; +} +.icon-angle-right:before { + content: "\f105"; +} +.icon-angle-up:before { + content: "\f106"; +} +.icon-angle-down:before { + content: "\f107"; +} +.icon-desktop:before { + content: "\f108"; +} +.icon-laptop:before { + content: "\f109"; +} +.icon-tablet:before { + content: "\f10a"; +} +.icon-mobile-phone:before { + content: "\f10b"; +} +.icon-circle-blank:before { + content: "\f10c"; +} +.icon-quote-left:before { + content: "\f10d"; +} +.icon-quote-right:before { + content: "\f10e"; +} +.icon-spinner:before { + content: "\f110"; +} +.icon-circle:before { + content: "\f111"; +} +.icon-mail-reply:before, +.icon-reply:before { + content: "\f112"; +} +.icon-github-alt:before { + content: "\f113"; +} +.icon-folder-close-alt:before { + content: "\f114"; +} +.icon-folder-open-alt:before { + content: "\f115"; +} +.icon-expand-alt:before { + content: "\f116"; +} +.icon-collapse-alt:before { + content: "\f117"; +} +.icon-smile:before { + content: "\f118"; +} +.icon-frown:before { + content: "\f119"; +} +.icon-meh:before { + content: "\f11a"; +} +.icon-gamepad:before { + content: "\f11b"; +} +.icon-keyboard:before { + content: "\f11c"; +} +.icon-flag-alt:before { + content: "\f11d"; +} +.icon-flag-checkered:before { + content: "\f11e"; +} +.icon-terminal:before { + content: "\f120"; +} +.icon-code:before { + content: "\f121"; +} +.icon-reply-all:before { + content: "\f122"; +} +.icon-mail-reply-all:before { + content: "\f122"; +} +.icon-star-half-full:before, +.icon-star-half-empty:before { + content: "\f123"; +} +.icon-location-arrow:before { + content: "\f124"; +} +.icon-crop:before { + content: "\f125"; +} +.icon-code-fork:before { + content: "\f126"; +} +.icon-unlink:before { + content: "\f127"; +} +.icon-question:before { + content: "\f128"; +} +.icon-info:before { + content: "\f129"; +} +.icon-exclamation:before { + content: "\f12a"; +} +.icon-superscript:before { + content: "\f12b"; +} +.icon-subscript:before { + content: "\f12c"; +} +.icon-eraser:before { + content: "\f12d"; +} +.icon-puzzle-piece:before { + content: "\f12e"; +} +.icon-microphone:before { + content: "\f130"; +} +.icon-microphone-off:before { + content: "\f131"; +} +.icon-shield:before { + content: "\f132"; +} +.icon-calendar-empty:before { + content: "\f133"; +} +.icon-fire-extinguisher:before { + content: "\f134"; +} +.icon-rocket:before { + content: "\f135"; +} +.icon-maxcdn:before { + content: "\f136"; +} +.icon-chevron-sign-left:before { + content: "\f137"; +} +.icon-chevron-sign-right:before { + content: "\f138"; +} +.icon-chevron-sign-up:before { + content: "\f139"; +} +.icon-chevron-sign-down:before { + content: "\f13a"; +} +.icon-html5:before { + content: "\f13b"; +} +.icon-css3:before { + content: "\f13c"; +} +.icon-anchor:before { + content: "\f13d"; +} +.icon-unlock-alt:before { + content: "\f13e"; +} +.icon-bullseye:before { + content: "\f140"; +} +.icon-ellipsis-horizontal:before { + content: "\f141"; +} +.icon-ellipsis-vertical:before { + content: "\f142"; +} +.icon-rss-sign:before { + content: "\f143"; +} +.icon-play-sign:before { + content: "\f144"; +} +.icon-ticket:before { + content: "\f145"; +} +.icon-minus-sign-alt:before { + content: "\f146"; +} +.icon-check-minus:before { + content: "\f147"; +} +.icon-level-up:before { + content: "\f148"; +} +.icon-level-down:before { + content: "\f149"; +} +.icon-check-sign:before { + content: "\f14a"; +} +.icon-edit-sign:before { + content: "\f14b"; +} +.icon-external-link-sign:before { + content: "\f14c"; +} +.icon-share-sign:before { + content: "\f14d"; +} +.icon-compass:before { + content: "\f14e"; +} +.icon-collapse:before { + content: "\f150"; +} +.icon-collapse-top:before { + content: "\f151"; +} +.icon-expand:before { + content: "\f152"; +} +.icon-euro:before, +.icon-eur:before { + content: "\f153"; +} +.icon-gbp:before { + content: "\f154"; +} +.icon-dollar:before, +.icon-usd:before { + content: "\f155"; +} +.icon-rupee:before, +.icon-inr:before { + content: "\f156"; +} +.icon-yen:before, +.icon-jpy:before { + content: "\f157"; +} +.icon-renminbi:before, +.icon-cny:before { + content: "\f158"; +} +.icon-won:before, +.icon-krw:before { + content: "\f159"; +} +.icon-bitcoin:before, +.icon-btc:before { + content: "\f15a"; +} +.icon-file:before { + content: "\f15b"; +} +.icon-file-text:before { + content: "\f15c"; +} +.icon-sort-by-alphabet:before { + content: "\f15d"; +} +.icon-sort-by-alphabet-alt:before { + content: "\f15e"; +} +.icon-sort-by-attributes:before { + content: "\f160"; +} +.icon-sort-by-attributes-alt:before { + content: "\f161"; +} +.icon-sort-by-order:before { + content: "\f162"; +} +.icon-sort-by-order-alt:before { + content: "\f163"; +} +.icon-thumbs-up:before { + content: "\f164"; +} +.icon-thumbs-down:before { + content: "\f165"; +} +.icon-youtube-sign:before { + content: "\f166"; +} +.icon-youtube:before { + content: "\f167"; +} +.icon-xing:before { + content: "\f168"; +} +.icon-xing-sign:before { + content: "\f169"; +} +.icon-youtube-play:before { + content: "\f16a"; +} +.icon-dropbox:before { + content: "\f16b"; +} +.icon-stackexchange:before { + content: "\f16c"; +} +.icon-instagram:before { + content: "\f16d"; +} +.icon-flickr:before { + content: "\f16e"; +} +.icon-adn:before { + content: "\f170"; +} +.icon-bitbucket:before { + content: "\f171"; +} +.icon-bitbucket-sign:before { + content: "\f172"; +} +.icon-tumblr:before { + content: "\f173"; +} +.icon-tumblr-sign:before { + content: "\f174"; +} +.icon-long-arrow-down:before { + content: "\f175"; +} +.icon-long-arrow-up:before { + content: "\f176"; +} +.icon-long-arrow-left:before { + content: "\f177"; +} +.icon-long-arrow-right:before { + content: "\f178"; +} +.icon-apple:before { + content: "\f179"; +} +.icon-windows:before { + content: "\f17a"; +} +.icon-android:before { + content: "\f17b"; +} +.icon-linux:before { + content: "\f17c"; +} +.icon-dribble:before { + content: "\f17d"; +} +.icon-skype:before { + content: "\f17e"; +} +.icon-foursquare:before { + content: "\f180"; +} +.icon-trello:before { + content: "\f181"; +} +.icon-female:before { + content: "\f182"; +} +.icon-male:before { + content: "\f183"; +} +.icon-gittip:before { + content: "\f184"; +} +.icon-sun:before { + content: "\f185"; +} +.icon-moon:before { + content: "\f186"; +} +.icon-archive:before { + content: "\f187"; +} +.icon-bug:before { + content: "\f188"; +} +.icon-vk:before { + content: "\f189"; +} +.icon-weibo:before { + content: "\f18a"; +} +.icon-renren:before { + content: "\f18b"; +} diff --git a/mall-master/src/main/resources/static/css/font-awesome.min.css b/mall-master/src/main/resources/static/css/font-awesome.min.css new file mode 100644 index 0000000..540440c --- /dev/null +++ b/mall-master/src/main/resources/static/css/font-awesome.min.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} diff --git a/mall-master/src/main/resources/static/css/fullcalendar.css b/mall-master/src/main/resources/static/css/fullcalendar.css new file mode 100644 index 0000000..acae725 --- /dev/null +++ b/mall-master/src/main/resources/static/css/fullcalendar.css @@ -0,0 +1,579 @@ +/*! + * FullCalendar v1.6.1 Stylesheet + * Docs & License: http://arshaw.com/fullcalendar/ + * (c) 2013 Adam Shaw + */ + + +.fc { + direction: ltr; + text-align: left; + } + +.fc table { + border-collapse: collapse; + border-spacing: 0; + } + +html .fc, +.fc table { + font-size: 1em; + } + +.fc td, +.fc th { + padding: 0; + vertical-align: top; + } + + + +/* Header +------------------------------------------------------------------------*/ + +.fc-header td { + white-space: nowrap; + } + +.fc-header-left { + width: 25%; + text-align: left; + } + +.fc-header-center { + text-align: center; + } + +.fc-header-right { + width: 25%; + text-align: right; + } + +.fc-header-title { + display: inline-block; + vertical-align: top; + } + +.fc-header-title h2 { + margin-top: 0; + white-space: nowrap; + } + +.fc .fc-header-space { + padding-left: 10px; + } + +.fc-header .fc-button { + margin-bottom: 1em; + vertical-align: top; + } + +/* buttons edges butting together */ + +.fc-header .fc-button { + margin-right: -1px; + } + +.fc-header .fc-corner-right, /* non-theme */ +.fc-header .ui-corner-right { /* theme */ + margin-right: 0; /* back to normal */ + } + +/* button layering (for border precedence) */ + +.fc-header .fc-state-hover, +.fc-header .ui-state-hover { + z-index: 2; + } + +.fc-header .fc-state-down { + z-index: 3; + } + +.fc-header .fc-state-active, +.fc-header .ui-state-active { + z-index: 4; + } + + + +/* Content +------------------------------------------------------------------------*/ + +.fc-content { + clear: both; + } + +.fc-view { + width: 100%; /* needed for view switching (when view is absolute) */ + overflow: hidden; + } + + + +/* Cell Styles +------------------------------------------------------------------------*/ + +.fc-widget-header, /* , usually */ +.fc-widget-content { /* , usually */ + border: 1px solid #ddd; + } + +.fc-state-highlight { /* today cell */ /* TODO: add .fc-today to */ + background: #fcf8e3; + } + +.fc-cell-overlay { /* semi-transparent rectangle while dragging */ + background: #bce8f1; + opacity: .3; + filter: alpha(opacity=30); /* for IE */ + } + + + +/* Buttons +------------------------------------------------------------------------*/ + +.fc-button { + position: relative; + display: inline-block; + padding: 0 .6em; + overflow: hidden; + height: 1.9em; + line-height: 1.9em; + white-space: nowrap; + cursor: pointer; + } + +.fc-state-default { /* non-theme */ + border: 1px solid; + } + +.fc-state-default.fc-corner-left { /* non-theme */ + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; + } + +.fc-state-default.fc-corner-right { /* non-theme */ + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; + } + +/* + Our default prev/next buttons use HTML entities like ‹ › « » + and we'll try to make them look good cross-browser. +*/ + +.fc-text-arrow { + margin: 0 .1em; + font-size: 2em; + font-family: "Courier New", Courier, monospace; + vertical-align: baseline; /* for IE7 */ + } + +.fc-button-prev .fc-text-arrow, +.fc-button-next .fc-text-arrow { /* for ‹ › */ + font-weight: bold; + } + +/* icon (for jquery ui) */ + +.fc-button .fc-icon-wrap { + position: relative; + float: left; + top: 50%; + } + +.fc-button .ui-icon { + position: relative; + float: left; + margin-top: -50%; + *margin-top: 0; + *top: -50%; + } + +/* + button states + borrowed from twitter bootstrap (http://twitter.github.com/bootstrap/) +*/ + +.fc-state-default { + background-color: #f5f5f5; + background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); + background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); + background-image: linear-gradient(to bottom, #ffffff, #e6e6e6); + background-repeat: repeat-x; + border-color: #e6e6e6 #e6e6e6 #bfbfbf; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + color: #333; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + } + +.fc-state-hover, +.fc-state-down, +.fc-state-active, +.fc-state-disabled { + color: #333333; + background-color: #e6e6e6; + } + +.fc-state-hover { + color: #333333; + text-decoration: none; + background-position: 0 -15px; + -webkit-transition: background-position 0.1s linear; + -moz-transition: background-position 0.1s linear; + -o-transition: background-position 0.1s linear; + transition: background-position 0.1s linear; + } + +.fc-state-down, +.fc-state-active { + background-color: #cccccc; + background-image: none; + outline: 0; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + } + +.fc-state-disabled { + cursor: default; + background-image: none; + opacity: 0.65; + filter: alpha(opacity=65); + box-shadow: none; + } + + + +/* Global Event Styles +------------------------------------------------------------------------*/ + +.fc-event { + border: 1px solid #3a87ad; /* default BORDER color */ + background-color: #3a87ad; /* default BACKGROUND color */ + color: #fff; /* default TEXT color */ + font-size: .85em; + cursor: default; + } + +a.fc-event { + text-decoration: none; + } + +a.fc-event, +.fc-event-draggable { + cursor: pointer; + } + +.fc-rtl .fc-event { + text-align: right; + } + +.fc-event-inner { + width: 100%; + height: 100%; + overflow: hidden; + } + +.fc-event-time, +.fc-event-title { + padding: 0 1px; + } + +.fc .ui-resizable-handle { + display: block; + position: absolute; + z-index: 99999; + overflow: hidden; /* hacky spaces (IE6/7) */ + font-size: 300%; /* */ + line-height: 50%; /* */ + } + + + +/* Horizontal Events +------------------------------------------------------------------------*/ + +.fc-event-hori { + border-width: 1px 0; + margin-bottom: 1px; + } + +.fc-ltr .fc-event-hori.fc-event-start, +.fc-rtl .fc-event-hori.fc-event-end { + border-left-width: 1px; + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; + } + +.fc-ltr .fc-event-hori.fc-event-end, +.fc-rtl .fc-event-hori.fc-event-start { + border-right-width: 1px; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + } + +/* resizable */ + +.fc-event-hori .ui-resizable-e { + top: 0 !important; /* importants override pre jquery ui 1.7 styles */ + right: -3px !important; + width: 7px !important; + height: 100% !important; + cursor: e-resize; + } + +.fc-event-hori .ui-resizable-w { + top: 0 !important; + left: -3px !important; + width: 7px !important; + height: 100% !important; + cursor: w-resize; + } + +.fc-event-hori .ui-resizable-handle { + _padding-bottom: 14px; /* IE6 had 0 height */ + } + + + +/* Reusable Separate-border Table +------------------------------------------------------------*/ + +table.fc-border-separate { + border-collapse: separate; + } + +.fc-border-separate th, +.fc-border-separate td { + border-width: 1px 0 0 1px; + } + +.fc-border-separate th.fc-last, +.fc-border-separate td.fc-last { + border-right-width: 1px; + } + +.fc-border-separate tr.fc-last th, +.fc-border-separate tr.fc-last td { + border-bottom-width: 1px; + } + +.fc-border-separate tbody tr.fc-first td, +.fc-border-separate tbody tr.fc-first th { + border-top-width: 0; + } + + + +/* Month View, Basic Week View, Basic Day View +------------------------------------------------------------------------*/ + +.fc-grid th { + text-align: center; + } + +.fc .fc-week-number { + width: 22px; + text-align: center; + } + +.fc .fc-week-number div { + padding: 0 2px; + } + +.fc-grid .fc-day-number { + float: right; + padding: 0 2px; + } + +.fc-grid .fc-other-month .fc-day-number { + opacity: 0.3; + filter: alpha(opacity=30); /* for IE */ + /* opacity with small font can sometimes look too faded + might want to set the 'color' property instead + making day-numbers bold also fixes the problem */ + } + +.fc-grid .fc-day-content { + clear: both; + padding: 2px 2px 1px; /* distance between events and day edges */ + } + +/* event styles */ + +.fc-grid .fc-event-time { + font-weight: bold; + } + +/* right-to-left */ + +.fc-rtl .fc-grid .fc-day-number { + float: left; + } + +.fc-rtl .fc-grid .fc-event-time { + float: right; + } + + + +/* Agenda Week View, Agenda Day View +------------------------------------------------------------------------*/ + +.fc-agenda table { + border-collapse: separate; + } + +.fc-agenda-days th { + text-align: center; + } + +.fc-agenda .fc-agenda-axis { + width: 50px; + padding: 0 4px; + vertical-align: middle; + text-align: right; + white-space: nowrap; + font-weight: normal; + } + +.fc-agenda .fc-week-number { + font-weight: bold; + } + +.fc-agenda .fc-day-content { + padding: 2px 2px 1px; + } + +/* make axis border take precedence */ + +.fc-agenda-days .fc-agenda-axis { + border-right-width: 1px; + } + +.fc-agenda-days .fc-col0 { + border-left-width: 0; + } + +/* all-day area */ + +.fc-agenda-allday th { + border-width: 0 1px; + } + +.fc-agenda-allday .fc-day-content { + min-height: 34px; /* TODO: doesnt work well in quirksmode */ + _height: 34px; + } + +/* divider (between all-day and slots) */ + +.fc-agenda-divider-inner { + height: 2px; + overflow: hidden; + } + +.fc-widget-header .fc-agenda-divider-inner { + background: #eee; + } + +/* slot rows */ + +.fc-agenda-slots th { + border-width: 1px 1px 0; + } + +.fc-agenda-slots td { + border-width: 1px 0 0; + background: none; + } + +.fc-agenda-slots td div { + height: 20px; + } + +.fc-agenda-slots tr.fc-slot0 th, +.fc-agenda-slots tr.fc-slot0 td { + border-top-width: 0; + } + +.fc-agenda-slots tr.fc-minor th, +.fc-agenda-slots tr.fc-minor td { + border-top-style: dotted; + } + +.fc-agenda-slots tr.fc-minor th.ui-widget-header { + *border-top-style: solid; /* doesn't work with background in IE6/7 */ + } + + + +/* Vertical Events +------------------------------------------------------------------------*/ + +.fc-event-vert { + border-width: 0 1px; + } + +.fc-event-vert.fc-event-start { + border-top-width: 1px; + border-top-left-radius: 3px; + border-top-right-radius: 3px; + } + +.fc-event-vert.fc-event-end { + border-bottom-width: 1px; + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; + } + +.fc-event-vert .fc-event-time { + white-space: nowrap; + font-size: 10px; + } + +.fc-event-vert .fc-event-inner { + position: relative; + z-index: 2; + } + +.fc-event-vert .fc-event-bg { /* makes the event lighter w/ a semi-transparent overlay */ + position: absolute; + z-index: 1; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: #fff; + opacity: .25; + filter: alpha(opacity=25); + } + +.fc .ui-draggable-dragging .fc-event-bg, /* TODO: something nicer like .fc-opacity */ +.fc-select-helper .fc-event-bg { + display: none\9; /* for IE6/7/8. nested opacity filters while dragging don't work */ + } + +/* resizable */ + +.fc-event-vert .ui-resizable-s { + bottom: 0 !important; /* importants override pre jquery ui 1.7 styles */ + width: 100% !important; + height: 8px !important; + overflow: hidden !important; + line-height: 8px !important; + font-size: 11px !important; + font-family: monospace; + text-align: center; + cursor: s-resize; + } + +.fc-agenda .ui-resizable-resizing { /* TODO: better selector */ + _overflow: hidden; + } + + diff --git a/mall-master/src/main/resources/static/css/glyphicons.css b/mall-master/src/main/resources/static/css/glyphicons.css new file mode 100644 index 0000000..007252e --- /dev/null +++ b/mall-master/src/main/resources/static/css/glyphicons.css @@ -0,0 +1,2581 @@ +/*! + * + * Project: GLYPHICONS + * Author: Jan Kovarik - www.glyphicons.com + * Twitter: @jankovarik + * + */ +html, +html .halflings { + -webkit-font-smoothing: antialiased !important; +} +@font-face { + font-family: 'Glyphicons'; + src: url('../image/glyphicons-regular.eot'); + src: url('../image/glyphicons-regular.eot') format('embedded-opentype'), url('../image/glyphicons-regular.woff') format('woff'), url('../image/glyphicons-regular.ttf') format('truetype'), url('../image/glyphicons-regular.svg#glyphicons_halflingsregular') format('svg'); + font-weight: normal; + font-style: normal; +} +.glyphicons { + display: inline-block; + position: relative; + padding: 5px 0 5px 35px; + color: #1d1d1b; + text-decoration: none; + *display: inline; + *zoom: 1; +} +.glyphicons i:before { + position: absolute; + left: 0; + top: 0; + font: 24px/1em 'Glyphicons'; + font-style: normal; + color: #1d1d1b; +} +.glyphicons.white i:before { + color: #fff; +} +.glyphicons.glass i:before { + content: "\e001"; +} +.glyphicons.leaf i:before { + content: "\e002"; +} +.glyphicons.dog i:before { + content: "\e003"; +} +.glyphicons.user i:before { + content: "\e004"; +} +.glyphicons.girl i:before { + content: "\e005"; +} +.glyphicons.car i:before { + content: "\e006"; +} +.glyphicons.user_add i:before { + content: "\e007"; +} +.glyphicons.user_remove i:before { + content: "\e008"; +} +.glyphicons.film i:before { + content: "\e009"; +} +.glyphicons.magic i:before { + content: "\e010"; +} +.glyphicons.envelope i:before { + content: "\2709"; +} +.glyphicons.camera i:before { + content: "\e012"; +} +.glyphicons.heart i:before { + content: "\e013"; +} +.glyphicons.beach_umbrella i:before { + content: "\e014"; +} +.glyphicons.train i:before { + content: "\e015"; +} +.glyphicons.print i:before { + content: "\e016"; +} +.glyphicons.bin i:before { + content: "\e017"; +} +.glyphicons.music i:before { + content: "\e018"; +} +.glyphicons.note i:before { + content: "\e019"; +} +.glyphicons.heart_empty i:before { + content: "\e020"; +} +.glyphicons.home i:before { + content: "\e021"; +} +.glyphicons.snowflake i:before { + content: "\2744"; +} +.glyphicons.fire i:before { + content: "\e023"; +} +.glyphicons.magnet i:before { + content: "\e024"; +} +.glyphicons.parents i:before { + content: "\e025"; +} +.glyphicons.binoculars i:before { + content: "\e026"; +} +.glyphicons.road i:before { + content: "\e027"; +} +.glyphicons.search i:before { + content: "\e028"; +} +.glyphicons.cars i:before { + content: "\e029"; +} +.glyphicons.notes_2 i:before { + content: "\e030"; +} +.glyphicons.pencil i:before { + content: "\270F"; +} +.glyphicons.bus i:before { + content: "\e032"; +} +.glyphicons.wifi_alt i:before { + content: "\e033"; +} +.glyphicons.luggage i:before { + content: "\e034"; +} +.glyphicons.old_man i:before { + content: "\e035"; +} +.glyphicons.woman i:before { + content: "\e036"; +} +.glyphicons.file i:before { + content: "\e037"; +} +.glyphicons.coins i:before { + content: "\e038"; +} +.glyphicons.airplane i:before { + content: "\2708"; +} +.glyphicons.notes i:before { + content: "\e040"; +} +.glyphicons.stats i:before { + content: "\e041"; +} +.glyphicons.charts i:before { + content: "\e042"; +} +.glyphicons.pie_chart i:before { + content: "\e043"; +} +.glyphicons.group i:before { + content: "\e044"; +} +.glyphicons.keys i:before { + content: "\e045"; +} +.glyphicons.calendar i:before { + content: "\e046"; +} +.glyphicons.router i:before { + content: "\e047"; +} +.glyphicons.camera_small i:before { + content: "\e048"; +} +.glyphicons.dislikes i:before { + content: "\e049"; +} +.glyphicons.star i:before { + content: "\e050"; +} +.glyphicons.link i:before { + content: "\e051"; +} +.glyphicons.eye_open i:before { + content: "\e052"; +} +.glyphicons.eye_close i:before { + content: "\e053"; +} +.glyphicons.alarm i:before { + content: "\e054"; +} +.glyphicons.clock i:before { + content: "\e055"; +} +.glyphicons.stopwatch i:before { + content: "\e056"; +} +.glyphicons.projector i:before { + content: "\e057"; +} +.glyphicons.history i:before { + content: "\e058"; +} +.glyphicons.truck i:before { + content: "\e059"; +} +.glyphicons.cargo i:before { + content: "\e060"; +} +.glyphicons.compass i:before { + content: "\e061"; +} +.glyphicons.keynote i:before { + content: "\e062"; +} +.glyphicons.paperclip i:before { + content: "\e063"; +} +.glyphicons.power i:before { + content: "\e064"; +} +.glyphicons.lightbulb i:before { + content: "\e065"; +} +.glyphicons.tag i:before { + content: "\e066"; +} +.glyphicons.tags i:before { + content: "\e067"; +} +.glyphicons.cleaning i:before { + content: "\e068"; +} +.glyphicons.ruller i:before { + content: "\e069"; +} +.glyphicons.gift i:before { + content: "\e070"; +} +.glyphicons.umbrella i:before { + content: "\2602"; +} +.glyphicons.book i:before { + content: "\e072"; +} +.glyphicons.bookmark i:before { + content: "\e073"; +} +.glyphicons.wifi i:before { + content: "\e074"; +} +.glyphicons.cup i:before { + content: "\e075"; +} +.glyphicons.stroller i:before { + content: "\e076"; +} +.glyphicons.headphones i:before { + content: "\e077"; +} +.glyphicons.headset i:before { + content: "\e078"; +} +.glyphicons.warning_sign i:before { + content: "\e079"; +} +.glyphicons.signal i:before { + content: "\e080"; +} +.glyphicons.retweet i:before { + content: "\e081"; +} +.glyphicons.refresh i:before { + content: "\e082"; +} +.glyphicons.roundabout i:before { + content: "\e083"; +} +.glyphicons.random i:before { + content: "\e084"; +} +.glyphicons.heat i:before { + content: "\e085"; +} +.glyphicons.repeat i:before { + content: "\e086"; +} +.glyphicons.display i:before { + content: "\e087"; +} +.glyphicons.log_book i:before { + content: "\e088"; +} +.glyphicons.adress_book i:before { + content: "\e089"; +} +.glyphicons.building i:before { + content: "\e090"; +} +.glyphicons.eyedropper i:before { + content: "\e091"; +} +.glyphicons.adjust i:before { + content: "\e092"; +} +.glyphicons.tint i:before { + content: "\e093"; +} +.glyphicons.crop i:before { + content: "\e094"; +} +.glyphicons.vector_path_square i:before { + content: "\e095"; +} +.glyphicons.vector_path_circle i:before { + content: "\e096"; +} +.glyphicons.vector_path_polygon i:before { + content: "\e097"; +} +.glyphicons.vector_path_line i:before { + content: "\e098"; +} +.glyphicons.vector_path_curve i:before { + content: "\e099"; +} +.glyphicons.vector_path_all i:before { + content: "\e100"; +} +.glyphicons.font i:before { + content: "\e101"; +} +.glyphicons.italic i:before { + content: "\e102"; +} +.glyphicons.bold i:before { + content: "\e103"; +} +.glyphicons.text_underline i:before { + content: "\e104"; +} +.glyphicons.text_strike i:before { + content: "\e105"; +} +.glyphicons.text_height i:before { + content: "\e106"; +} +.glyphicons.text_width i:before { + content: "\e107"; +} +.glyphicons.text_resize i:before { + content: "\e108"; +} +.glyphicons.left_indent i:before { + content: "\e109"; +} +.glyphicons.right_indent i:before { + content: "\e110"; +} +.glyphicons.align_left i:before { + content: "\e111"; +} +.glyphicons.align_center i:before { + content: "\e112"; +} +.glyphicons.align_right i:before { + content: "\e113"; +} +.glyphicons.justify i:before { + content: "\e114"; +} +.glyphicons.list i:before { + content: "\e115"; +} +.glyphicons.text_smaller i:before { + content: "\e116"; +} +.glyphicons.text_bigger i:before { + content: "\e117"; +} +.glyphicons.embed i:before { + content: "\e118"; +} +.glyphicons.embed_close i:before { + content: "\e119"; +} +.glyphicons.table i:before { + content: "\e120"; +} +.glyphicons.message_full i:before { + content: "\e121"; +} +.glyphicons.message_empty i:before { + content: "\e122"; +} +.glyphicons.message_in i:before { + content: "\e123"; +} +.glyphicons.message_out i:before { + content: "\e124"; +} +.glyphicons.message_plus i:before { + content: "\e125"; +} +.glyphicons.message_minus i:before { + content: "\e126"; +} +.glyphicons.message_ban i:before { + content: "\e127"; +} +.glyphicons.message_flag i:before { + content: "\e128"; +} +.glyphicons.message_lock i:before { + content: "\e129"; +} +.glyphicons.message_new i:before { + content: "\e130"; +} +.glyphicons.inbox i:before { + content: "\e131"; +} +.glyphicons.inbox_plus i:before { + content: "\e132"; +} +.glyphicons.inbox_minus i:before { + content: "\e133"; +} +.glyphicons.inbox_lock i:before { + content: "\e134"; +} +.glyphicons.inbox_in i:before { + content: "\e135"; +} +.glyphicons.inbox_out i:before { + content: "\e136"; +} +.glyphicons.cogwheel i:before { + content: "\e137"; +} +.glyphicons.cogwheels i:before { + content: "\e138"; +} +.glyphicons.picture i:before { + content: "\e139"; +} +.glyphicons.adjust_alt i:before { + content: "\e140"; +} +.glyphicons.database_lock i:before { + content: "\e141"; +} +.glyphicons.database_plus i:before { + content: "\e142"; +} +.glyphicons.database_minus i:before { + content: "\e143"; +} +.glyphicons.database_ban i:before { + content: "\e144"; +} +.glyphicons.folder_open i:before { + content: "\e145"; +} +.glyphicons.folder_plus i:before { + content: "\e146"; +} +.glyphicons.folder_minus i:before { + content: "\e147"; +} +.glyphicons.folder_lock i:before { + content: "\e148"; +} +.glyphicons.folder_flag i:before { + content: "\e149"; +} +.glyphicons.folder_new i:before { + content: "\e150"; +} +.glyphicons.edit i:before { + content: "\e151"; +} +.glyphicons.new_window i:before { + content: "\e152"; +} +.glyphicons.check i:before { + content: "\e153"; +} +.glyphicons.unchecked i:before { + content: "\e154"; +} +.glyphicons.more_windows i:before { + content: "\e155"; +} +.glyphicons.show_big_thumbnails i:before { + content: "\e156"; +} +.glyphicons.show_thumbnails i:before { + content: "\e157"; +} +.glyphicons.show_thumbnails_with_lines i:before { + content: "\e158"; +} +.glyphicons.show_lines i:before { + content: "\e159"; +} +.glyphicons.playlist i:before { + content: "\e160"; +} +.glyphicons.imac i:before { + content: "\e161"; +} +.glyphicons.macbook i:before { + content: "\e162"; +} +.glyphicons.ipad i:before { + content: "\e163"; +} +.glyphicons.iphone i:before { + content: "\e164"; +} +.glyphicons.iphone_transfer i:before { + content: "\e165"; +} +.glyphicons.iphone_exchange i:before { + content: "\e166"; +} +.glyphicons.ipod i:before { + content: "\e167"; +} +.glyphicons.ipod_shuffle i:before { + content: "\e168"; +} +.glyphicons.ear_plugs i:before { + content: "\e169"; +} +.glyphicons.phone i:before { + content: "\e170"; +} +.glyphicons.step_backward i:before { + content: "\e171"; +} +.glyphicons.fast_backward i:before { + content: "\e172"; +} +.glyphicons.rewind i:before { + content: "\e173"; +} +.glyphicons.play i:before { + content: "\e174"; +} +.glyphicons.pause i:before { + content: "\e175"; +} +.glyphicons.stop i:before { + content: "\e176"; +} +.glyphicons.forward i:before { + content: "\e177"; +} +.glyphicons.fast_forward i:before { + content: "\e178"; +} +.glyphicons.step_forward i:before { + content: "\e179"; +} +.glyphicons.eject i:before { + content: "\e180"; +} +.glyphicons.facetime_video i:before { + content: "\e181"; +} +.glyphicons.download_alt i:before { + content: "\e182"; +} +.glyphicons.mute i:before { + content: "\e183"; +} +.glyphicons.volume_down i:before { + content: "\e184"; +} +.glyphicons.volume_up i:before { + content: "\e185"; +} +.glyphicons.screenshot i:before { + content: "\e186"; +} +.glyphicons.move i:before { + content: "\e187"; +} +.glyphicons.more i:before { + content: "\e188"; +} +.glyphicons.brightness_reduce i:before { + content: "\e189"; +} +.glyphicons.brightness_increase i:before { + content: "\e190"; +} +.glyphicons.circle_plus i:before { + content: "\e191"; +} +.glyphicons.circle_minus i:before { + content: "\e192"; +} +.glyphicons.circle_remove i:before { + content: "\e193"; +} +.glyphicons.circle_ok i:before { + content: "\e194"; +} +.glyphicons.circle_question_mark i:before { + content: "\e195"; +} +.glyphicons.circle_info i:before { + content: "\e196"; +} +.glyphicons.circle_exclamation_mark i:before { + content: "\e197"; +} +.glyphicons.remove i:before { + content: "\e198"; +} +.glyphicons.ok i:before { + content: "\e199"; +} +.glyphicons.ban i:before { + content: "\e200"; +} +.glyphicons.download i:before { + content: "\e201"; +} +.glyphicons.upload i:before { + content: "\e202"; +} +.glyphicons.shopping_cart i:before { + content: "\e203"; +} +.glyphicons.lock i:before { + content: "\e204"; +} +.glyphicons.unlock i:before { + content: "\e205"; +} +.glyphicons.electricity i:before { + content: "\e206"; +} +.glyphicons.ok_2 i:before { + content: "\e207"; +} +.glyphicons.remove_2 i:before { + content: "\e208"; +} +.glyphicons.cart_out i:before { + content: "\e209"; +} +.glyphicons.cart_in i:before { + content: "\e210"; +} +.glyphicons.left_arrow i:before { + content: "\e211"; +} +.glyphicons.right_arrow i:before { + content: "\e212"; +} +.glyphicons.down_arrow i:before { + content: "\e213"; +} +.glyphicons.up_arrow i:before { + content: "\e214"; +} +.glyphicons.resize_small i:before { + content: "\e215"; +} +.glyphicons.resize_full i:before { + content: "\e216"; +} +.glyphicons.circle_arrow_left i:before { + content: "\e217"; +} +.glyphicons.circle_arrow_right i:before { + content: "\e218"; +} +.glyphicons.circle_arrow_top i:before { + content: "\e219"; +} +.glyphicons.circle_arrow_down i:before { + content: "\e220"; +} +.glyphicons.play_button i:before { + content: "\e221"; +} +.glyphicons.unshare i:before { + content: "\e222"; +} +.glyphicons.share i:before { + content: "\e223"; +} +.glyphicons.chevron-right i:before { + content: "\e224"; +} +.glyphicons.chevron-left i:before { + content: "\e225"; +} +.glyphicons.bluetooth i:before { + content: "\e226"; +} +.glyphicons.euro i:before { + content: "\20AC"; +} +.glyphicons.usd i:before { + content: "\e228"; +} +.glyphicons.gbp i:before { + content: "\e229"; +} +.glyphicons.retweet_2 i:before { + content: "\e230"; +} +.glyphicons.moon i:before { + content: "\e231"; +} +.glyphicons.sun i:before { + content: "\2609"; +} +.glyphicons.cloud i:before { + content: "\2601"; +} +.glyphicons.direction i:before { + content: "\e234"; +} +.glyphicons.brush i:before { + content: "\e235"; +} +.glyphicons.pen i:before { + content: "\e236"; +} +.glyphicons.zoom_in i:before { + content: "\e237"; +} +.glyphicons.zoom_out i:before { + content: "\e238"; +} +.glyphicons.pin i:before { + content: "\e239"; +} +.glyphicons.albums i:before { + content: "\e240"; +} +.glyphicons.rotation_lock i:before { + content: "\e241"; +} +.glyphicons.flash i:before { + content: "\e242"; +} +.glyphicons.google_maps i:before { + content: "\e243"; +} +.glyphicons.anchor i:before { + content: "\2693"; +} +.glyphicons.conversation i:before { + content: "\e245"; +} +.glyphicons.chat i:before { + content: "\e246"; +} +.glyphicons.male i:before { + content: "\e247"; +} +.glyphicons.female i:before { + content: "\e248"; +} +.glyphicons.asterisk i:before { + content: "\002A"; +} +.glyphicons.divide i:before { + content: "\00F7"; +} +.glyphicons.snorkel_diving i:before { + content: "\e251"; +} +.glyphicons.scuba_diving i:before { + content: "\e252"; +} +.glyphicons.oxygen_bottle i:before { + content: "\e253"; +} +.glyphicons.fins i:before { + content: "\e254"; +} +.glyphicons.fishes i:before { + content: "\e255"; +} +.glyphicons.boat i:before { + content: "\e256"; +} +.glyphicons.delete i:before { + content: "\e257"; +} +.glyphicons.sheriffs_star i:before { + content: "\e258"; +} +.glyphicons.qrcode i:before { + content: "\e259"; +} +.glyphicons.barcode i:before { + content: "\e260"; +} +.glyphicons.pool i:before { + content: "\e261"; +} +.glyphicons.buoy i:before { + content: "\e262"; +} +.glyphicons.spade i:before { + content: "\e263"; +} +.glyphicons.bank i:before { + content: "\e264"; +} +.glyphicons.vcard i:before { + content: "\e265"; +} +.glyphicons.electrical_plug i:before { + content: "\e266"; +} +.glyphicons.flag i:before { + content: "\e267"; +} +.glyphicons.credit_card i:before { + content: "\e268"; +} +.glyphicons.keyboard-wireless i:before { + content: "\e269"; +} +.glyphicons.keyboard-wired i:before { + content: "\e270"; +} +.glyphicons.shield i:before { + content: "\e271"; +} +.glyphicons.ring i:before { + content: "\02DA"; +} +.glyphicons.cake i:before { + content: "\e273"; +} +.glyphicons.drink i:before { + content: "\e274"; +} +.glyphicons.beer i:before { + content: "\e275"; +} +.glyphicons.fast_food i:before { + content: "\e276"; +} +.glyphicons.cutlery i:before { + content: "\e277"; +} +.glyphicons.pizza i:before { + content: "\e278"; +} +.glyphicons.birthday_cake i:before { + content: "\e279"; +} +.glyphicons.tablet i:before { + content: "\e280"; +} +.glyphicons.settings i:before { + content: "\e281"; +} +.glyphicons.bullets i:before { + content: "\e282"; +} +.glyphicons.cardio i:before { + content: "\e283"; +} +.glyphicons.t-shirt i:before { + content: "\e284"; +} +.glyphicons.pants i:before { + content: "\e285"; +} +.glyphicons.sweater i:before { + content: "\e286"; +} +.glyphicons.fabric i:before { + content: "\e287"; +} +.glyphicons.leather i:before { + content: "\e288"; +} +.glyphicons.scissors i:before { + content: "\e289"; +} +.glyphicons.bomb i:before { + content: "\e290"; +} +.glyphicons.skull i:before { + content: "\e291"; +} +.glyphicons.celebration i:before { + content: "\e292"; +} +.glyphicons.tea_kettle i:before { + content: "\e293"; +} +.glyphicons.french_press i:before { + content: "\e294"; +} +.glyphicons.coffe_cup i:before { + content: "\e295"; +} +.glyphicons.pot i:before { + content: "\e296"; +} +.glyphicons.grater i:before { + content: "\e297"; +} +.glyphicons.kettle i:before { + content: "\e298"; +} +.glyphicons.hospital i:before { + content: "\e299"; +} +.glyphicons.hospital_h i:before { + content: "\e300"; +} +.glyphicons.microphone i:before { + content: "\e301"; +} +.glyphicons.webcam i:before { + content: "\e302"; +} +.glyphicons.temple_christianity_church i:before { + content: "\e303"; +} +.glyphicons.temple_islam i:before { + content: "\e304"; +} +.glyphicons.temple_hindu i:before { + content: "\e305"; +} +.glyphicons.temple_buddhist i:before { + content: "\e306"; +} +.glyphicons.bicycle i:before { + content: "\e307"; +} +.glyphicons.life_preserver i:before { + content: "\e308"; +} +.glyphicons.share_alt i:before { + content: "\e309"; +} +.glyphicons.comments i:before { + content: "\e310"; +} +.glyphicons.flower i:before { + content: "\2698"; +} +.glyphicons.baseball i:before { + content: "\e312"; +} +.glyphicons.rugby i:before { + content: "\e313"; +} +.glyphicons.ax i:before { + content: "\e314"; +} +.glyphicons.table_tennis i:before { + content: "\e315"; +} +.glyphicons.bowling i:before { + content: "\e316"; +} +.glyphicons.tree_conifer i:before { + content: "\e317"; +} +.glyphicons.tree_deciduous i:before { + content: "\e318"; +} +.glyphicons.more_items i:before { + content: "\e319"; +} +.glyphicons.sort i:before { + content: "\e320"; +} +.glyphicons.filter i:before { + content: "\e321"; +} +.glyphicons.gamepad i:before { + content: "\e322"; +} +.glyphicons.playing_dices i:before { + content: "\e323"; +} +.glyphicons.calculator i:before { + content: "\e324"; +} +.glyphicons.tie i:before { + content: "\e325"; +} +.glyphicons.wallet i:before { + content: "\e326"; +} +.glyphicons.piano i:before { + content: "\e327"; +} +.glyphicons.sampler i:before { + content: "\e328"; +} +.glyphicons.podium i:before { + content: "\e329"; +} +.glyphicons.soccer_ball i:before { + content: "\e330"; +} +.glyphicons.blog i:before { + content: "\e331"; +} +.glyphicons.dashboard i:before { + content: "\e332"; +} +.glyphicons.certificate i:before { + content: "\e333"; +} +.glyphicons.bell i:before { + content: "\e334"; +} +.glyphicons.candle i:before { + content: "\e335"; +} +.glyphicons.pushpin i:before { + content: "\e336"; +} +.glyphicons.iphone_shake i:before { + content: "\e337"; +} +.glyphicons.pin_flag i:before { + content: "\e338"; +} +.glyphicons.turtle i:before { + content: "\e339"; +} +.glyphicons.rabbit i:before { + content: "\e340"; +} +.glyphicons.globe i:before { + content: "\e341"; +} +.glyphicons.briefcase i:before { + content: "\e342"; +} +.glyphicons.hdd i:before { + content: "\e343"; +} +.glyphicons.thumbs_up i:before { + content: "\e344"; +} +.glyphicons.thumbs_down i:before { + content: "\e345"; +} +.glyphicons.hand_right i:before { + content: "\e346"; +} +.glyphicons.hand_left i:before { + content: "\e347"; +} +.glyphicons.hand_up i:before { + content: "\e348"; +} +.glyphicons.hand_down i:before { + content: "\e349"; +} +.glyphicons.fullscreen i:before { + content: "\e350"; +} +.glyphicons.shopping_bag i:before { + content: "\e351"; +} +.glyphicons.book_open i:before { + content: "\e352"; +} +.glyphicons.nameplate i:before { + content: "\e353"; +} +.glyphicons.nameplate_alt i:before { + content: "\e354"; +} +.glyphicons.vases i:before { + content: "\e355"; +} +.glyphicons.bullhorn i:before { + content: "\e356"; +} +.glyphicons.dumbbell i:before { + content: "\e357"; +} +.glyphicons.suitcase i:before { + content: "\e358"; +} +.glyphicons.file_import i:before { + content: "\e359"; +} +.glyphicons.file_export i:before { + content: "\e360"; +} +.glyphicons.bug i:before { + content: "\e361"; +} +.glyphicons.crown i:before { + content: "\e362"; +} +.glyphicons.smoking i:before { + content: "\e363"; +} +.glyphicons.cloud-upload i:before { + content: "\e364"; +} +.glyphicons.cloud-download i:before { + content: "\e365"; +} +.glyphicons.restart i:before { + content: "\e366"; +} +.glyphicons.security_camera i:before { + content: "\e367"; +} +.glyphicons.expand i:before { + content: "\e368"; +} +.glyphicons.collapse i:before { + content: "\e369"; +} +.glyphicons.collapse_top i:before { + content: "\e370"; +} +.glyphicons.globe_af i:before { + content: "\e371"; +} +.glyphicons.global i:before { + content: "\e372"; +} +.glyphicons.spray i:before { + content: "\e373"; +} +.glyphicons.nails i:before { + content: "\e374"; +} +.glyphicons.claw_hammer i:before { + content: "\e375"; +} +.glyphicons.classic_hammer i:before { + content: "\e376"; +} +.glyphicons.hand_saw i:before { + content: "\e377"; +} +.glyphicons.riflescope i:before { + content: "\e378"; +} +.glyphicons.electrical_socket_eu i:before { + content: "\e379"; +} +.glyphicons.electrical_socket_us i:before { + content: "\e380"; +} +.glyphicons.pinterest i:before { + content: "\e381"; +} +.glyphicons.dropbox i:before { + content: "\e382"; +} +.glyphicons.google_plus i:before { + content: "\e383"; +} +.glyphicons.jolicloud i:before { + content: "\e384"; +} +.glyphicons.yahoo i:before { + content: "\e385"; +} +.glyphicons.blogger i:before { + content: "\e386"; +} +.glyphicons.picasa i:before { + content: "\e387"; +} +.glyphicons.amazon i:before { + content: "\e388"; +} +.glyphicons.tumblr i:before { + content: "\e389"; +} +.glyphicons.wordpress i:before { + content: "\e390"; +} +.glyphicons.instapaper i:before { + content: "\e391"; +} +.glyphicons.evernote i:before { + content: "\e392"; +} +.glyphicons.xing i:before { + content: "\e393"; +} +.glyphicons.zootool i:before { + content: "\e394"; +} +.glyphicons.dribbble i:before { + content: "\e395"; +} +.glyphicons.deviantart i:before { + content: "\e396"; +} +.glyphicons.read_it_later i:before { + content: "\e397"; +} +.glyphicons.linked_in i:before { + content: "\e398"; +} +.glyphicons.forrst i:before { + content: "\e399"; +} +.glyphicons.pinboard i:before { + content: "\e400"; +} +.glyphicons.behance i:before { + content: "\e401"; +} +.glyphicons.github i:before { + content: "\e402"; +} +.glyphicons.youtube i:before { + content: "\e403"; +} +.glyphicons.skitch i:before { + content: "\e404"; +} +.glyphicons.foursquare i:before { + content: "\e405"; +} +.glyphicons.quora i:before { + content: "\e406"; +} +.glyphicons.badoo i:before { + content: "\e407"; +} +.glyphicons.spotify i:before { + content: "\e408"; +} +.glyphicons.stumbleupon i:before { + content: "\e409"; +} +.glyphicons.readability i:before { + content: "\e410"; +} +.glyphicons.facebook i:before { + content: "\e411"; +} +.glyphicons.twitter i:before { + content: "\e412"; +} +.glyphicons.instagram i:before { + content: "\e413"; +} +.glyphicons.posterous_spaces i:before { + content: "\e414"; +} +.glyphicons.vimeo i:before { + content: "\e415"; +} +.glyphicons.flickr i:before { + content: "\e416"; +} +.glyphicons.last_fm i:before { + content: "\e417"; +} +.glyphicons.rss i:before { + content: "\e418"; +} +.glyphicons.skype i:before { + content: "\e419"; +} +.glyphicons.e-mail i:before { + content: "\e420"; +} +.glyphicons-icon { + display: inline-block; + width: 48px; + height: 48px; + line-height: 48px; + vertical-align: text-top; + background-image: url(../image/glyphicons.png); + background-position: 0 0; + background-repeat: no-repeat; + vertical-align: top; + *display: inline; + *zoom: 1; + *margin-right: .3em; +} +.no-inlinesvg .glyphicons-icon { + background-image: url(../image/glyphicons.png); +} +.glyphicons-icon.white { + background-image: url(../image/glyphicons-white.svg); +} +.no-inlinesvg .glyphicons-icon.white { + background-image: url(../image/glyphicons-white.png); +} +.glyphicons-icon.glass { + background-position: 4px 11px; +} +.glyphicons-icon.leaf { + background-position: -44px 11px; +} +.glyphicons-icon.dog { + background-position: -92px 11px; +} +.glyphicons-icon.user { + background-position: -140px 11px; +} +.glyphicons-icon.girl { + background-position: -188px 11px; +} +.glyphicons-icon.car { + background-position: -236px 11px; +} +.glyphicons-icon.user_add { + background-position: -284px 11px; +} +.glyphicons-icon.user_remove { + background-position: -332px 11px; +} +.glyphicons-icon.film { + background-position: -380px 11px; +} +.glyphicons-icon.magic { + background-position: -428px 11px; +} +.glyphicons-icon.envelope { + background-position: 4px -37px; +} +.glyphicons-icon.camera { + background-position: -44px -37px; +} +.glyphicons-icon.heart { + background-position: -92px -37px; +} +.glyphicons-icon.beach_umbrella { + background-position: -140px -37px; +} +.glyphicons-icon.train { + background-position: -188px -37px; +} +.glyphicons-icon.print { + background-position: -236px -37px; +} +.glyphicons-icon.bin { + background-position: -284px -37px; +} +.glyphicons-icon.music { + background-position: -332px -37px; +} +.glyphicons-icon.note { + background-position: -380px -37px; +} +.glyphicons-icon.heart_empty { + background-position: -428px -37px; +} +.glyphicons-icon.home { + background-position: 4px -85px; +} +.glyphicons-icon.snowflake { + background-position: -44px -85px; +} +.glyphicons-icon.fire { + background-position: -92px -85px; +} +.glyphicons-icon.magnet { + background-position: -140px -85px; +} +.glyphicons-icon.parents { + background-position: -188px -85px; +} +.glyphicons-icon.binoculars { + background-position: -236px -85px; +} +.glyphicons-icon.road { + background-position: -284px -85px; +} +.glyphicons-icon.search { + background-position: -332px -85px; +} +.glyphicons-icon.cars { + background-position: -380px -85px; +} +.glyphicons-icon.notes_2 { + background-position: -428px -85px; +} +.glyphicons-icon.pencil { + background-position: 4px -133px; +} +.glyphicons-icon.bus { + background-position: -44px -133px; +} +.glyphicons-icon.wifi_alt { + background-position: -92px -133px; +} +.glyphicons-icon.luggage { + background-position: -140px -133px; +} +.glyphicons-icon.old_man { + background-position: -188px -133px; +} +.glyphicons-icon.woman { + background-position: -236px -133px; +} +.glyphicons-icon.file { + background-position: -284px -133px; +} +.glyphicons-icon.coins { + background-position: -332px -133px; +} +.glyphicons-icon.airplane { + background-position: -380px -133px; +} +.glyphicons-icon.notes { + background-position: -428px -133px; +} +.glyphicons-icon.stats { + background-position: 4px -181px; +} +.glyphicons-icon.charts { + background-position: -44px -181px; +} +.glyphicons-icon.pie_chart { + background-position: -92px -181px; +} +.glyphicons-icon.group { + background-position: -140px -181px; +} +.glyphicons-icon.keys { + background-position: -188px -181px; +} +.glyphicons-icon.calendar { + background-position: -236px -181px; +} +.glyphicons-icon.router { + background-position: -284px -181px; +} +.glyphicons-icon.camera_small { + background-position: -332px -181px; +} +.glyphicons-icon.dislikes { + background-position: -380px -181px; +} +.glyphicons-icon.star { + background-position: -428px -181px; +} +.glyphicons-icon.link { + background-position: 4px -229px; +} +.glyphicons-icon.eye_open { + background-position: -44px -229px; +} +.glyphicons-icon.eye_close { + background-position: -92px -229px; +} +.glyphicons-icon.alarm { + background-position: -140px -229px; +} +.glyphicons-icon.clock { + background-position: -188px -229px; +} +.glyphicons-icon.stopwatch { + background-position: -236px -229px; +} +.glyphicons-icon.projector { + background-position: -284px -229px; +} +.glyphicons-icon.history { + background-position: -332px -229px; +} +.glyphicons-icon.truck { + background-position: -380px -229px; +} +.glyphicons-icon.cargo { + background-position: -428px -229px; +} +.glyphicons-icon.compass { + background-position: 4px -277px; +} +.glyphicons-icon.keynote { + background-position: -44px -277px; +} +.glyphicons-icon.paperclip { + background-position: -92px -277px; +} +.glyphicons-icon.power { + background-position: -140px -277px; +} +.glyphicons-icon.lightbulb { + background-position: -188px -277px; +} +.glyphicons-icon.tag { + background-position: -236px -277px; +} +.glyphicons-icon.tags { + background-position: -284px -277px; +} +.glyphicons-icon.cleaning { + background-position: -332px -277px; +} +.glyphicons-icon.ruller { + background-position: -380px -277px; +} +.glyphicons-icon.gift { + background-position: -428px -277px; +} +.glyphicons-icon.umbrella { + background-position: 4px -325px; +} +.glyphicons-icon.book { + background-position: -44px -325px; +} +.glyphicons-icon.bookmark { + background-position: -92px -325px; +} +.glyphicons-icon.wifi { + background-position: -140px -325px; +} +.glyphicons-icon.cup { + background-position: -188px -325px; +} +.glyphicons-icon.stroller { + background-position: -236px -325px; +} +.glyphicons-icon.headphones { + background-position: -284px -325px; +} +.glyphicons-icon.headset { + background-position: -332px -325px; +} +.glyphicons-icon.warning_sign { + background-position: -380px -325px; +} +.glyphicons-icon.signal { + background-position: -428px -325px; +} +.glyphicons-icon.retweet { + background-position: 4px -373px; +} +.glyphicons-icon.refresh { + background-position: -44px -373px; +} +.glyphicons-icon.roundabout { + background-position: -92px -373px; +} +.glyphicons-icon.random { + background-position: -140px -373px; +} +.glyphicons-icon.heat { + background-position: -188px -373px; +} +.glyphicons-icon.repeat { + background-position: -236px -373px; +} +.glyphicons-icon.display { + background-position: -284px -373px; +} +.glyphicons-icon.log_book { + background-position: -332px -373px; +} +.glyphicons-icon.adress_book { + background-position: -380px -373px; +} +.glyphicons-icon.building { + background-position: -428px -373px; +} +.glyphicons-icon.eyedropper { + background-position: 4px -421px; +} +.glyphicons-icon.adjust { + background-position: -44px -421px; +} +.glyphicons-icon.tint { + background-position: -92px -421px; +} +.glyphicons-icon.crop { + background-position: -140px -421px; +} +.glyphicons-icon.vector_path_square { + background-position: -188px -421px; +} +.glyphicons-icon.vector_path_circle { + background-position: -236px -421px; +} +.glyphicons-icon.vector_path_polygon { + background-position: -284px -421px; +} +.glyphicons-icon.vector_path_line { + background-position: -332px -421px; +} +.glyphicons-icon.vector_path_curve { + background-position: -380px -421px; +} +.glyphicons-icon.vector_path_all { + background-position: -428px -421px; +} +.glyphicons-icon.font { + background-position: 4px -469px; +} +.glyphicons-icon.italic { + background-position: -44px -469px; +} +.glyphicons-icon.bold { + background-position: -92px -469px; +} +.glyphicons-icon.text_underline { + background-position: -140px -469px; +} +.glyphicons-icon.text_strike { + background-position: -188px -469px; +} +.glyphicons-icon.text_height { + background-position: -236px -469px; +} +.glyphicons-icon.text_width { + background-position: -284px -469px; +} +.glyphicons-icon.text_resize { + background-position: -332px -469px; +} +.glyphicons-icon.left_indent { + background-position: -380px -469px; +} +.glyphicons-icon.right_indent { + background-position: -428px -469px; +} +.glyphicons-icon.align_left { + background-position: 4px -517px; +} +.glyphicons-icon.align_center { + background-position: -44px -517px; +} +.glyphicons-icon.align_right { + background-position: -92px -517px; +} +.glyphicons-icon.justify { + background-position: -140px -517px; +} +.glyphicons-icon.list { + background-position: -188px -517px; +} +.glyphicons-icon.text_smaller { + background-position: -236px -517px; +} +.glyphicons-icon.text_bigger { + background-position: -284px -517px; +} +.glyphicons-icon.embed { + background-position: -332px -517px; +} +.glyphicons-icon.embed_close { + background-position: -380px -517px; +} +.glyphicons-icon.table { + background-position: -428px -517px; +} +.glyphicons-icon.message_full { + background-position: 4px -565px; +} +.glyphicons-icon.message_empty { + background-position: -44px -565px; +} +.glyphicons-icon.message_in { + background-position: -92px -565px; +} +.glyphicons-icon.message_out { + background-position: -140px -565px; +} +.glyphicons-icon.message_plus { + background-position: -188px -565px; +} +.glyphicons-icon.message_minus { + background-position: -236px -565px; +} +.glyphicons-icon.message_ban { + background-position: -284px -565px; +} +.glyphicons-icon.message_flag { + background-position: -332px -565px; +} +.glyphicons-icon.message_lock { + background-position: -380px -565px; +} +.glyphicons-icon.message_new { + background-position: -428px -565px; +} +.glyphicons-icon.inbox { + background-position: 4px -613px; +} +.glyphicons-icon.inbox_plus { + background-position: -44px -613px; +} +.glyphicons-icon.inbox_minus { + background-position: -92px -613px; +} +.glyphicons-icon.inbox_lock { + background-position: -140px -613px; +} +.glyphicons-icon.inbox_in { + background-position: -188px -613px; +} +.glyphicons-icon.inbox_out { + background-position: -236px -613px; +} +.glyphicons-icon.cogwheel { + background-position: -284px -613px; +} +.glyphicons-icon.cogwheels { + background-position: -332px -613px; +} +.glyphicons-icon.picture { + background-position: -380px -613px; +} +.glyphicons-icon.adjust_alt { + background-position: -428px -613px; +} +.glyphicons-icon.database_lock { + background-position: 4px -661px; +} +.glyphicons-icon.database_plus { + background-position: -44px -661px; +} +.glyphicons-icon.database_minus { + background-position: -92px -661px; +} +.glyphicons-icon.database_ban { + background-position: -140px -661px; +} +.glyphicons-icon.folder_open { + background-position: -188px -661px; +} +.glyphicons-icon.folder_plus { + background-position: -236px -661px; +} +.glyphicons-icon.folder_minus { + background-position: -284px -661px; +} +.glyphicons-icon.folder_lock { + background-position: -332px -661px; +} +.glyphicons-icon.folder_flag { + background-position: -380px -661px; +} +.glyphicons-icon.folder_new { + background-position: -428px -661px; +} +.glyphicons-icon.edit { + background-position: 4px -709px; +} +.glyphicons-icon.new_window { + background-position: -44px -709px; +} +.glyphicons-icon.check { + background-position: -92px -709px; +} +.glyphicons-icon.unchecked { + background-position: -140px -709px; +} +.glyphicons-icon.more_windows { + background-position: -188px -709px; +} +.glyphicons-icon.show_big_thumbnails { + background-position: -236px -709px; +} +.glyphicons-icon.show_thumbnails { + background-position: -284px -709px; +} +.glyphicons-icon.show_thumbnails_with_lines { + background-position: -332px -709px; +} +.glyphicons-icon.show_lines { + background-position: -380px -709px; +} +.glyphicons-icon.playlist { + background-position: -428px -709px; +} +.glyphicons-icon.imac { + background-position: 4px -757px; +} +.glyphicons-icon.macbook { + background-position: -44px -757px; +} +.glyphicons-icon.ipad { + background-position: -92px -757px; +} +.glyphicons-icon.iphone { + background-position: -140px -757px; +} +.glyphicons-icon.iphone_transfer { + background-position: -188px -757px; +} +.glyphicons-icon.iphone_exchange { + background-position: -236px -757px; +} +.glyphicons-icon.ipod { + background-position: -284px -757px; +} +.glyphicons-icon.ipod_shuffle { + background-position: -332px -757px; +} +.glyphicons-icon.ear_plugs { + background-position: -380px -757px; +} +.glyphicons-icon.phone { + background-position: -428px -757px; +} +.glyphicons-icon.step_backward { + background-position: 4px -805px; +} +.glyphicons-icon.fast_backward { + background-position: -44px -805px; +} +.glyphicons-icon.rewind { + background-position: -92px -805px; +} +.glyphicons-icon.play { + background-position: -140px -805px; +} +.glyphicons-icon.pause { + background-position: -188px -805px; +} +.glyphicons-icon.stop { + background-position: -236px -805px; +} +.glyphicons-icon.forward { + background-position: -284px -805px; +} +.glyphicons-icon.fast_forward { + background-position: -332px -805px; +} +.glyphicons-icon.step_forward { + background-position: -380px -805px; +} +.glyphicons-icon.eject { + background-position: -428px -805px; +} +.glyphicons-icon.facetime_video { + background-position: 4px -853px; +} +.glyphicons-icon.download_alt { + background-position: -44px -853px; +} +.glyphicons-icon.mute { + background-position: -92px -853px; +} +.glyphicons-icon.volume_down { + background-position: -140px -853px; +} +.glyphicons-icon.volume_up { + background-position: -188px -853px; +} +.glyphicons-icon.screenshot { + background-position: -236px -853px; +} +.glyphicons-icon.move { + background-position: -284px -853px; +} +.glyphicons-icon.more { + background-position: -332px -853px; +} +.glyphicons-icon.brightness_reduce { + background-position: -380px -853px; +} +.glyphicons-icon.brightness_increase { + background-position: -428px -853px; +} +.glyphicons-icon.circle_plus { + background-position: 4px -901px; +} +.glyphicons-icon.circle_minus { + background-position: -44px -901px; +} +.glyphicons-icon.circle_remove { + background-position: -92px -901px; +} +.glyphicons-icon.circle_ok { + background-position: -140px -901px; +} +.glyphicons-icon.circle_question_mark { + background-position: -188px -901px; +} +.glyphicons-icon.circle_info { + background-position: -236px -901px; +} +.glyphicons-icon.circle_exclamation_mark { + background-position: -284px -901px; +} +.glyphicons-icon.remove { + background-position: -332px -901px; +} +.glyphicons-icon.ok { + background-position: -380px -901px; +} +.glyphicons-icon.ban { + background-position: -428px -901px; +} +.glyphicons-icon.download { + background-position: 4px -949px; +} +.glyphicons-icon.upload { + background-position: -44px -949px; +} +.glyphicons-icon.shopping_cart { + background-position: -92px -949px; +} +.glyphicons-icon.lock { + background-position: -140px -949px; +} +.glyphicons-icon.unlock { + background-position: -188px -949px; +} +.glyphicons-icon.electricity { + background-position: -236px -949px; +} +.glyphicons-icon.ok_2 { + background-position: -284px -949px; +} +.glyphicons-icon.remove_2 { + background-position: -332px -949px; +} +.glyphicons-icon.cart_out { + background-position: -380px -949px; +} +.glyphicons-icon.cart_in { + background-position: -428px -949px; +} +.glyphicons-icon.left_arrow { + background-position: 4px -997px; +} +.glyphicons-icon.right_arrow { + background-position: -44px -997px; +} +.glyphicons-icon.down_arrow { + background-position: -92px -997px; +} +.glyphicons-icon.up_arrow { + background-position: -140px -997px; +} +.glyphicons-icon.resize_small { + background-position: -188px -997px; +} +.glyphicons-icon.resize_full { + background-position: -236px -997px; +} +.glyphicons-icon.circle_arrow_left { + background-position: -284px -997px; +} +.glyphicons-icon.circle_arrow_right { + background-position: -332px -997px; +} +.glyphicons-icon.circle_arrow_top { + background-position: -380px -997px; +} +.glyphicons-icon.circle_arrow_down { + background-position: -428px -997px; +} +.glyphicons-icon.play_button { + background-position: 4px -1045px; +} +.glyphicons-icon.unshare { + background-position: -44px -1045px; +} +.glyphicons-icon.share { + background-position: -92px -1045px; +} +.glyphicons-icon.chevron-right { + background-position: -140px -1045px; +} +.glyphicons-icon.chevron-left { + background-position: -188px -1045px; +} +.glyphicons-icon.bluetooth { + background-position: -236px -1045px; +} +.glyphicons-icon.euro { + background-position: -284px -1045px; +} +.glyphicons-icon.usd { + background-position: -332px -1045px; +} +.glyphicons-icon.gbp { + background-position: -380px -1045px; +} +.glyphicons-icon.retweet_2 { + background-position: -428px -1045px; +} +.glyphicons-icon.moon { + background-position: 4px -1093px; +} +.glyphicons-icon.sun { + background-position: -44px -1093px; +} +.glyphicons-icon.cloud { + background-position: -92px -1093px; +} +.glyphicons-icon.direction { + background-position: -140px -1093px; +} +.glyphicons-icon.brush { + background-position: -188px -1093px; +} +.glyphicons-icon.pen { + background-position: -236px -1093px; +} +.glyphicons-icon.zoom_in { + background-position: -284px -1093px; +} +.glyphicons-icon.zoom_out { + background-position: -332px -1093px; +} +.glyphicons-icon.pin { + background-position: -380px -1093px; +} +.glyphicons-icon.albums { + background-position: -428px -1093px; +} +.glyphicons-icon.rotation_lock { + background-position: 4px -1141px; +} +.glyphicons-icon.flash { + background-position: -44px -1141px; +} +.glyphicons-icon.google_maps { + background-position: -92px -1141px; +} +.glyphicons-icon.anchor { + background-position: -140px -1141px; +} +.glyphicons-icon.conversation { + background-position: -188px -1141px; +} +.glyphicons-icon.chat { + background-position: -236px -1141px; +} +.glyphicons-icon.male { + background-position: -284px -1141px; +} +.glyphicons-icon.female { + background-position: -332px -1141px; +} +.glyphicons-icon.asterisk { + background-position: -380px -1141px; +} +.glyphicons-icon.divide { + background-position: -428px -1141px; +} +.glyphicons-icon.snorkel_diving { + background-position: 4px -1189px; +} +.glyphicons-icon.scuba_diving { + background-position: -44px -1189px; +} +.glyphicons-icon.oxygen_bottle { + background-position: -92px -1189px; +} +.glyphicons-icon.fins { + background-position: -140px -1189px; +} +.glyphicons-icon.fishes { + background-position: -188px -1189px; +} +.glyphicons-icon.boat { + background-position: -236px -1189px; +} +.glyphicons-icon.delete { + background-position: -284px -1189px; +} +.glyphicons-icon.sheriffs_star { + background-position: -332px -1189px; +} +.glyphicons-icon.qrcode { + background-position: -380px -1189px; +} +.glyphicons-icon.barcode { + background-position: -428px -1189px; +} +.glyphicons-icon.pool { + background-position: 4px -1237px; +} +.glyphicons-icon.buoy { + background-position: -44px -1237px; +} +.glyphicons-icon.spade { + background-position: -92px -1237px; +} +.glyphicons-icon.bank { + background-position: -140px -1237px; +} +.glyphicons-icon.vcard { + background-position: -188px -1237px; +} +.glyphicons-icon.electrical_plug { + background-position: -236px -1237px; +} +.glyphicons-icon.flag { + background-position: -284px -1237px; +} +.glyphicons-icon.credit_card { + background-position: -332px -1237px; +} +.glyphicons-icon.keyboard-wireless { + background-position: -380px -1237px; +} +.glyphicons-icon.keyboard-wired { + background-position: -428px -1237px; +} +.glyphicons-icon.shield { + background-position: 4px -1285px; +} +.glyphicons-icon.ring { + background-position: -44px -1285px; +} +.glyphicons-icon.cake { + background-position: -92px -1285px; +} +.glyphicons-icon.drink { + background-position: -140px -1285px; +} +.glyphicons-icon.beer { + background-position: -188px -1285px; +} +.glyphicons-icon.fast_food { + background-position: -236px -1285px; +} +.glyphicons-icon.cutlery { + background-position: -284px -1285px; +} +.glyphicons-icon.pizza { + background-position: -332px -1285px; +} +.glyphicons-icon.birthday_cake { + background-position: -380px -1285px; +} +.glyphicons-icon.tablet { + background-position: -428px -1285px; +} +.glyphicons-icon.settings { + background-position: 4px -1333px; +} +.glyphicons-icon.bullets { + background-position: -44px -1333px; +} +.glyphicons-icon.cardio { + background-position: -92px -1333px; +} +.glyphicons-icon.t-shirt { + background-position: -140px -1333px; +} +.glyphicons-icon.pants { + background-position: -188px -1333px; +} +.glyphicons-icon.sweater { + background-position: -236px -1333px; +} +.glyphicons-icon.fabric { + background-position: -284px -1333px; +} +.glyphicons-icon.leather { + background-position: -332px -1333px; +} +.glyphicons-icon.scissors { + background-position: -380px -1333px; +} +.glyphicons-icon.bomb { + background-position: -428px -1333px; +} +.glyphicons-icon.skull { + background-position: 4px -1381px; +} +.glyphicons-icon.celebration { + background-position: -44px -1381px; +} +.glyphicons-icon.tea_kettle { + background-position: -92px -1381px; +} +.glyphicons-icon.french_press { + background-position: -140px -1381px; +} +.glyphicons-icon.coffe_cup { + background-position: -188px -1381px; +} +.glyphicons-icon.pot { + background-position: -236px -1381px; +} +.glyphicons-icon.grater { + background-position: -284px -1381px; +} +.glyphicons-icon.kettle { + background-position: -332px -1381px; +} +.glyphicons-icon.hospital { + background-position: -380px -1381px; +} +.glyphicons-icon.hospital_h { + background-position: -428px -1381px; +} +.glyphicons-icon.microphone { + background-position: 4px -1429px; +} +.glyphicons-icon.webcam { + background-position: -44px -1429px; +} +.glyphicons-icon.temple_christianity_church { + background-position: -92px -1429px; +} +.glyphicons-icon.temple_islam { + background-position: -140px -1429px; +} +.glyphicons-icon.temple_hindu { + background-position: -188px -1429px; +} +.glyphicons-icon.temple_buddhist { + background-position: -236px -1429px; +} +.glyphicons-icon.bicycle { + background-position: -284px -1429px; +} +.glyphicons-icon.life_preserver { + background-position: -332px -1429px; +} +.glyphicons-icon.share_alt { + background-position: -380px -1429px; +} +.glyphicons-icon.comments { + background-position: -428px -1429px; +} +.glyphicons-icon.flower { + background-position: 4px -1477px; +} +.glyphicons-icon.baseball { + background-position: -44px -1477px; +} +.glyphicons-icon.rugby { + background-position: -92px -1477px; +} +.glyphicons-icon.ax { + background-position: -140px -1477px; +} +.glyphicons-icon.table_tennis { + background-position: -188px -1477px; +} +.glyphicons-icon.bowling { + background-position: -236px -1477px; +} +.glyphicons-icon.tree_conifer { + background-position: -284px -1477px; +} +.glyphicons-icon.tree_deciduous { + background-position: -332px -1477px; +} +.glyphicons-icon.more_items { + background-position: -380px -1477px; +} +.glyphicons-icon.sort { + background-position: -428px -1477px; +} +.glyphicons-icon.filter { + background-position: 4px -1525px; +} +.glyphicons-icon.gamepad { + background-position: -44px -1525px; +} +.glyphicons-icon.playing_dices { + background-position: -92px -1525px; +} +.glyphicons-icon.calculator { + background-position: -140px -1525px; +} +.glyphicons-icon.tie { + background-position: -188px -1525px; +} +.glyphicons-icon.wallet { + background-position: -236px -1525px; +} +.glyphicons-icon.piano { + background-position: -284px -1525px; +} +.glyphicons-icon.sampler { + background-position: -332px -1525px; +} +.glyphicons-icon.podium { + background-position: -380px -1525px; +} +.glyphicons-icon.soccer_ball { + background-position: -428px -1525px; +} +.glyphicons-icon.blog { + background-position: 4px -1573px; +} +.glyphicons-icon.dashboard { + background-position: -44px -1573px; +} +.glyphicons-icon.certificate { + background-position: -92px -1573px; +} +.glyphicons-icon.bell { + background-position: -140px -1573px; +} +.glyphicons-icon.candle { + background-position: -188px -1573px; +} +.glyphicons-icon.pushpin { + background-position: -236px -1573px; +} +.glyphicons-icon.iphone_shake { + background-position: -284px -1573px; +} +.glyphicons-icon.pin_flag { + background-position: -332px -1573px; +} +.glyphicons-icon.turtle { + background-position: -380px -1573px; +} +.glyphicons-icon.rabbit { + background-position: -428px -1573px; +} +.glyphicons-icon.globe { + background-position: 4px -1621px; +} +.glyphicons-icon.briefcase { + background-position: -44px -1621px; +} +.glyphicons-icon.hdd { + background-position: -92px -1621px; +} +.glyphicons-icon.thumbs_up { + background-position: -140px -1621px; +} +.glyphicons-icon.thumbs_down { + background-position: -188px -1621px; +} +.glyphicons-icon.hand_right { + background-position: -236px -1621px; +} +.glyphicons-icon.hand_left { + background-position: -284px -1621px; +} +.glyphicons-icon.hand_up { + background-position: -332px -1621px; +} +.glyphicons-icon.hand_down { + background-position: -380px -1621px; +} +.glyphicons-icon.fullscreen { + background-position: -428px -1621px; +} +.glyphicons-icon.shopping_bag { + background-position: 4px -1669px; +} +.glyphicons-icon.book_open { + background-position: -44px -1669px; +} +.glyphicons-icon.nameplate { + background-position: -92px -1669px; +} +.glyphicons-icon.nameplate_alt { + background-position: -140px -1669px; +} +.glyphicons-icon.vases { + background-position: -188px -1669px; +} +.glyphicons-icon.bullhorn { + background-position: -236px -1669px; +} +.glyphicons-icon.dumbbell { + background-position: -284px -1669px; +} +.glyphicons-icon.suitcase { + background-position: -332px -1669px; +} +.glyphicons-icon.file_import { + background-position: -380px -1669px; +} +.glyphicons-icon.file_export { + background-position: -428px -1669px; +} +.glyphicons-icon.bug { + background-position: 4px -1717px; +} +.glyphicons-icon.crown { + background-position: -44px -1717px; +} +.glyphicons-icon.smoking { + background-position: -92px -1717px; +} +.glyphicons-icon.cloud-upload { + background-position: -140px -1717px; +} +.glyphicons-icon.cloud-download { + background-position: -188px -1717px; +} +.glyphicons-icon.restart { + background-position: -236px -1717px; +} +.glyphicons-icon.security_camera { + background-position: -284px -1717px; +} +.glyphicons-icon.expand { + background-position: -332px -1717px; +} +.glyphicons-icon.collapse { + background-position: -380px -1717px; +} +.glyphicons-icon.collapse_top { + background-position: -428px -1717px; +} +.glyphicons-icon.globe_af { + background-position: 4px -1765px; +} +.glyphicons-icon.global { + background-position: -44px -1765px; +} +.glyphicons-icon.spray { + background-position: -92px -1765px; +} +.glyphicons-icon.nails { + background-position: -140px -1765px; +} +.glyphicons-icon.claw_hammer { + background-position: -188px -1765px; +} +.glyphicons-icon.classic_hammer { + background-position: -236px -1765px; +} +.glyphicons-icon.hand_saw { + background-position: -284px -1765px; +} +.glyphicons-icon.riflescope { + background-position: -332px -1765px; +} +.glyphicons-icon.electrical_socket_eu { + background-position: -380px -1765px; +} +.glyphicons-icon.electrical_socket_us { + background-position: -428px -1765px; +} +.glyphicons-icon.pinterest { + background-position: 4px -1813px; +} +.glyphicons-icon.dropbox { + background-position: -44px -1813px; +} +.glyphicons-icon.google_plus { + background-position: -92px -1813px; +} +.glyphicons-icon.jolicloud { + background-position: -140px -1813px; +} +.glyphicons-icon.yahoo { + background-position: -188px -1813px; +} +.glyphicons-icon.blogger { + background-position: -236px -1813px; +} +.glyphicons-icon.picasa { + background-position: -284px -1813px; +} +.glyphicons-icon.amazon { + background-position: -332px -1813px; +} +.glyphicons-icon.tumblr { + background-position: -380px -1813px; +} +.glyphicons-icon.wordpress { + background-position: -428px -1813px; +} +.glyphicons-icon.instapaper { + background-position: 4px -1861px; +} +.glyphicons-icon.evernote { + background-position: -44px -1861px; +} +.glyphicons-icon.xing { + background-position: -92px -1861px; +} +.glyphicons-icon.zootool { + background-position: -140px -1861px; +} +.glyphicons-icon.dribbble { + background-position: -188px -1861px; +} +.glyphicons-icon.deviantart { + background-position: -236px -1861px; +} +.glyphicons-icon.read_it_later { + background-position: -284px -1861px; +} +.glyphicons-icon.linked_in { + background-position: -332px -1861px; +} +.glyphicons-icon.forrst { + background-position: -380px -1861px; +} +.glyphicons-icon.pinboard { + background-position: -428px -1861px; +} +.glyphicons-icon.behance { + background-position: 4px -1909px; +} +.glyphicons-icon.github { + background-position: -44px -1909px; +} +.glyphicons-icon.youtube { + background-position: -92px -1909px; +} +.glyphicons-icon.skitch { + background-position: -140px -1909px; +} +.glyphicons-icon.foursquare { + background-position: -188px -1909px; +} +.glyphicons-icon.quora { + background-position: -236px -1909px; +} +.glyphicons-icon.badoo { + background-position: -284px -1909px; +} +.glyphicons-icon.spotify { + background-position: -332px -1909px; +} +.glyphicons-icon.stumbleupon { + background-position: -380px -1909px; +} +.glyphicons-icon.readability { + background-position: -428px -1909px; +} +.glyphicons-icon.facebook { + background-position: 4px -1957px; +} +.glyphicons-icon.twitter { + background-position: -44px -1957px; +} +.glyphicons-icon.instagram { + background-position: -92px -1957px; +} +.glyphicons-icon.posterous_spaces { + background-position: -140px -1957px; +} +.glyphicons-icon.vimeo { + background-position: -188px -1957px; +} +.glyphicons-icon.flickr { + background-position: -236px -1957px; +} +.glyphicons-icon.last_fm { + background-position: -284px -1957px; +} +.glyphicons-icon.rss { + background-position: -332px -1957px; +} +.glyphicons-icon.skype { + background-position: -380px -1957px; +} +.glyphicons-icon.e-mail { + background-position: -428px -1957px; +} diff --git a/mall-master/src/main/resources/static/css/grey.css b/mall-master/src/main/resources/static/css/grey.css new file mode 100644 index 0000000..67d3a6f --- /dev/null +++ b/mall-master/src/main/resources/static/css/grey.css @@ -0,0 +1,287 @@ +/*** +Grey theme +***/ +/*** +Reset and overrides +***/ +body { + background-color: #666666 !important; +} +/*** +Page header +***/ +.header .navbar-inner { + filter: none !important; + background-image: none !important; + background-color: #4a4a4a !important; +} +.header .btn-navbar { + background-color: #4a4a4a !important; +} +.header .nav .dropdown-toggle:hover, +.header .nav .dropdown.open .dropdown-toggle { + background-color: #616161 !important; +} +.header .nav li.dropdown .dropdown-toggle i { + color: #b3b3b3 !important; +} +/*** +Page sidebar +***/ +.page-sidebar { + background-color: #666666; +} +ul.page-sidebar-menu > li > a { + border-top: 1px solid #858585 !important; + color: #ffffff !important; +} +ul.page-sidebar-menu > li:last-child > a { + border-bottom: 1px solid transparent !important; +} +ul.page-sidebar-menu > li a i { + color: #bfbfbf; +} +ul.page-sidebar-menu > li.open > a, +ul.page-sidebar-menu > li > a:hover, +ul.page-sidebar-menu > li:hover > a { + background: #595959; +} +ul.page-sidebar-menu > li.active > a { + background: #e02222 !important; + border-top-color: transparent !important; + color: #ffffff; +} +ul.page-sidebar-menu > li.active > a i { + color: #ffffff; +} +ul.page-sidebar-menu > li > ul.sub-menu > li:first-child > a { + border-top: 0px !important; +} +ul.page-sidebar-menu > li > ul.sub-menu > li.active > a, +ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { + color: #ffffff !important; + background: #808080 !important; +} +ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { + background: #808080 !important; +} +/* 3rd level sub menu */ +ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li.active > a, +ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li > a:hover, +ul.page-sidebar-menu > li > ul.sub-menu li.open > a { + color: #ffffff !important; + background: #808080 !important; +} +/* font color for all sub menu links*/ +ul.page-sidebar-menu li > ul.sub-menu > li > a { + color: #e6e6e6; +} +/* menu arrows */ +ul.page-sidebar-menu > li > a .arrow:before, +ul.page-sidebar-menu > li > a .arrow.open:before { + color: #a6a6a6 !important; +} +ul.page-sidebar-menu > li > ul.sub-menu a .arrow:before, +ul.page-sidebar-menu > li > ul.sub-menu a .arrow.open:before { + color: #999999 !important; +} +ul.page-sidebar-menu > li > a > .arrow.open:before { + color: #b3b3b3 !important; +} +ul.page-sidebar-menu > li.active > a .arrow:before, +ul.page-sidebar-menu > li.active > a .arrow.open:before { + color: #ffffff !important; +} +/* sidebar search */ +.page-sidebar .sidebar-search input { + background-color: #4d4d4d !important; + color: #a6a6a6; +} +.page-sidebar .sidebar-search input::-webkit-input-placeholder { + color: #a6a6a6 !important; +} +.page-sidebar .sidebar-search input:-moz-placeholder { + color: #a6a6a6 !important; +} +.page-sidebar .sidebar-search input:-ms-input-placeholder { + color: #a6a6a6 !important; +} +.page-sidebar .sidebar-search input { + background-color: #666666 !important; + color: #bfbfbf !important; +} +.page-sidebar .sidebar-search .input-box { + border-bottom: 1px solid #a6a6a6 !important; +} +.page-sidebar .sidebar-search .submit { + background-image: url(../../img/search-icon.png); +} +/*** +Sidebar toggler +***/ +.sidebar-toggler { + background-image: url(../../img/sidebar-toggler.jpg); + background-color: #4d4d4d; +} +/* search box bg color on expanded */ +.page-sidebar-closed .page-sidebar .sidebar-search.open { + background-color: #666666 !important; +} +.page-sidebar-closed .page-sidebar .sidebar-search.open .remove { + background-image: url("../../img/sidebar-search-close.png"); +} +/* sub menu bg color on hover menu item */ +.page-sidebar-closed ul.page-sidebar-menu > li:hover .sub-menu { + background-color: #666666; +} +/*** +Horizontal Menu(new in v1.2) +***/ +/*search*/ +.header .hor-menu .hor-menu-search-form-toggler.hide { + background: #000000 url(../../img/hor-menu-search-close.png) no-repeat center; +} +.header .hor-menu .search-form { + background: #000000; +} +.header .hor-menu .search-form .btn { + color: #ffffff; + background: #1a1a1a url(../../img/search-icon.png) no-repeat center; +} +.header .hor-menu .search-form form input { + color: #ffffff; +} +.header .hor-menu .search-form form input::-webkit-input-placeholder { + /* WebKit browsers */ + + color: #ffffff; +} +.header .hor-menu .search-form form input:-moz-placeholder { + /* Mozilla Firefox 4 to 18 */ + + color: #ffffff; +} +.header .hor-menu .search-form form input::-moz-placeholder { + /* Mozilla Firefox 19+ */ + + color: #ffffff; +} +.header .hor-menu .search-form form input:-ms-input-placeholder { + /* Internet Explorer 10+ */ + + color: #ffffff; +} +/*** +Footer +***/ +.footer .footer-inner { + color: #b3b3b3; +} +.footer .footer-tools .go-top { + background-color: #787878; +} +.footer .footer-tools .go-top:hover { + opacity: 0.7; + filter: alpha(opacity=70); +} +.footer .footer-tools .go-top i { + color: #b3b3b3; +} +/*** +Footer Layouts (new in v1.3) +***/ +/* begin:fixed footer */ +.page-footer-fixed .footer { + background-color: #4d4d4d; +} +.page-footer-fixed .footer .footer-inner { + color: #b3b3b3; +} +.page-footer-fixed .footer .footer-tools .go-top { + background-color: #787878; +} +.page-footer-fixed .footer .footer-tools .go-top i { + color: #b3b3b3; +} +/* end:fixed footer */ +/*** +Gritter Notifications +***/ +.gritter-top { + background: url(../../plugins/gritter/images/gritter.png) no-repeat left -30px !important; +} +.gritter-bottom { + background: url(../../plugins/gritter/images/gritter.png) no-repeat left bottom !important; +} +.gritter-item { + display: block; + background: url(../../plugins/gritter/images/gritter.png) no-repeat left -40px !important; +} +.gritter-close { + background: url(../../plugins/gritter/images/gritter.png) no-repeat left top !important; +} +.gritter-title { + text-shadow: none !important; + /* Not supported by IE :( */ + +} +/* for the light (white) version of the gritter notice */ +.gritter-light .gritter-item, +.gritter-light .gritter-bottom, +.gritter-light .gritter-top, +.gritter-light .gritter-close { + background-image: url(../../plugins/gritter/images/gritter-light.png) !important; +} +.gritter-item-wrapper a { + color: #18a5ed; +} +.gritter-item-wrapper a:hover { + color: #0b6694; +} +/* begin: boxed page */ +@media (min-width: 980px) { + .page-boxed { + background-color: #575757 !important; + } + .page-boxed .page-container { + background-color: #666666; + border-left: 1px solid #878787; + border-bottom: 1px solid #878787; + } + .page-boxed.page-sidebar-fixed .page-container { + border-left: 0; + border-bottom: 0; + } + .page-boxed.page-sidebar-fixed .page-sidebar { + border-left: 1px solid #878787; + } + .page-boxed.page-sidebar-fixed.page-footer-fixed .footer { + background-color: #575757 !important; + } +} +/* end: boxed page */ +/*** +Landscape phone to portrait tablet +***/ +@media (max-width: 979px) { + /*** + page sidebar + ***/ + .page-sidebar { + background-color: #525252 !important; + } + ul.page-sidebar-menu > li > a { + border-top: 1px solid #737373 !important; + } + ul.page-sidebar-menu > li:last-child > a { + border-bottom: 0 !important; + } + .page-sidebar .sidebar-search input { + background-color: #525252 !important; + } + ul.page-sidebar-menu > li.open > a, + ul.page-sidebar-menu > li > a:hover, + ul.page-sidebar-menu > li:hover > a { + background: #474747; + } +} diff --git a/mall-master/src/main/resources/static/css/halflings.css b/mall-master/src/main/resources/static/css/halflings.css new file mode 100644 index 0000000..e1d6ac1 --- /dev/null +++ b/mall-master/src/main/resources/static/css/halflings.css @@ -0,0 +1,1021 @@ +/*! + * + * Project: GLYPHICONS HALFLINGS + * Author: Jan Kovarik - www.glyphicons.com + * Twitter: @jankovarik + * + */ +html, +html .halflings { + -webkit-font-smoothing: antialiased !important; +} +@font-face { + font-family: 'Glyphicons Halflings'; + src: url('../image/glyphiconshalflings-regular.eot'); + src: url('../image/glyphiconshalflings-regular.eot') format('embedded-opentype'), url('../image/glyphiconshalflings-regular.woff') format('woff'), url('../image/glyphiconshalflings-regular.ttf') format('truetype'), url('../image/glyphiconshalflings-regular.svg#glyphicons_halflingsregular') format('svg'); + font-weight: normal; + font-style: normal; +} +.halflings { + display: inline-block; + position: relative; + padding: 0 0 0 25px; + color: #1d1d1b; + text-decoration: none; + *display: inline; + *zoom: 1; +} +.halflings i:before { + position: absolute; + left: 0; + top: 0; + font: 12px/1em 'Glyphicons Halflings'; + font-style: normal; + color: #1d1d1b; +} +.halflings.white i:before { + color: #fff; +} +.halflings.glass i:before { + content: "\e001"; +} +.halflings.music i:before { + content: "\e002"; +} +.halflings.search i:before { + content: "\e003"; +} +.halflings.envelope i:before { + content: "\2709"; +} +.halflings.heart i:before { + content: "\e005"; +} +.halflings.star i:before { + content: "\e006"; +} +.halflings.star-empty i:before { + content: "\e007"; +} +.halflings.user i:before { + content: "\e008"; +} +.halflings.film i:before { + content: "\e009"; +} +.halflings.th-large i:before { + content: "\e010"; +} +.halflings.th i:before { + content: "\e011"; +} +.halflings.th-list i:before { + content: "\e012"; +} +.halflings.ok i:before { + content: "\e013"; +} +.halflings.remove i:before { + content: "\e014"; +} +.halflings.zoom-in i:before { + content: "\e015"; +} +.halflings.zoom-out i:before { + content: "\e016"; +} +.halflings.off i:before { + content: "\e017"; +} +.halflings.signal i:before { + content: "\e018"; +} +.halflings.cog i:before { + content: "\e019"; +} +.halflings.trash i:before { + content: "\e020"; +} +.halflings.home i:before { + content: "\e021"; +} +.halflings.file i:before { + content: "\e022"; +} +.halflings.time i:before { + content: "\e023"; +} +.halflings.road i:before { + content: "\e024"; +} +.halflings.download-alt i:before { + content: "\e025"; +} +.halflings.download i:before { + content: "\e026"; +} +.halflings.upload i:before { + content: "\e027"; +} +.halflings.inbox i:before { + content: "\e028"; +} +.halflings.play-circle i:before { + content: "\e029"; +} +.halflings.repeat i:before { + content: "\e030"; +} +.halflings.refresh i:before { + content: "\e031"; +} +.halflings.list-alt i:before { + content: "\e032"; +} +.halflings.lock i:before { + content: "\e033"; +} +.halflings.flag i:before { + content: "\e034"; +} +.halflings.headphones i:before { + content: "\e035"; +} +.halflings.volume-off i:before { + content: "\e036"; +} +.halflings.volume-down i:before { + content: "\e037"; +} +.halflings.volume-up i:before { + content: "\e038"; +} +.halflings.qrcode i:before { + content: "\e039"; +} +.halflings.barcode i:before { + content: "\e040"; +} +.halflings.tag i:before { + content: "\e041"; +} +.halflings.tags i:before { + content: "\e042"; +} +.halflings.book i:before { + content: "\e043"; +} +.halflings.bookmark i:before { + content: "\e044"; +} +.halflings.print i:before { + content: "\e045"; +} +.halflings.camera i:before { + content: "\e046"; +} +.halflings.font i:before { + content: "\e047"; +} +.halflings.bold i:before { + content: "\e048"; +} +.halflings.italic i:before { + content: "\e049"; +} +.halflings.text-height i:before { + content: "\e050"; +} +.halflings.text-width i:before { + content: "\e051"; +} +.halflings.align-left i:before { + content: "\e052"; +} +.halflings.align-center i:before { + content: "\e053"; +} +.halflings.align-right i:before { + content: "\e054"; +} +.halflings.align-justify i:before { + content: "\e055"; +} +.halflings.list i:before { + content: "\e056"; +} +.halflings.indent-left i:before { + content: "\e057"; +} +.halflings.indent-right i:before { + content: "\e058"; +} +.halflings.facetime-video i:before { + content: "\e059"; +} +.halflings.picture i:before { + content: "\e060"; +} +.halflings.pencil i:before { + content: "\270f"; +} +.halflings.map-marker i:before { + content: "\e062"; +} +.halflings.adjust i:before { + content: "\e063"; +} +.halflings.tint i:before { + content: "\e064"; +} +.halflings.edit i:before { + content: "\e065"; +} +.halflings.share i:before { + content: "\e066"; +} +.halflings.check i:before { + content: "\e067"; +} +.halflings.move i:before { + content: "\e068"; +} +.halflings.step-backward i:before { + content: "\e069"; +} +.halflings.fast-backward i:before { + content: "\e070"; +} +.halflings.backward i:before { + content: "\e071"; +} +.halflings.play i:before { + content: "\e072"; +} +.halflings.pause i:before { + content: "\e073"; +} +.halflings.stop i:before { + content: "\e074"; +} +.halflings.forward i:before { + content: "\e075"; +} +.halflings.fast-forward i:before { + content: "\e076"; +} +.halflings.step-forward i:before { + content: "\e077"; +} +.halflings.eject i:before { + content: "\e078"; +} +.halflings.chevron-left i:before { + content: "\e079"; +} +.halflings.chevron-right i:before { + content: "\e080"; +} +.halflings.plus-sign i:before { + content: "\e081"; +} +.halflings.minus-sign i:before { + content: "\e082"; +} +.halflings.remove-sign i:before { + content: "\e083"; +} +.halflings.ok-sign i:before { + content: "\e084"; +} +.halflings.question-sign i:before { + content: "\e085"; +} +.halflings.info-sign i:before { + content: "\e086"; +} +.halflings.screenshot i:before { + content: "\e087"; +} +.halflings.remove-circle i:before { + content: "\e088"; +} +.halflings.ok-circle i:before { + content: "\e089"; +} +.halflings.ban-circle i:before { + content: "\e090"; +} +.halflings.arrow-left i:before { + content: "\e091"; +} +.halflings.arrow-right i:before { + content: "\e092"; +} +.halflings.arrow-up i:before { + content: "\e093"; +} +.halflings.arrow-down i:before { + content: "\e094"; +} +.halflings.share-alt i:before { + content: "\e095"; +} +.halflings.resize-full i:before { + content: "\e096"; +} +.halflings.resize-small i:before { + content: "\e097"; +} +.halflings.plus i:before { + content: "\002b"; +} +.halflings.minus i:before { + content: "\2212"; +} +.halflings.asterisk i:before { + content: "\002a"; +} +.halflings.exclamation-sign i:before { + content: "\e101"; +} +.halflings.gift i:before { + content: "\e102"; +} +.halflings.leaf i:before { + content: "\e103"; +} +.halflings.fire i:before { + content: "\e104"; +} +.halflings.eye-open i:before { + content: "\e105"; +} +.halflings.eye-close i:before { + content: "\e106"; +} +.halflings.warning-sign i:before { + content: "\e107"; +} +.halflings.plane i:before { + content: "\e108"; +} +.halflings.calendar i:before { + content: "\e109"; +} +.halflings.random i:before { + content: "\e110"; +} +.halflings.comments i:before { + content: "\e111"; +} +.halflings.magnet i:before { + content: "\e113"; +} +.halflings.chevron-up i:before { + content: "\e113"; +} +.halflings.chevron-down i:before { + content: "\e114"; +} +.halflings.retweet i:before { + content: "\e115"; +} +.halflings.shopping-cart i:before { + content: "\e116"; +} +.halflings.folder-close i:before { + content: "\e117"; +} +.halflings.folder-open i:before { + content: "\e118"; +} +.halflings.resize-vertical i:before { + content: "\e119"; +} +.halflings.resize-horizontal i:before { + content: "\e120"; +} +.halflings.hdd i:before { + content: "\e121"; +} +.halflings.bullhorn i:before { + content: "\e122"; +} +.halflings.bell i:before { + content: "\e123"; +} +.halflings.certificate i:before { + content: "\e124"; +} +.halflings.thumbs-up i:before { + content: "\e125"; +} +.halflings.thumbs-down i:before { + content: "\e126"; +} +.halflings.hand-right i:before { + content: "\e127"; +} +.halflings.hand-left i:before { + content: "\e128"; +} +.halflings.hand-top i:before { + content: "\e129"; +} +.halflings.hand-down i:before { + content: "\e130"; +} +.halflings.circle-arrow-right i:before { + content: "\e131"; +} +.halflings.circle-arrow-left i:before { + content: "\e132"; +} +.halflings.circle-arrow-top i:before { + content: "\e133"; +} +.halflings.circle-arrow-down i:before { + content: "\e134"; +} +.halflings.globe i:before { + content: "\e135"; +} +.halflings.wrench i:before { + content: "\e136"; +} +.halflings.tasks i:before { + content: "\e137"; +} +.halflings.filter i:before { + content: "\e138"; +} +.halflings.briefcase i:before { + content: "\e139"; +} +.halflings.fullscreen i:before { + content: "\e140"; +} +.halflings.dashboard i:before { + content: "\e141"; +} +.halflings.paperclip i:before { + content: "\e142"; +} +.halflings.heart-empty i:before { + content: "\e143"; +} +.halflings.link i:before { + content: "\e144"; +} +.halflings.phone i:before { + content: "\e145"; +} +.halflings.pushpin i:before { + content: "\e146"; +} +.halflings.euro i:before { + content: "\20ac"; +} +.halflings.usd i:before { + content: "\e148"; +} +.halflings.gbp i:before { + content: "\e149"; +} +.halflings.sort i:before { + content: "\e150"; +} +.halflings.sort-by-alphabet i:before { + content: "\e151"; +} +.halflings.sort-by-alphabet-alt i:before { + content: "\e152"; +} +.halflings.sort-by-order i:before { + content: "\e153"; +} +.halflings.sort-by-order-alt i:before { + content: "\e154"; +} +.halflings.sort-by-attributes i:before { + content: "\e155"; +} +.halflings.sort-by-attributes-alt i:before { + content: "\e156"; +} +.halflings.unchecked i:before { + content: "\e157"; +} +.halflings.expand i:before { + content: "\e158"; +} +.halflings.collapse i:before { + content: "\e159"; +} +.halflings.collapse-top i:before { + content: "\e160"; +} +.halflings-icon { + display: inline-block; + width: 14px; + height: 14px; + line-height: 14px; + vertical-align: text-top; + background-image: url(../image/glyphicons_halflings.svg); + background-position: 0 0; + background-repeat: no-repeat; + vertical-align: top; + *display: inline; + *zoom: 1; + *margin-right: .3em; +} +.no-inlinesvg .halflings-icon { + background-image: url(../image/glyphicons_halflings.png); +} +.halflings-icon.white { + background-image: url(../image/glyphicons_halflings-white.svg); +} +.no-inlinesvg .halflings-icon.white { + background-image: url(../image/glyphicons_halflings-white.png); +} +.halflings-icon.glass { + background-position: 0 0; +} +.halflings-icon.music { + background-position: -24px 0; +} +.halflings-icon.search { + background-position: -48px 0; +} +.halflings-icon.envelope { + background-position: -72px 0; +} +.halflings-icon.heart { + background-position: -96px 0; +} +.halflings-icon.star { + background-position: -120px 0; +} +.halflings-icon.star-empty { + background-position: -144px 0; +} +.halflings-icon.user { + background-position: -168px 0; +} +.halflings-icon.film { + background-position: -192px 0; +} +.halflings-icon.th-large { + background-position: -216px 0; +} +.halflings-icon.th { + background-position: -240px 0; +} +.halflings-icon.th-list { + background-position: -264px 0; +} +.halflings-icon.ok { + background-position: -288px 0; +} +.halflings-icon.remove { + background-position: -312px 0; +} +.halflings-icon.zoom-in { + background-position: -336px 0; +} +.halflings-icon.zoom-out { + background-position: -360px 0; +} +.halflings-icon.off { + background-position: -384px 0; +} +.halflings-icon.signal { + background-position: -408px 0; +} +.halflings-icon.cog { + background-position: -432px 0; +} +.halflings-icon.trash { + background-position: -456px 0; +} +.halflings-icon.home { + background-position: 0 -24px; +} +.halflings-icon.file { + background-position: -24px -24px; +} +.halflings-icon.time { + background-position: -48px -24px; +} +.halflings-icon.road { + background-position: -72px -24px; +} +.halflings-icon.download-alt { + background-position: -96px -24px; +} +.halflings-icon.download { + background-position: -120px -24px; +} +.halflings-icon.upload { + background-position: -144px -24px; +} +.halflings-icon.inbox { + background-position: -168px -24px; +} +.halflings-icon.play-circle { + background-position: -192px -24px; +} +.halflings-icon.repeat { + background-position: -216px -24px; +} +.halflings-icon.refresh { + background-position: -240px -24px; +} +.halflings-icon.list-alt { + background-position: -264px -24px; +} +.halflings-icon.lock { + background-position: -287px -24px; +} +.halflings-icon.flag { + background-position: -312px -24px; +} +.halflings-icon.headphones { + background-position: -336px -24px; +} +.halflings-icon.volume-off { + background-position: -360px -24px; +} +.halflings-icon.volume-down { + background-position: -384px -24px; +} +.halflings-icon.volume-up { + background-position: -408px -24px; +} +.halflings-icon.qrcode { + background-position: -432px -24px; +} +.halflings-icon.barcode { + background-position: -456px -24px; +} +.halflings-icon.tag { + background-position: 0 -48px; +} +.halflings-icon.tags { + background-position: -25px -48px; +} +.halflings-icon.book { + background-position: -48px -48px; +} +.halflings-icon.bookmark { + background-position: -72px -48px; +} +.halflings-icon.print { + background-position: -96px -48px; +} +.halflings-icon.camera { + background-position: -120px -48px; +} +.halflings-icon.font { + background-position: -144px -48px; +} +.halflings-icon.bold { + background-position: -167px -48px; +} +.halflings-icon.italic { + background-position: -192px -48px; +} +.halflings-icon.text-height { + background-position: -216px -48px; +} +.halflings-icon.text-width { + background-position: -240px -48px; +} +.halflings-icon.align-left { + background-position: -264px -48px; +} +.halflings-icon.align-center { + background-position: -288px -48px; +} +.halflings-icon.align-right { + background-position: -312px -48px; +} +.halflings-icon.align-justify { + background-position: -336px -48px; +} +.halflings-icon.list { + background-position: -360px -48px; +} +.halflings-icon.indent-left { + background-position: -384px -48px; +} +.halflings-icon.indent-right { + background-position: -408px -48px; +} +.halflings-icon.facetime-video { + background-position: -432px -48px; +} +.halflings-icon.picture { + background-position: -456px -48px; +} +.halflings-icon.pencil { + background-position: 0 -72px; +} +.halflings-icon.map-marker { + background-position: -24px -72px; +} +.halflings-icon.adjust { + background-position: -48px -72px; +} +.halflings-icon.tint { + background-position: -72px -72px; +} +.halflings-icon.edit { + background-position: -96px -72px; +} +.halflings-icon.share { + background-position: -120px -72px; +} +.halflings-icon.check { + background-position: -144px -72px; +} +.halflings-icon.move { + background-position: -168px -72px; +} +.halflings-icon.step-backward { + background-position: -192px -72px; +} +.halflings-icon.fast-backward { + background-position: -216px -72px; +} +.halflings-icon.backward { + background-position: -240px -72px; +} +.halflings-icon.play { + background-position: -264px -72px; +} +.halflings-icon.pause { + background-position: -288px -72px; +} +.halflings-icon.stop { + background-position: -312px -72px; +} +.halflings-icon.forward { + background-position: -336px -72px; +} +.halflings-icon.fast-forward { + background-position: -360px -72px; +} +.halflings-icon.step-forward { + background-position: -384px -72px; +} +.halflings-icon.eject { + background-position: -408px -72px; +} +.halflings-icon.chevron-left { + background-position: -432px -72px; +} +.halflings-icon.chevron-right { + background-position: -456px -72px; +} +.halflings-icon.plus-sign { + background-position: 0 -96px; +} +.halflings-icon.minus-sign { + background-position: -24px -96px; +} +.halflings-icon.remove-sign { + background-position: -48px -96px; +} +.halflings-icon.ok-sign { + background-position: -72px -96px; +} +.halflings-icon.question-sign { + background-position: -96px -96px; +} +.halflings-icon.info-sign { + background-position: -120px -96px; +} +.halflings-icon.screenshot { + background-position: -144px -96px; +} +.halflings-icon.remove-circle { + background-position: -168px -96px; +} +.halflings-icon.ok-circle { + background-position: -192px -96px; +} +.halflings-icon.ban-circle { + background-position: -216px -96px; +} +.halflings-icon.arrow-left { + background-position: -240px -96px; +} +.halflings-icon.arrow-right { + background-position: -264px -96px; +} +.halflings-icon.arrow-up { + background-position: -289px -96px; +} +.halflings-icon.arrow-down { + background-position: -312px -96px; +} +.halflings-icon.share-alt { + background-position: -336px -96px; +} +.halflings-icon.resize-full { + background-position: -360px -96px; +} +.halflings-icon.resize-small { + background-position: -384px -96px; +} +.halflings-icon.plus { + background-position: -408px -96px; +} +.halflings-icon.minus { + background-position: -433px -96px; +} +.halflings-icon.asterisk { + background-position: -456px -96px; +} +.halflings-icon.exclamation-sign { + background-position: 0 -120px; +} +.halflings-icon.gift { + background-position: -24px -120px; +} +.halflings-icon.leaf { + background-position: -48px -120px; +} +.halflings-icon.fire { + background-position: -72px -120px; +} +.halflings-icon.eye-open { + background-position: -96px -120px; +} +.halflings-icon.eye-close { + background-position: -120px -120px; +} +.halflings-icon.warning-sign { + background-position: -144px -120px; +} +.halflings-icon.plane { + background-position: -168px -120px; +} +.halflings-icon.calendar { + background-position: -192px -120px; +} +.halflings-icon.random { + background-position: -216px -120px; +} +.halflings-icon.comments { + background-position: -240px -120px; +} +.halflings-icon.magnet { + background-position: -264px -120px; +} +.halflings-icon.chevron-up { + background-position: -288px -120px; +} +.halflings-icon.chevron-down { + background-position: -313px -119px; +} +.halflings-icon.retweet { + background-position: -336px -120px; +} +.halflings-icon.shopping-cart { + background-position: -360px -120px; +} +.halflings-icon.folder-close { + background-position: -384px -120px; +} +.halflings-icon.folder-open { + background-position: -408px -120px; +} +.halflings-icon.resize-vertical { + background-position: -432px -119px; +} +.halflings-icon.resize-horizontal { + background-position: -456px -118px; +} +.halflings-icon.hdd { + background-position: 0px -144px; +} +.halflings-icon.bullhorn { + background-position: -24px -144px; +} +.halflings-icon.bell { + background-position: -48px -144px; +} +.halflings-icon.certificate { + background-position: -72px -144px; +} +.halflings-icon.thumbs-up { + background-position: -96px -144px; +} +.halflings-icon.thumbs-down { + background-position: -120px -144px; +} +.halflings-icon.hand-right { + background-position: -144px -144px; +} +.halflings-icon.hand-left { + background-position: -168px -144px; +} +.halflings-icon.hand-top { + background-position: -192px -144px; +} +.halflings-icon.hand-down { + background-position: -216px -144px; +} +.halflings-icon.circle-arrow-right { + background-position: -240px -144px; +} +.halflings-icon.circle-arrow-left { + background-position: -264px -144px; +} +.halflings-icon.circle-arrow-top { + background-position: -288px -144px; +} +.halflings-icon.circle-arrow-down { + background-position: -313px -144px; +} +.halflings-icon.globe { + background-position: -336px -144px; +} +.halflings-icon.wrench { + background-position: -360px -144px; +} +.halflings-icon.tasks { + background-position: -384px -144px; +} +.halflings-icon.filter { + background-position: -408px -144px; +} +.halflings-icon.briefcase { + background-position: -432px -144px; +} +.halflings-icon.fullscreen { + background-position: -456px -144px; +} +.halflings-icon.dashboard { + background-position: 0px -168px; +} +.halflings-icon.paperclip { + background-position: -24px -168px; +} +.halflings-icon.heart-empty { + background-position: -48px -168px; +} +.halflings-icon.link { + background-position: -72px -168px; +} +.halflings-icon.phone { + background-position: -96px -168px; +} +.halflings-icon.pushpin { + background-position: -120px -168px; +} +.halflings-icon.euro { + background-position: -144px -168px; +} +.halflings-icon.usd { + background-position: -168px -168px; +} +.halflings-icon.gbp { + background-position: -192px -168px; +} +.halflings-icon.sort { + background-position: -216px -168px; +} +.halflings-icon.sort-by-alphabet { + background-position: -240px -168px; +} +.halflings-icon.sort-by-alphabet-alt { + background-position: -264px -168px; +} +.halflings-icon.sort-by-order { + background-position: -288px -168px; +} +.halflings-icon.sort-by-order-alt { + background-position: -313px -168px; +} +.halflings-icon.sort-by-attributes { + background-position: -336px -168px; +} +.halflings-icon.sort-by-attributes-alt { + background-position: -360px -168px; +} +.halflings-icon.unchecked { + background-position: -384px -168px; +} +.halflings-icon.expand { + background-position: -408px -168px; +} +.halflings-icon.collapse { + background-position: -432px -168px; +} +.halflings-icon.collapse-top { + background-position: -456px -168px; +} diff --git a/mall-master/src/main/resources/static/css/inbox.css b/mall-master/src/main/resources/static/css/inbox.css new file mode 100644 index 0000000..59aa76e --- /dev/null +++ b/mall-master/src/main/resources/static/css/inbox.css @@ -0,0 +1,521 @@ +/*** +Inbox Page +***/ +.inbox { + margin-bottom: 20px; +} + +.inbox .inbox { + margin-bottom: 0px; +} + +.inbox .tab-content { + overflow: inherit; +} + +.inbox .inbox-loading { + display: none; + font-size: 22px; + font-weight: 300; +} + +/*Imbox Menu*/ +.inbox .inbox-nav { + list-style: none; + margin-left: 0 !important; +} + +.inbox .inbox-nav li { + position: relative; +} + +.inbox .inbox-nav li a { + color: #4d82a3; + display: block; + font-size: 15px; + border-left: none; + text-align: left !important; + padding: 8px 14px; + margin-bottom: 1px; + background: #f4f9fd; +} + +.inbox .inbox-nav li.active a, +.inbox .inbox-nav li.active:hover a { + color: #fff; + border-left: none; + background: #169ef4 !important; + text-decoration: none; +} + +.inbox .inbox-nav li.active b { + top: 0; + right: -4px; + width: 8px; + height: 35px; + position: absolute; + display: inline-block; + background: url(../image/inbox-nav-arrow-blue.png) no-repeat; +} + +.inbox .inbox-nav li:hover a { + color: #4d82a3; + background: #eef4f7 !important; + text-decoration: none; +} + +.inbox .inbox-nav li.compose-btn a { + color: #fff; + text-shadow: none; + text-align: center; + margin-bottom: 18px; + background: #35aa47; +} + +.inbox .inbox-nav li.compose-btn i, +.inbox .inbox-nav li.compose-btn:hover i { + top: 1px; + color: #fff; + font-size: 15px; + position: relative; + background: none !important; +} + +.inbox .inbox-nav li.compose-btn a:hover { + background-color: #1d943b !important; +} + +/*Inbox Content*/ +.inbox .inbox-header { + overflow: hidden; +} + +.inbox .inbox-header h1 { + margin: 0; + color: #666; + margin-bottom: 10px; +} + +.inbox tr { + color: #777; + font-size: 13px; +} + +.inbox tr label { + display: inline-block; + margin-bottom: 0; +} + +.inbox tr.unread td{ + font-weight: 600; +} + +.inbox td i.icon-paper-clip { + top: 2px; + color: #d8e0e5; + font-size: 17px; + position: relative; +} + +.inbox tr i.icon-star, +.inbox tr i.icon-trash { + cursor: pointer; +} + +.inbox tr i.icon-star { + color: #eceef0; +} + +.inbox tr i.icon-star:hover { + color: #fd7b12; +} + +.inbox tr i.inbox-started { + color: #fd7b12; +} + +.inbox .table th, +.inbox .table td { + border: none; +} + +.inbox .table th { + background: #eef4f7; + border-bottom: solid 5px #fff; +} + +.inbox th.text-right { + text-align: right; +} + +.inbox th label.inbox-select-all { + color: #828f97; + font-size: 13px; + padding: 1px 4px 0; +} + +.inbox ul.inbox-nav { + margin-bottom: 0; +} + +.inbox ul.inbox-nav li { + padding: 0; +} + +.inbox ul.inbox-nav li span { + color: #828f97; + font-size: 12px; + margin-right: 10px; +} + +.inbox ul.inbox-nav i { + color: #fff; + padding: 1px 0; + font-size: 15px; + cursor: pointer; + background: #d0dde4 !important; +} + +.inbox ul.inbox-nav i:hover { + background: #169ef4 !important; +} + +.inbox td.text-right { + width: 100px; + text-align: right; +} + +.inbox td.inbox-small-cells { + width: 10px; +} + +.inbox .table-hover tbody tr:hover>td, +.inbox .table-hover tbody tr:hover>th, +.inbox .table-striped tbody>tr:nth-child(odd)>td, +.inbox .table-striped tbody>tr:nth-child(odd)>th { + background: #f8fbfd; + cursor: pointer; +} + +.inbox .table-hover tbody tr:hover>td, +.inbox .table-hover tbody tr:hover>th { + background: #eef4f7; +} + +/*Inbox Drafts*/ +.inbox .inbox-drafts { + padding: 8px 0; + text-align: center; + border-top: solid 1px #eee; + border-bottom: solid 1px #eee; +} + +/*Inbox View*/ +.inbox-view-header { + margin-bottom: 20px; +} + +.inbox-view-header h1 { + color: #666; + font-size: 22px; + line-height: 24px; + margin-bottom: 0 !important; +} + +.inbox-view-header h1 a { + top: -2px; + color: #fff; + cursor: pointer; + font-size: 13px; + padding: 2px 7px; + line-height: 16px; + position: relative; + background: #b0bcc4; + display: inline-block; +} + +.inbox-view-header h1 a:hover { + background: #aab5bc; + text-decoration: none; +} + +.inbox-view-header i.icon-print { + color: #94a4ab; + cursor: pointer; + font-size: 14px; + display: inline-block; + padding: 6px 8px !important; + background: #edf1f4 !important; +} + +.inbox-view-header i.icon-print:hover { + background: #e7ebef !important; +} + +.inbox-view-info { + color: #666; + padding: 5px 0; + margin-bottom: 10px; + border-top: solid 1px #eee; + border-bottom: solid 1px #eee; +} + +.inbox-view-info strong { + color: #666; + margin: 0 10px 0 5px; +} + +.inbox-view-info .inbox-info-btn { + text-align: right; +} + +.inbox-view-info .inbox-info-btn ul { + text-align: left; +} + +.inbox-view-info button { + top: 2px; + color: #94a4ab; + font-size: 13px; + margin-left: 4px; + padding: 3px 10px; + position: relative; + background: #edf1f4; +} + +.inbox-view-info button:hover { + color: #94a4ab; + background: #e7ebef; +} + +.inbox-view { + color: #666; + padding: 15px 0 0; +} + +.inbox-view a { + color: #169ce9; +} + +.inbox-attached { + line-height: 16px; +} + +.inbox-attached a { + margin: 0 2px; +} + +.inbox-attached img { + height: auto; + max-width: 250px; + margin-bottom: 5px; +} + +.inbox-attached span { + margin-right: 3px; +} + +.inbox-attached strong { + color: #555; + display: block; + font-size: 13px; +} + +.inbox-attached .margin-bottom-25 { + margin-bottom: 25px; +} + +.inbox-attached .margin-bottom-15 { + margin-bottom: 15px; +} + + +/*Inbox Compose*/ +.inbox-compose { + margin-top: 1px; + border: solid 1px #eee; +} + +.inbox-compose-btn { + padding: 8px 4px; + background: #f0f6fa; +} + +.inbox-compose-attachment { + padding: 8px 8px; +} + +.inbox-compose-attachment .btn { + padding: 4px 10px; +} + +.inbox-compose-btn button { + color: #fff; + font-size: 14px; + margin-left: 4px; + padding: 4px 10px; + background: #c0cfdd; +} + +.inbox-compose-btn button:hover { + color: #fff; + background: #4d90fe; +} + +.inbox-compose-btn button i { + margin-right: 3px; +} + +.inbox-compose .inbox-control-group { + margin-bottom: 0; + position: relative; + border-bottom: solid 1px #eee; +} + +.inbox-compose .controls { + margin-left: 85px; +} + +.inbox-compose .inbox-control-group > label { + width: 80px; + float: left; + color: #979797; + text-align: right; +} + +.inbox-compose .controls > input { + border: none !important; +} +.inbox-compose .controls-to { + padding-right: 55px; +} + +.inbox-compose .controls-cc { + padding-right: 15px; +} + +.inbox-compose .controls-bcc { + padding-right: 15px; +} + +.inbox-compose .tag { + font-size: 12px; + font-weight: 300 !important; + margin-top: 6px; + margin-left: 5px; + color: #333; + text-shadow: none !important; + background-color: #eee; + display: inline-block !important; + padding: 3px !important; +} + +.inbox-compose .tag .close { + margin-top: -2px; + display: inline-block !important; + float: none !important; + +} + +.inbox-compose .tags { + border: none !important; + font-size: 13px; + padding: 0px; + margin-bottom: 0px; + margin-right: 50px; + box-shadow: none !important; +} + +.inbox-compose .tags-hover { + border: 1px solid #ddd; + border: none !important; + box-shadow: none !important; + background: none !important; +} + +.inbox-compose .tags input[type="text"], +.inbox-compose .tags input[type="text"]:focus { + display: inline-block !important; + border: none !important; + font-size: 14px !important; + vertical-align: top; + outline: 0; + margin: 0; + padding: 0; + width: auto; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.inbox-compose .inbox-control-group a.close { + top: 13px; + right: 10px; + position: absolute; +} + +.inbox-compose .mail-to .inbox-cc-bcc { + display: inline-block; + top: 7px; + right: 10px; + color: #979797; + font-size: 14px; + cursor: pointer; + position: absolute; +} + +.inbox-compose .mail-to .inbox-bcc { + margin-left: 5px; +} + +.inbox-compose .mail-to inbox-cc:hover, +.inbox-compose .mail-to inbox-bcc:hover { + color: #777; +} + +.inbox-compose .wysihtml5 { + padding: 0px !important; + margin: 0px !important; + border: 0 !important; +} + +.inbox-compose .wysihtml5-sandbox { + padding: 0px !important; + margin: 0px !important; + display: block !important; + border: 0 !important; + margin-top: 5px; + width: 100% !important; + border-left: none; + border-right: none; + border-color: #eee; +} + +.inbox-compose .wysihtml5-toolbar { + border: 0; + border-bottom: 1px solid #eee; +} + +.inbox-compose .wysihtml5-toolbar > li { + height: 34px; + margin-right: 0; + margin-bottom: 0; +} + +.inbox-compose .wysihtml5-toolbar > li > a, +.inbox-compose .wysihtml5-toolbar > li > div > a { + background: #fff; +} + +.inbox-compose .wysihtml5-toolbar .dropdown.open .dropdown-toggle, +ul.wysihtml5-toolbar a.btn.wysihtml5-command-active { + background: #eee !important; +} + +@media (max-width: 480px) { + + .inbox-compose .inbox-control-group > label { + margin-top: 7px; + } + +} \ No newline at end of file diff --git a/mall-master/src/main/resources/static/css/invoice.css b/mall-master/src/main/resources/static/css/invoice.css new file mode 100644 index 0000000..63a467c --- /dev/null +++ b/mall-master/src/main/resources/static/css/invoice.css @@ -0,0 +1,39 @@ +/*** +Invoice page +***/ +.invoice table { + margin:30px 0 30px; +} + +.invoice .invoice-logo { + margin-bottom:20px; +} + +.invoice .invoice-logo p { + padding:5px 0; + font-size:26px; + line-height:28px; + text-align:right; +} + +.invoice .invoice-logo p span { + display:block; + font-size:14px; +} + +.invoice .invoice-logo-space { + margin-bottom:15px; +} + +.invoice .invoice-payment strong { + margin-right:5px; +} + +.invoice .invoice-block { + text-align:right; +} + +.invoice .invoice-block .amounts { + margin-top: 20px; + font-size: 14px; +} \ No newline at end of file diff --git a/mall-master/src/main/resources/static/css/jquery-ui-1.10.1.custom.min.css b/mall-master/src/main/resources/static/css/jquery-ui-1.10.1.custom.min.css new file mode 100644 index 0000000..e69de29 diff --git a/mall-master/src/main/resources/static/css/jquery.easy-pie-chart.css b/mall-master/src/main/resources/static/css/jquery.easy-pie-chart.css new file mode 100644 index 0000000..0b7be9e --- /dev/null +++ b/mall-master/src/main/resources/static/css/jquery.easy-pie-chart.css @@ -0,0 +1,10 @@ +.easyPieChart { + position: relative; + text-align: center; +} + +.easyPieChart canvas { + position: absolute; + top: 0; + left: 0; +} diff --git a/mall-master/src/main/resources/static/css/jquery.fancybox.css b/mall-master/src/main/resources/static/css/jquery.fancybox.css new file mode 100644 index 0000000..84bbb00 --- /dev/null +++ b/mall-master/src/main/resources/static/css/jquery.fancybox.css @@ -0,0 +1,249 @@ +/*! fancyBox v2.1.3 fancyapps.com | fancyapps.com/fancybox/#license */ +.fancybox-wrap, +.fancybox-skin, +.fancybox-outer, +.fancybox-inner, +.fancybox-image, +.fancybox-wrap iframe, +.fancybox-wrap object, +.fancybox-nav, +.fancybox-nav span, +.fancybox-tmp +{ + padding: 0; + margin: 0; + border: 0; + outline: none; + vertical-align: top; +} + +.fancybox-wrap { + position: absolute; + top: 0; + left: 0; + z-index: 8020; +} + +.fancybox-skin { + position: relative; + background: #f9f9f9; + color: #444; + text-shadow: none; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.fancybox-opened { + z-index: 8030; +} + +.fancybox-opened .fancybox-skin { + -webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); + -moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); + box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); +} + +.fancybox-outer, .fancybox-inner { + position: relative; +} + +.fancybox-inner { + overflow: hidden; +} + +.fancybox-type-iframe .fancybox-inner { + -webkit-overflow-scrolling: touch; +} + +.fancybox-error { + color: #444; + font: 14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif; + margin: 0; + padding: 15px; + white-space: nowrap; +} + +.fancybox-image, .fancybox-iframe { + display: block; + width: 100%; + height: 100%; +} + +.fancybox-image { + max-width: 100%; + max-height: 100%; +} + +#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span { + background-image: url('../image/fancybox_sprite.png'); +} + +#fancybox-loading { + position: fixed; + top: 50%; + left: 50%; + margin-top: -22px; + margin-left: -22px; + background-position: 0 -108px; + opacity: 0.8; + cursor: pointer; + z-index: 8060; +} + +#fancybox-loading div { + width: 44px; + height: 44px; + background: url('../image/fancybox_loading.gif') center center no-repeat; +} + +.fancybox-close { + position: absolute; + top: -18px; + right: -18px; + width: 36px; + height: 36px; + cursor: pointer; + z-index: 8040; +} + +.fancybox-nav { + position: absolute; + top: 0; + width: 40%; + height: 100%; + cursor: pointer; + text-decoration: none; + background: transparent url('../image/blank.gif'); /* helps IE */ + -webkit-tap-highlight-color: rgba(0,0,0,0); + z-index: 8040; +} + +.fancybox-prev { + left: 0; +} + +.fancybox-next { + right: 0; +} + +.fancybox-nav span { + position: absolute; + top: 50%; + width: 36px; + height: 34px; + margin-top: -18px; + cursor: pointer; + z-index: 8040; + visibility: hidden; +} + +.fancybox-prev span { + left: 10px; + background-position: 0 -36px; +} + +.fancybox-next span { + right: 10px; + background-position: 0 -72px; +} + +.fancybox-nav:hover span { + visibility: visible; +} + +.fancybox-tmp { + position: absolute; + top: -99999px; + left: -99999px; + visibility: hidden; + max-width: 99999px; + max-height: 99999px; + overflow: visible !important; +} + +/* Overlay helper */ + +.fancybox-lock { + overflow: hidden; +} + +.fancybox-overlay { + position: absolute; + top: 0; + left: 0; + overflow: hidden; + display: none; + z-index: 8010; + background: url('../image/fancybox_overlay.png'); +} + +.fancybox-overlay-fixed { + position: fixed; + bottom: 0; + right: 0; +} + +.fancybox-lock .fancybox-overlay { + overflow: auto; + overflow-y: scroll; +} + +/* Title helper */ + +.fancybox-title { + visibility: hidden; + font: normal 13px/20px "Helvetica Neue",Helvetica,Arial,sans-serif; + position: relative; + text-shadow: none; + z-index: 8050; +} + +.fancybox-opened .fancybox-title { + visibility: visible; +} + +.fancybox-title-float-wrap { + position: absolute; + bottom: 0; + right: 50%; + margin-bottom: -35px; + z-index: 8050; + text-align: center; +} + +.fancybox-title-float-wrap .child { + display: inline-block; + margin-right: -100%; + padding: 2px 20px; + background: transparent; /* Fallback for web browsers that doesn't support RGBa */ + background: rgba(0, 0, 0, 0.8); + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; + text-shadow: 0 1px 2px #222; + color: #FFF; + font-weight: bold; + line-height: 24px; + white-space: nowrap; +} + +.fancybox-title-outside-wrap { + position: relative; + margin-top: 10px; + color: #fff; +} + +.fancybox-title-inside-wrap { + padding-top: 10px; +} + +.fancybox-title-over-wrap { + position: absolute; + bottom: 0; + left: 0; + color: #fff; + padding: 10px; + background: #000; + background: rgba(0, 0, 0, .8); +} \ No newline at end of file diff --git a/mall-master/src/main/resources/static/css/jquery.fileupload-ui.css b/mall-master/src/main/resources/static/css/jquery.fileupload-ui.css new file mode 100644 index 0000000..f3c1fd2 --- /dev/null +++ b/mall-master/src/main/resources/static/css/jquery.fileupload-ui.css @@ -0,0 +1,84 @@ +@charset "UTF-8"; +/* + * jQuery File Upload UI Plugin CSS 6.10 + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2010, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +.fileinput-button { + position: relative; + overflow: hidden; + float: left; + margin-right: 4px; +} +.fileinput-button input { + position: absolute; + top: 0; + right: 0; + margin: 0; + opacity: 0; + filter: alpha(opacity=0); + transform: translate(-300px, 0) scale(4); + font-size: 23px; + direction: ltr; + cursor: pointer; +} +.fileupload-buttonbar .btn, +.fileupload-buttonbar .toggle { + margin-bottom: 5px; +} +.files .progress { + width: 200px; +} +.progress-animated .bar { + background: url(../image/progressbar.gif) !important; + filter: none; +} +.fileupload-loading { + position: absolute; + left: 50%; + width: 128px; + height: 128px; + background: url(../image/loading.gif) center no-repeat; + display: none; +} +.fileupload-processing .fileupload-loading { + display: block; +} + +/* Fix for IE 6: */ +* html .fileinput-button { + line-height: 24px; + margin: 1px -3px 0 0; +} + +/* Fix for IE 7: */ +* + html .fileinput-button { + padding: 2px 15px; + margin: 1px 0 0 0; +} + +@media (max-width: 767px) { + .files .btn span { + display: none; + } + .files .preview * { + width: 40px; + } + .files .name * { + width: 80px; + display: inline-block; + word-wrap: break-word; + } + .files .progress { + width: 20px; + } + .files .delete { + width: 60px; + } +} diff --git a/mall-master/src/main/resources/static/css/jquery.gritter.css b/mall-master/src/main/resources/static/css/jquery.gritter.css new file mode 100644 index 0000000..c4718f9 --- /dev/null +++ b/mall-master/src/main/resources/static/css/jquery.gritter.css @@ -0,0 +1,101 @@ +/* the norm */ +#gritter-notice-wrapper { + position:fixed; + top:20px; + right:20px; + width:301px; + z-index:9999; +} +#gritter-notice-wrapper.top-left { + left: 20px; + right: auto; +} +#gritter-notice-wrapper.bottom-right { + top: auto; + left: auto; + bottom: 20px; + right: 20px; +} +#gritter-notice-wrapper.bottom-left { + top: auto; + right: auto; + bottom: 20px; + left: 20px; +} +.gritter-item-wrapper { + position:relative; + margin:0 0 10px 0; + background:url('../image/ie-spacer.gif'); /* ie7/8 fix */ +} +.gritter-top { + background:url(../image/gritter.png) no-repeat left -30px; + height:10px; +} +.hover .gritter-top { + background-position:right -30px; +} +.gritter-bottom { + background:url(../image/gritter.png) no-repeat left bottom; + height:8px; + margin:0; +} +.hover .gritter-bottom { + background-position: bottom right; +} +.gritter-item { + display:block; + background:url(../image/gritter.png) no-repeat left -40px; + color:#eee; + padding:2px 11px 8px 11px; + font-size: 11px; + font-family:verdana; +} +.hover .gritter-item { + background-position:right -40px; +} +.gritter-item p { + padding:0; + margin:0; + word-wrap:break-word; +} +.gritter-close { + display:none; + position:absolute; + top:5px; + left:3px; + background:url(../image/gritter.png) no-repeat left top; + cursor:pointer; + width:30px; + height:30px; +} +.gritter-title { + font-size:14px; + font-weight:bold; + padding:0 0 7px 0; + display:block; + text-shadow:1px 1px 0 #000; /* Not supported by IE :( */ +} +.gritter-image { + width:48px; + height:48px; + float:left; +} +.gritter-with-image, +.gritter-without-image { + padding:0; +} +.gritter-with-image { + width:220px; + float:right; +} +/* for the light (white) version of the gritter notice */ +.gritter-light .gritter-item, +.gritter-light .gritter-bottom, +.gritter-light .gritter-top, +.gritter-light .gritter-close { + background-image: url(../image/gritter-light.png); + color: #222; +} +.gritter-light .gritter-title { + text-shadow: none; +} diff --git a/mall-master/src/main/resources/static/css/jquery.nestable.css b/mall-master/src/main/resources/static/css/jquery.nestable.css new file mode 100644 index 0000000..7eaf594 --- /dev/null +++ b/mall-master/src/main/resources/static/css/jquery.nestable.css @@ -0,0 +1,65 @@ +/** + * Nestable + */ +.dd-list { display: block; position: relative; margin: 0; padding: 0; list-style: none; } +.dd-list .dd-list { padding-left: 30px; } +.dd-collapsed .dd-list { display: none; } + +.dd-item, +.dd-empty, +.dd-placeholder { display: block; position: relative; margin: 0; padding: 0; min-height: 20px; font-size: 13px; line-height: 20px; } + +.dd-handle { display: block; height: 30px; margin: 5px 0; cursor: move; padding: 5px 10px; color: #333; text-decoration: none; font-weight: 400; border: 1px solid #ccc; + background: #fafafa; + -webkit-border-radius: 3px; + border-radius: 3px; + box-sizing: border-box; -moz-box-sizing: border-box; +} +.dd-handle:hover { color: #2ea8e5; background: #fff; } + +.dd-item > button { display: block; position: relative; cursor: pointer; float: left; width: 25px; height: 20px; margin: 7px 0; padding: 0; text-indent: 100%; white-space: nowrap; overflow: hidden; border: 0; background: transparent; font-size: 10px; line-height: 1; text-align: center; font-weight: bold; } +.dd-item > button:before { content: '\f067'; display: block; position: absolute; width: 100%; text-align: center; text-indent: 0; font-family: 'FontAwesome' } +.dd-item > button[data-action="collapse"]:before { content: '\f068'; } + +.dd-placeholder, +.dd-empty { + margin: 5px 0; padding: 0; min-height: 30px; background: #f2fbff; border: 1px dashed #b6bcbf; + box-sizing: border-box; -moz-box-sizing: border-box; } +.dd-empty { border: 1px dashed #bbb; min-height: 100px; background-color: #e5e5e5; + background-size: 60px 60px; + background-position: 0 0, 30px 30px; +} + +.dd-dragel { position: absolute; pointer-events: none; z-index: 9999; } +.dd-dragel > .dd-item .dd-handle { margin-top: 0; } +.dd-dragel .dd-handle { + -webkit-box-shadow: 2px 4px 6px 0 rgba(0,0,0,.1); + box-shadow: 2px 4px 6px 0 rgba(0,0,0,.1); +} + +.dd-hover > .dd-handle { background: #2ea8e5 !important; } + +/** + * Nestable Draggable Handles + */ + +.dd3-content { display: block; height: 30px; margin: 5px 0; padding: 5px 10px 5px 40px; color: #333; text-decoration: none; font-weight: 400; border: 1px solid #ccc; + background: #fafafa; + -webkit-border-radius: 3px; + border-radius: 3px; + box-sizing: border-box; -moz-box-sizing: border-box; +} +.dd3-content:hover { color: #2ea8e5; background: #fff; } + +.dd-dragel > .dd3-item > .dd3-content { margin: 0; } + +.dd3-item > button { margin-left: 30px; } + +.dd3-handle { position: absolute; margin: 0; left: 0; top: 0; cursor:move; width: 30px; text-indent: 100%; white-space: nowrap; overflow: hidden; + border: 1px solid #aaa; + background: #ddd; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.dd3-handle:before { content: '≡'; display: block; position: absolute; left: 0; top: 3px; width: 100%; text-align: center; text-indent: 0; color: #fff; font-size: 20px; font-weight: normal; } +.dd3-handle:hover { background: #ddd; } \ No newline at end of file diff --git a/mall-master/src/main/resources/static/css/jquery.tagsinput.css b/mall-master/src/main/resources/static/css/jquery.tagsinput.css new file mode 100644 index 0000000..c595e24 --- /dev/null +++ b/mall-master/src/main/resources/static/css/jquery.tagsinput.css @@ -0,0 +1,7 @@ +div.tagsinput { border:1px solid #CCC; background: #FFF; padding:5px; width:300px; height:100px; overflow-y: auto;} +div.tagsinput span.tag { border: 1px solid #a5d24a; -moz-border-radius:2px; -webkit-border-radius:2px; display: block; float: left; padding: 5px; text-decoration:none; background: #cde69c; color: #638421; margin-right: 5px; margin-bottom:5px;font-family: helvetica; font-size:13px;} +div.tagsinput span.tag a { font-weight: bold; color: #82ad2b; text-decoration:none; font-size: 11px; } +div.tagsinput input { width:80px; margin:0px; font-family: helvetica; font-size: 13px; border:1px solid transparent; padding:5px; background: transparent; color: #000; outline:0px; margin-right:5px; margin-bottom:5px; } +div.tagsinput div { display:block; float: left; } +.tags_clear { clear: both; width: 100%; height: 0px; } +.not_valid {background: #FBD8DB !important; color: #90111A !important;} diff --git a/mall-master/src/main/resources/static/css/jquery.ui.slider.css b/mall-master/src/main/resources/static/css/jquery.ui.slider.css new file mode 100644 index 0000000..e69de29 diff --git a/mall-master/src/main/resources/static/css/jqvmap.css b/mall-master/src/main/resources/static/css/jqvmap.css new file mode 100644 index 0000000..607c9be --- /dev/null +++ b/mall-master/src/main/resources/static/css/jqvmap.css @@ -0,0 +1,56 @@ +/*! + * jQVMap Version 1.0 + * + * http://jqvmap.com + * + * Copyright 2012, Peter Schmalfeldt + * Licensed under the MIT license. + * + * Fork Me @ https://github.com/manifestinteractive/jqvmap + */ +.jqvmap-label +{ + position: absolute; + display: none; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + background: #292929; + color: white; + font-family: sans-serif, Verdana; + font-size: smaller; + padding: 3px; +} +.jqvmap-zoomin, .jqvmap-zoomout +{ + position: absolute; + left: 10px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + background: #000000; + padding: 3px; + color: white; + width: 10px; + height: 10px; + cursor: pointer; + line-height: 10px; + text-align: center; +} +.jqvmap-zoomin +{ + top: 10px; +} +.jqvmap-zoomout +{ + top: 30px; +} +.jqvmap-region +{ + cursor: pointer; +} +.jqvmap-ajax_response +{ + width: 100%; + height: 500px; +} \ No newline at end of file diff --git a/mall-master/src/main/resources/static/css/light.css b/mall-master/src/main/resources/static/css/light.css new file mode 100644 index 0000000..89c3cc6 --- /dev/null +++ b/mall-master/src/main/resources/static/css/light.css @@ -0,0 +1,377 @@ +/*** +light theme +***/ + +/*** +Reset and overrides +***/ +body { + background-color: #fafafa !important; +} +/*** +Page header +***/ +.header .navbar-inner { + filter: none !important; + background-image: none !important; + background-color: #434343 !important; +} +.header .btn-navbar { + background-color: #434343 !important; +} +.header .nav .dropdown-toggle:hover, +.header .nav .dropdown.open .dropdown-toggle { + background-color: #4f4f4f !important; +} +.header .nav li.dropdown .dropdown-toggle i { + color: #808080 !important; +} +/*** +Page sidebar +***/ +.page-content { + border-left: 1px solid #e2e2e2 !important; + border-bottom: 1px solid #e2e2e2 !important; +} +.page-sidebar { + background-color: #fafafa; +} +.page-sidebar-fixed .page-content { + border: 0 !important; +} +.page-sidebar-fixed .page-sidebar { + border-right: 1px solid #e2e2e2 !important; +} + + +ul.page-sidebar-menu > li > a { + border-top: 1px solid #e2e2e2 !important; + color: #000 !important; + font-weight: 400; +} + +ul.page-sidebar-menu > li:first-child > a { + border-top: 1px solid transparent !important; +} + +ul.page-sidebar-menu > li:last-child > a { + border-bottom: 1px solid transparent !important; +} + +ul.page-sidebar-menu > li a i { + color: #bbb !important; +} +ul.page-sidebar-menu > li.open > a, +ul.page-sidebar-menu > li > a:hover, +ul.page-sidebar-menu > li:hover > a { + background: #eee; + border-top: 1px solid #e8e8e8; +} +ul.page-sidebar-menu > li.active > a .selected { + right:-7px; + top:0px; + width: 7px; + height: 39px; + background-image: url("../../img/sidebar-menu-arrow-green.png"); +} +ul.page-sidebar-menu > li.active i { + color: #fff !important; +} +.page-sidebar-fixed ul.page-sidebar-menu > li.active > a .selected { + display: none; +} +ul.page-sidebar-menu > li.active > a{ + background: #28b779 !important; + border-top-color: transparent !important; + color:#fff !important; +} +ul.page-sidebar-menu > li.active > a i { + color: #fff; +} +ul.page-sidebar-menu > li > a > .arrow:before, +ul.page-sidebar-menu > li > a > .arrow.open:before { + color: #ccc !important; +} +ul.page-sidebar-menu > li.active > a .arrow:before, +ul.page-sidebar-menu > li.active > a .arrow.open:before { + color: #fff !important; +} +ul.page-sidebar-menu > li > ul.sub-menu > li:first-child > a { + border-top: 0px !important; +} + +ul.page-sidebar-menu ul.sub-menu > li > a { + font-weight: 400 !important; + color: #333 !important; +} +ul.page-sidebar-menu ul.sub-menu > li.active > a, +ul.page-sidebar-menu ul.sub-menu > li > a:hover { + color: #818181 !important; + background: #efefef !important; +} + +ul.page-sidebar-menu > li > ul.sub-menu a .arrow:before, +ul.page-sidebar-menu > li > ul.sub-menu a .arrow.open:before { + color: #ccc !important; +} + +/* sub menu links effects */ +ul.page-sidebar-menu ul.sub-menu > li.active > a, +ul.page-sidebar-menu ul.sub-menu > li > a:hover, +ul.page-sidebar-menu ul.sub-menu > li.open > a { + color: #818181 !important; + background: #efefef !important; +} +ul.page-sidebar-menu ul.sub-menu > li > a i { + color: #bbb !important; +} + +/* sidebar search */ +.page-sidebar .sidebar-search input { + background-color: #fbfbfb !important; + color: #727272 !important; +} +.page-sidebar .sidebar-search input::-webkit-input-placeholder { + color: #aaa !important; +} +.page-sidebar .sidebar-search input:-moz-placeholder { + color: #aaa !important; +} +.page-sidebar .sidebar-search input:-ms-input-placeholder { + color: #aaa !important; +} +.page-sidebar .sidebar-search .input-box { + border-bottom: 1px solid #e2e2e2 !important; +} +.page-sidebar .sidebar-search .submit { + background-image: url(../../img/search-icon-white.png); +} + +/*** +Sidebar toggler +***/ +.sidebar-toggler { + background-image: url(../../img/sidebar-toggler-light.jpg); + background-color: #333; +} +/* search box bg color on expanded */ +.page-sidebar-closed .page-sidebar .sidebar-search.open { + background-color: #fbfbfb !important; +} +.page-sidebar-closed .page-sidebar .sidebar-search.open .remove { + background-image: url("../../img/sidebar-search-close-light.png"); +} +/* sub menu bg color on hover menu item */ +.page-sidebar-closed ul.page-sidebar-menu > li:hover .sub-menu { + background-color: #fbfbfb; +} +/*** +Horizontal Menu(new in v1.2) +***/ +/*search*/ +.header .hor-menu .hor-menu-search-form-toggler { + background: #363636 url(../../img/hor-menu-search.png) no-repeat center; +} + +.header .hor-menu .hor-menu-search-form-toggler.hide { + background: #363636 url(../../img/hor-menu-search-close.png) no-repeat center; +} + +.header .hor-menu .search-form { + background:#363636; +} + +.header .hor-menu .search-form .btn { + color: #999; + background: #3b3b3b url(../../img/search-icon.png) no-repeat center; +} + +.header .hor-menu .search-form form input { + color: #999; +} + +.header .hor-menu .search-form form input::-webkit-input-placeholder { /* WebKit browsers */ + color: #999; +} +.header .hor-menu .search-form form input:-moz-placeholder { /* Mozilla Firefox 4 to 18 */ + color: #999; +} +.header .hor-menu .search-form form input::-moz-placeholder { /* Mozilla Firefox 19+ */ + color: #999; +} +.header .hor-menu .search-form form input:-ms-input-placeholder { /* Internet Explorer 10+ */ + color: #999; +} +/*** +Footer +***/ +.footer .footer-inner { + color: #333333; +} +.footer .footer-tools .go-top { + background-color: #666666; +} +.footer .footer-tools .go-top:hover { + opacity: 0.7; + filter: alpha(opacity=70); +} +.footer .footer-tools .go-top i { + color: #999999; +} +/*** +Footer Layouts (new in v1.3) +***/ +/* begin:fixed footer */ +.page-footer-fixed .footer { + background-color: #434343; +} +.page-footer-fixed .footer .footer-inner { + color: #aaaaaa; +} +.page-footer-fixed .footer .footer-tools .go-top { + background-color: #666666; +} +.page-footer-fixed .footer .footer-tools .go-top i { + color: #aaaaaa; +} +/* end:fixed footer */ +/*** +Gritter Notifications +***/ +.gritter-top { + background: url(../../plugins/gritter/images/gritter.png) no-repeat left -30px !important; +} +.gritter-bottom { + background: url(../../plugins/gritter/images/gritter.png) no-repeat left bottom !important; +} +.gritter-item { + display: block; + background: url(../../plugins/gritter/images/gritter.png) no-repeat left -40px !important; +} +.gritter-close { + background: url(../../plugins/gritter/images/gritter.png) no-repeat left top !important; +} +.gritter-title { + text-shadow: none !important; + /* Not supported by IE :( */ + +} +/* for the light (white) version of the gritter notice */ +.gritter-light .gritter-item, +.gritter-light .gritter-bottom, +.gritter-light .gritter-top, +.gritter-light .gritter-close { + background-image: url(../../plugins/gritter/images/gritter-light.png) !important; +} +.gritter-item-wrapper a { + color: #18a5ed; +} +.gritter-item-wrapper a:hover { + color: #0b6694; +} +/* begin: boxed page */ +@media (min-width: 980px) { + .page-boxed { + background-color: #E8E8E8 !important; + } + .page-boxed .page-container { + background-color: #fafafa; + border-left: 1px solid #e2e2e2; + border-bottom: 1px solid #e2e2e2; + } + .page-boxed.page-sidebar-fixed .page-container { + border-left: 0; + border-bottom: 0; + } + .page-boxed.page-sidebar-fixed .page-sidebar { + border-left: 1px solid #e2e2e2; + } + .page-boxed.page-sidebar-fixed.page-footer-fixed .footer { + background-color: #E8E8E8 !important; + } +} +/* end: boxed page */ +/*** +Landscape phone to portrait tablet +***/ +@media (max-width: 979px) { + /*** + page sidebar + ***/ + .page-sidebar { + background-color: #f1f1f1 !important; + border-right: none !important; + } + .page-sidebar-fixed .page-sidebar { + border-right: none !important; + } + .page-content { + border-left: none !important; + } + ul.page-sidebar-menu > li > a { + border-top: 1px solid #ccc !important; + } + ul.page-sidebar-menu > li:last-child > a { + border-bottom: 0 !important; + } + + ul.page-sidebar-menu > li.open > a, + ul.page-sidebar-menu > li > a:hover { + color: #666666 !important; + background-color: #dddddd !important; + } + ul.page-sidebar-menu > li.open > a { + border-bottom-color: transparent !important; + } + ul.page-sidebar-menu > li.active > a { + color: #ffffff !important; + background-color: #28b779 !important; + } + + ul.page-sidebar-menu ul.sub-menu > li > a { + color: #111 !important; + } + + ul.page-sidebar-menu ul.sub-menu > li.open > a, + ul.page-sidebar-menu ul.sub-menu > li.active > a, + ul.page-sidebar-menu ul.sub-menu > li > a:hover { + color: #666666 !important; + background: #dddddd !important; + } + + .page-sidebar .sidebar-search input { + background-color: #f1f1f1 !important; + color: #ccc !important; + } + + .page-sidebar .sidebar-search .input-box { + border-bottom-color: #ccc !important; + } + .page-sidebar .sidebar-search input::-webkit-input-placeholder { + color: #ccc !important; + } + .page-sidebar .sidebar-search input:-moz-placeholder { + color: #ccc !important; + } + .page-sidebar .sidebar-search input:-ms-input-placeholder { + color: #ccc !important; + } + + /*** + page footer + ***/ + + .footer { + background-color: #434343; + } + + .footer .footer-inner { + color: #cccccc; + } + .footer .footer-tools .go-top { + background-color: #666666; + } + .footer .footer-tools .go-top i { + color: #999999; + } +} diff --git a/mall-master/src/main/resources/static/css/lock.css b/mall-master/src/main/resources/static/css/lock.css new file mode 100644 index 0000000..815fa10 --- /dev/null +++ b/mall-master/src/main/resources/static/css/lock.css @@ -0,0 +1,125 @@ +/*** +Lock Page +***/ +body { + background-color: #ddd; + padding: 0; + margin: 0; +} + +.page-lock { + top: 50%; + left: 50%; + position: absolute; + margin-top: -140px; + margin-left: -260px; +} + +.page-lock .page-logo { + margin-bottom: 15px; +} + +.page-lock .page-body { + width: 500px; + padding: 10px; + background: url(../image/bg-input.png) repeat; +} + +.page-lock .page-body:after, +.page-lock .page-body:before { + display: table; + content: ""; + line-height: 0; +} + +.page-lock .page-body:after { + clear: both; +} + +.page-lock .page-footer { + margin-top: 10px; + text-align: left !important; + font-size: 12px; + color: #333; +} + +.page-lock img.page-lock-img { + float: left; + width: 200px; + height: auto; +} + +.page-lock .page-lock-info { + float: right; + width: 280px; +} + +.page-lock .page-lock-info h1 { + margin-top: -5px; + font-weight: 300; + color: #fff; + font-size: 28px; + line-height: 32px; +} + +.page-lock .page-lock-info span { + color: #eee; + display: block; + font-size: 14px; + margin-top: -5px; + margin-bottom: 10px; +} + +.page-lock .page-lock-info span em { + color: #333; + font-size: 14px; + font-style: normal; +} + +.page-lock .page-lock-info form { + margin: 28px 0; +} + +.page-lock .page-lock-info input { + background: #fff; +} + +.page-lock .relogin { + margin-top: 10px; +} + +.page-lock .relogin a { + color: #e1e1e1; +} + +/*Responsive*/ +@media (max-width: 480px) { + .page-lock { + top:0px; + width: 260px; + margin-top: 20px; + margin-left: -140px; + } + + .page-lock .page-body { + padding: 10px; + text-align: center; + width: 260px; + } + + .page-lock img.page-lock-img { + float: none !important; + display: block; + margin: 0 auto; + text-align: center; + margin-bottom: 15px; + } + .page-lock .page-lock-info { + float: none !important; + width: 260px; + margin: 0 auto; + } + .page-lock .page-lock-info1 form { + margin-bottom: 0; + } +} \ No newline at end of file diff --git a/mall-master/src/main/resources/static/css/login-soft.css b/mall-master/src/main/resources/static/css/login-soft.css new file mode 100644 index 0000000..c8daa74 --- /dev/null +++ b/mall-master/src/main/resources/static/css/login-soft.css @@ -0,0 +1,153 @@ +/*** +Login page +***/ + +/* logo page */ +.login { + background-color: #666 !important; +} + +.login .logo { + width: 247px; + margin: 0 auto; + margin-top:60px; + padding: 15px; + text-align: center; +} + + +.login .content { + background: url(../image/bg-input.png) repeat; + width: 291px; + margin: 0 auto; + margin-bottom: 0px; + padding: 30px; + padding-top: 20px; + padding-bottom: 15px; +} + +.login .content h3 { + color: #eee; +} +.login .content h4 { + color: #eee; +} + +.login .content p, +.login .content label { + color: #fff; +} + +.login .content .login-form, +.login .content .forget-form { + padding: 0px; + margin: 0px; +} + +.login .content .m-wrap { + width: 249px; + background-color: #fff; +} + + +.login .content .control-group { + margin-bottom: 20px !important; +} + +.login .content .input-icon .m-wrap { + margin: 0px !important; +} + +.login .content .forget-form { + display: none; +} + +.login .content .register-form { + display: none; +} + +.login .content .form-title { + font-weight: 300; + margin-bottom: 25px; +} + +.login .content .form-actions { + background-color: transparent; + clear: both; + border: 0px; + border-bottom1: 1px solid #999; + padding: 0px 30px 25px 30px; + margin-left: -30px; + margin-right: -30px; +} + +.login .content .forget-form .form-actions { + border: 0; + margin-bottom: 0; + padding-bottom: 20px; +} + +.login .content .register-form .form-actions { + border: 0; + margin-bottom: 0; + padding-bottom: 0px; +} + +.login .content .form-actions .checkbox { + margin-top: 8px; + display: inline-block; +} + +.login .content .form-actions .btn { + margin-top: 1px; +} + +.login .content .forget-password { + margin-top: 25px; +} + +.login .content .create-account { + border-top: 1px dotted #eee; + padding-top: 10px; + margin-top: 15px; +} + +.login .content .create-account a { + display: inline-block; + margin-top: 5px; +} + +.login .copyright { + text-align: center; + width: 270px; + margin: 0 auto; + padding: 10px 10px 0 10px; + color: #eee; + font-size: 12px; +} + +@media (max-width: 480px) { + /*** + Login page + ***/ + .login .logo { + margin-top:10px; + } + + .login .content { + padding: 30px; + width: 222px; + } + + .login .content h3 { + font-size: 22px; + } + + .login .content .m-wrap { + width: 180px; + } + + .login .checkbox { + font-size: 13px; + } +} \ No newline at end of file diff --git a/mall-master/src/main/resources/static/css/login.css b/mall-master/src/main/resources/static/css/login.css new file mode 100644 index 0000000..e8e7e69 --- /dev/null +++ b/mall-master/src/main/resources/static/css/login.css @@ -0,0 +1,154 @@ +/*** +Login page +***/ + +/* logo page */ +.login { + background-color: #444 !important; +} + +.login .logo { + width: 247px; + margin: 0 auto; + margin-top:60px; + padding: 15px; + text-align: center; +} + +.login .content { + background-color:#fff; + width: 291px; + margin: 0 auto; + margin-bottom: 0px; + padding: 30px; + padding-top: 20px; + padding-bottom: 15px; +} + +.login .content h3 { + color: #000; +} +.login .content h4 { + color: #555; +} + +.login .content p { + color: #222; +} + +.login .content .login-form, +.login .content .forget-form { + padding: 0px; + margin: 0px; +} + +.login .content .m-wrap { + width: 249px; + border-left: 0 !important; +} + +.login .content .input-icon { + border-left: 2px solid #35aa47 !important; +} + +.login .content .control-group { + margin-bottom: 20px !important; +} + +.login .content .input-icon .m-wrap { + margin: 0px !important; +} + +.login .content .forget-form { + display: none; +} + +.login .content .register-form { + display: none; +} + +.login .content .form-title { + font-weight: 300; + margin-bottom: 25px; +} + +.login .content .form-actions { + background-color: #fff; + clear: both; + border: 0px; + border-bottom: 1px solid #eee; + padding: 0px 30px 25px 30px; + margin-left: -30px; + margin-right: -30px; +} + +.login .content .forget-form .form-actions { + border: 0; + margin-bottom: 0; + padding-bottom: 20px; +} + +.login .content .register-form .form-actions { + border: 0; + margin-bottom: 0; + padding-bottom: 0px; +} + +.login .content .form-actions .checkbox { + margin-top: 8px; + display: inline-block; +} + +.login .content .form-actions .btn { + margin-top: 1px; +} + +.login .content .forget-password { + margin-top: 25px; +} + +.login .content .create-account { + border-top: 1px dotted #eee; + padding-top: 10px; + margin-top: 15px; +} + +.login .content .create-account a { + display: inline-block; + margin-top: 5px; +} + +.login .copyright { + text-align: center; + width: 250px; + margin: 0 auto; + padding: 10px 10px 0 10px; + color: #999; + font-size: 11px; +} + +@media (max-width: 480px) { + /*** + Login page + ***/ + .login .logo { + margin-top:10px; + } + + .login .content { + padding: 30px; + width: 222px; + } + + .login .content h3 { + font-size: 22px; + } + + .login .content .m-wrap { + width: 180px; + } + + .login .checkbox { + font-size: 13px; + } +} \ No newline at end of file diff --git a/mall-master/src/main/resources/static/css/multi-select-metro.css b/mall-master/src/main/resources/static/css/multi-select-metro.css new file mode 100644 index 0000000..31d5171 --- /dev/null +++ b/mall-master/src/main/resources/static/css/multi-select-metro.css @@ -0,0 +1,89 @@ +.ms-container{ + background: transparent url('../image/bg-input.png') no-repeat 170px 80px; + display: inline-block; +} + +.ms-container:after{ + content: "."; display: block; height: 0; line-height: 0; font-size: 0; clear: both; min-height: 0; visibility: hidden; +} + +.ms-container .ms-selectable, .ms-container .ms-selection{ + + background: #fff; + color: #555555; + float: left; +} + +.ms-container .ms-list{ + -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; + -moz-transition: border linear 0.2s, box-shadow linear 0.2s; + -ms-transition: border linear 0.2s, box-shadow linear 0.2s; + -o-transition: border linear 0.2s, box-shadow linear 0.2s; + transition: border linear 0.2s, box-shadow linear 0.2s; + border: 1px solid #ccc; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + + +.ms-selected{ + display:none; +} +.ms-container .ms-selectable{ + margin-right: 40px; +} + +.ms-container .ms-list.ms-focus{ + border-color: rgba(82, 168, 236, 0.8); + outline: 0; + outline: thin dotted \9; +} + +.ms-container ul{ + margin: 0; + list-style-type: none; + padding: 0; +} + +.ms-container .ms-optgroup-container{ + width: 100%; +} + +.ms-container ul.ms-list{ + width: 160px; + height: 200px; + padding: 0; + overflow-y: auto; +} + +.ms-container .ms-optgroup-label{ + margin: 0; + padding: 5px 0px 0px 5px; + cursor: pointer; + font-size: 14px; + color: #999; +} + +.ms-container .ms-selectable li.ms-elem-selectable, +.ms-container .ms-selection li.ms-elem-selection{ + border-bottom: 1px #eee solid; + padding: 2px 10px; + color: #555; + font-size: 13px; +} + +.ms-container .ms-selectable li.ms-hover, +.ms-container .ms-selection li.ms-hover{ + cursor: pointer; + color: #fff; + text-decoration: none; + background-color: #4b8df8; +} + +.ms-container .ms-selectable li.disabled, +.ms-container .ms-selection li.disabled{ + background-color: #eee; + color: #aaa; + cursor: text; +} diff --git a/mall-master/src/main/resources/static/css/news.css b/mall-master/src/main/resources/static/css/news.css new file mode 100644 index 0000000..4304f5c --- /dev/null +++ b/mall-master/src/main/resources/static/css/news.css @@ -0,0 +1,142 @@ +/*** +News Page +***/ + +.news-page { + padding-bottom: 20px; +} + +.news-page h1 { + margin-bottom: 20px; +} + +.news-page h2 { + font-size: 38.5px; + margin-bottom: 20px; +} + +.news-page .top-news { + margin-top: 0; +} + +/*News Feeds*/ +.news-blocks { + padding: 10px; + margin-bottom: 10px; + background: #faf6ea; + border-top: solid 2px #faf6ea; +} + +.news-blocks:hover { + background: #fff; + border-color: #78cff8; + transition: all 0.4s ease-in-out 0s; + -moz-transition: all 0.4s ease-in-out 0s; + -webkit-transition: all 0.4s ease-in-out 0s; +} + +.news-blocks h3 { + margin: 0 0 5px 0; + font-size: 23px; + line-height: 32px; +} + +.news-blocks h3 a { + color: #000; +} + +.news-blocks h3 a:hover { + color: #78cff8; + text-decoration: none; +} + +.news-blocks p { + overflow: hidden; +} + +.news-blocks a.news-block-btn { + color: #000; + display: block; + font-size: 14px; + background: none; + padding: 5px 10px 0; + text-align: right; + text-decoration: none; +} + +.news-blocks a.news-block-btn i { + margin-left: 3px; +} + + +.news-blocks a.news-block-btn:hover { + text-decoration: none; +} + +.news-blocks img.news-block-img { + width: 70px; + height: 70px; + margin: 5px 10px 0 0; +} + +.news-blocks .news-block-tags { + margin-bottom: 8px; +} + +.news-blocks .news-block-tags strong { + margin-right: 10px; + font-weight: 400; +} + +.news-blocks .news-block-tags em { + font-style: normal; +} + +/*News Item Page*/ +.news-item-page { + padding: 10px 0; +} + +.blog-tag-data ul { + margin-bottom: 5px; +} + +.blog-tag-data li { + padding: 0; +} + +.blog-tag-data li i { + color: #78cff8; +} + +.blog-tag-data li a { + padding: 0; + color: #555; + margin-right: 8px; +} + +.blog-tag-data { + margin-bottom: 10px; +} + +.blog-tag-data img { + margin-bottom: 12px; +} + +.blog-tag-data ul.blog-tags a { + background: #eee; + padding: 1px 4px; + margin: 0 4px 4px 0; + display: inline-block; +} + +.blog-tag-data ul.blog-tags a:hover { + background: #ddd; + text-decoration: none; +} + +.blog-tag-data .blog-tag-data-inner { + text-align: right; +} + + diff --git a/mall-master/src/main/resources/static/css/pagination.css b/mall-master/src/main/resources/static/css/pagination.css new file mode 100644 index 0000000..2a08c80 --- /dev/null +++ b/mall-master/src/main/resources/static/css/pagination.css @@ -0,0 +1,26 @@ +@charset "utf-8"; +.pagination a { + text-decoration: none; + border: 1px solid #AAE; + color: #15B; +} + +.pagination a, .pagination span { + display: inline-block; + padding: 0.1em 0.4em; + margin-right: 5px; + margin-bottom: 5px; +} + +.pagination .current { + background: #26B; + color: #fff; + border: 1px solid #AAE; +} + +.pagination .current.prev, .pagination .current.next{ + color:#999; + border-color:#999; + background:#fff; +} + diff --git a/mall-master/src/main/resources/static/css/pricing-tables.css b/mall-master/src/main/resources/static/css/pricing-tables.css new file mode 100644 index 0000000..b1c3572 --- /dev/null +++ b/mall-master/src/main/resources/static/css/pricing-tables.css @@ -0,0 +1,377 @@ +/*** +Pricing table +***/ + +.pricing-table { + border: 3px solid transparent; + padding: 10px; + background-color: #f1f2f2; +} + +.pricing-table:hover { + border-color: #4b8df8; +} + +.pricing-table h3 { + margin-left: -2px; + padding-left: 0px; + font-size: 26px; + margin-bottom: 5px; + line-height: 26px; + color: #111; + margin-top: 0px; +} + +.pricing-table .desc { + margin-bottom: 10px; + padding-bottom: 15px; + color: #666; + border-bottom: 1px solid #ddd; +} + +.pricing-table ul { + margin: 0px; + margin-bottom: 15px; + padding: 0px; + list-style: none; +} + +.pricing-table ul li { + padding: 6px 0px; + padding-left: 11px; + font-size: 13px; + line-height: 13px; + color: #666; +} + +.pricing-table ul li i { + position: absolute; + margin-right: 0px; + margin-top: -2px; + margin-left: -17px; + color: #35aa47; + font-size: 16px; +} + +.pricing-table .rate { + border-top: 1px solid #ddd; + margin-bottom: 10px; + padding-top: 15px; + clear: both; +} + +.pricing-table.selected .rate { + border-top-color: #fff; +} + +.pricing-table .rate:before, +.pricing-table .rate:after { + display: table; + line-height: 0; + content: ""; +} +.pricing-table .rate:after { + clear: both; +} + +.pricing-table .rate .price { + display: inline-block; + float: left; + clear: both; +} + +.pricing-table .rate .btn { + margin-top: 3px; + float: right; + display: block; +} + +.pricing-table .rate .price .currency { + padding-top: 4px; + float: left; + width: 50px; + text-align: right; + font-size: 13px; + line-height: 14px; + font-weight: 300; + margin-right: 2px; +} + +.pricing-table .rate .price .amount { + padding-top: 4px; + letter-spacing: -3px; + float: left; + text-align: right; + font-size: 36px; + line-height: 30px; + font-weight: 300; +} + +.pricing-table.selected { + background-color: #4b8df8; +} + +.pricing-table.selected:hover { + border-color: #ddd; +} + +.pricing-table.selected .desc { + border-bottom-color: #fff; +} + +.pricing-table.selected h3, +.pricing-table.selected .desc, +.pricing-table.selected ul li, +.pricing-table.selected ul li i, +.pricing-table.selected .rate { + color: #fff; +} + +/*** +Pricing table(Alternative) +***/ + +.pricing-table2 { + border: 3px solid transparent; + padding: 10px; + background-color: #f1f2f2; +} + +.pricing-table2:hover { + border-color: #4b8df8; +} + +.pricing-table2 h3 { + margin-left: -2px; + padding-left: 0px; + font-size: 26px; + margin-bottom: 5px; + line-height: 26px; + margin-top: 0px; + color: #111; +} + +.pricing-table2 .desc { + margin-bottom: 10px; + padding-bottom: 0px; + color: #666; +} + +.pricing-table2 ul { + margin: 0px; + margin-bottom: 0px; + padding: 0px; + list-style: none; +} + +.pricing-table2 ul li { + padding: 6px 0px; + padding-left: 11px; + font-size: 13px; + line-height: 13px; + color: #666; +} + +.pricing-table2 ul li i { + position: absolute; + margin-right: 0px; + margin-top: -2px; + margin-left: -17px; + color: #35aa47; + font-size: 16px; +} + +.pricing-table2 .rate { + margin-bottom: 10px; + padding: 15px 15px; + margin-left: -15px; + margin-right: -15px; + background-color: #35aa47; + color: #fff; + clear: both; +} + +.pricing-table2.selected .rate { + border-top-color: #fff; +} + +.pricing-table2 .rate:before, +.pricing-table2 .rate:after { + display: table; + line-height: 0; + content: ""; +} +.pricing-table2 .rate:after { + clear: both; +} + +.pricing-table2 .rate .price { + display: inline-block; + float: left; + clear: both; +} + +.pricing-table2 .rate .btn { + margin-top: 3px; + float: right; + display: block; +} + +.pricing-table2 .rate .price .currency { + padding-top: 4px; + float: left; + width: 50px; + text-align: right; + font-size: 13px; + line-height: 14px; + font-weight: 300; +} + +.pricing-table2 .rate .price .amount { + padding-top: 4px; + float: left; + text-align: right; + font-size: 36px; + line-height: 30px; + font-weight: 300; +} + +.pricing-table2.selected { + background-color: #4b8df8; +} + +.pricing-table2.selected .rate { + background-color: #ffb848; +} + +.pricing-table2.selected:hover { + border-color: #ddd; +} + +.pricing-table2.selected .desc { + border-bottom-color: #fff; +} + +.pricing-table2.selected h3, +.pricing-table2.selected .desc, +.pricing-table2.selected ul li, +.pricing-table2.selected ul li i, +.pricing-table2.selected .rate .currency, +.pricing-table2.selected .rate .amount { + color: #fff !important; +} + + +/*** +Pricing table(Alternative 2) +***/ +.pricing { + position:relative; + margin-bottom:15px; + border:3px solid #eee; +} +.pricing-active { + border:3px solid #35aa47; +} +.pricing:hover { + border:3px solid #35aa47; +} +.pricing:hover h4 { + color:#35aa47; +} +.pricing-head { + text-align:center; +} +.pricing-head h3, +.pricing-head h4 { + margin:0; + line-height:normal; +} +.pricing-head h3 span, +.pricing-head h4 span { + display:block; + margin-top:5px; + font-size:14px; + font-style:italic; +} +.pricing-head h3 { + font-weight: 300; + color:#fafafa; + padding:12px 0; + font-size:27px; + background:#35aa47; + border-bottom:solid 1px #41b91c; +} +.pricing-head h4 { + color:#bac39f; + padding:5px 0; + font-size:54px; + font-weight:300; + background:#fbfef2; + border-bottom:solid 1px #f5f9e7; +} +.pricing-head-active h4 { + color:#35aa47; +} +.pricing-head h4 i { + top:-8px; + font-size:28px; + font-style:normal; + position:relative; +} +.pricing-head h4 span { + top:-10px; + font-size:14px; + font-style:normal; + position:relative; +} + +/*Pricing Content*/ +.pricing-content li { + color:#888; + font-size:12px; + padding:7px 15px; + border-bottom:solid 1px #f5f9e7; +} +.pricing-content li i { + top:2px; + color:#35aa47; + font-size:16px; + margin-right:5px; + position:relative; +} + +/*Pricing Footer*/ +.pricing-footer { + color:#777; + font-size:11px; + line-height:17px; + text-align:center; + padding:0 20px 19px; +} + +/*Priceing Active*/ +.price-active, +.pricing:hover { + z-index:9; +} +.price-active h4 { + color:#35aa47; +} + +.no-space-pricing .pricing:hover { + -webkit-transition:box-shadow 0.3s ease-in-out; + -moz-transition:box-shadow 0.3s ease-in-out; + -o-transition:box-shadow 0.3s ease-in-out; + transition:box-shadow 0.2s ease-in-out; +} +.no-space-pricing .price-active .pricing-head h4, +.no-space-pricing .pricing:hover .pricing-head h4 { + color:#35aa47; + padding:15px 0; + font-size:80px; + -webkit-transition:color 0.5s ease-in-out; + -moz-transition:color 0.5s ease-in-out; + -o-transition:color 0.5s ease-in-out; + transition:color 0.5s ease-in-out; +} diff --git a/mall-master/src/main/resources/static/css/print.css b/mall-master/src/main/resources/static/css/print.css new file mode 100644 index 0000000..2c6934c --- /dev/null +++ b/mall-master/src/main/resources/static/css/print.css @@ -0,0 +1,35 @@ +/*** +Import fonts +***/ +.header { + display: none; +} + +.page-sidebar { + display: none; +} + +.color-panel { + display: none; +} + +.hidden-print { + display: none; +} + +.footer { + display: none; +} + +.no-page-break { + page-break-after: avoid; +} + +.page-container { + margin: 0px; + padding: 0px; +} + +.page-content { + min-height: auto !important; +} \ No newline at end of file diff --git a/mall-master/src/main/resources/static/css/profile.css b/mall-master/src/main/resources/static/css/profile.css new file mode 100644 index 0000000..12f6569 --- /dev/null +++ b/mall-master/src/main/resources/static/css/profile.css @@ -0,0 +1,335 @@ +/*** +Profile Page +***/ +.profile { + position:relative; +} + +.profile p { + color:#636363; + font-size:13px; +} + +.profile p a { + color:#169ef4; +} + +.profile label { + margin-top:10px; +} + +.profile label:first-child { + margin-top:0; +} + +/*profile info*/ +.profile-classic .span2 { + position:relative; +} + +.profile-classic .span2 a { + top:0; + right:0; + margin:0; + color:#fff; + opacity:0.6; + padding:0 9px; + font-size:11px; + background:#000; + position:absolute; + filter:alpha(opacity=60); /*for ie*/ +} +.profile-classic .span2 img { + margin-bottom:15px; +} + +.profile-classic li { + padding:8px 0; + font-size:13px; + border-top:solid 1px #f5f5f5; +} + +.profile-classic li:first-child { + border-top:none; +} + +.profile-classic li span { + color:#666; + font-size:13px; + margin-right:7px; +} + +/*profile tabs*/ +.profile .tabbable-custom-profile .nav-tabs > li > a { + padding:6px 12px; +} + + +/*profile navigation*/ +.profile ul.profile-nav { + margin-bottom:30px; +} + +.profile ul.profile-nav li { + position:relative; +} + +.profile ul.profile-nav li a { + color:#557386; + display:block; + font-size:14px; + padding:8px 10px; + margin-bottom:1px; + background:#f0f6fa; + border-left:solid 2px #c4d5df; +} + +.profile ul.profile-nav li a:hover { + color:#169ef4; + background:#ecf5fb; + text-decoration:none; + border-left:solid 2px #169ef4; +} + +.profile ul.profile-nav li a.profile-edit { + top:0; + right:0; + margin:0; + color:#fff; + opacity:0.6; + border:none; + padding:0 9px; + font-size:11px; + background:#000; + position:absolute; + filter:alpha(opacity=60); /*for ie*/ +} + +.profile ul.profile-nav li a.profile-edit:hover { + text-decoration:underline; +} + +.profile ul.profile-nav a span { + top:0; + right:0; + color:#fff; + font-size:20px; + padding:8px 13px; + position:absolute; + background:#169ef4; +} + +.profile ul.profile-nav a:hover span { + background:#0b94ea; +} + +/*profile information*/ +.profile-info h1 { + color:#383839; + font-size:24px; + font-weight:400; + margin:-11px 0 10px 0; +} + +.profile-info ul { + margin-bottom:15px; +} + +.profile-info li { + color:#6b6b6b; + font-size:13px; + margin-right:15px; + margin-bottom:5px; + padding:0 !important; +} + +.profile-info li i { + color:#b5c1c9; + font-size:15px; +} + +.profile-info li:hover i { + color:#169ef4; +} + +/*profile sales summary*/ +.sale-summary ul { + margin-top:-12px; +} +.sale-summary li { + padding:10px 0; + overflow:hidden; + border-top:solid 1px #eee; +} + +.sale-summary li:first-child { + border-top:none; +} + +.sale-summary li .sale-info { + float:left; + color:#646464; + font-size:14px; + text-transform:uppercase; +} + +.sale-summary li .sale-num { + float:right; + color:#169ef4; + font-size:20px; + font-weight:300; +} + +.sale-summary li span i { + top:1px; + width:13px; + height:14px; + margin-left:3px; + position:relative; + display:inline-block; +} + +.sale-summary li i.icon-img-up { + background:url(../image/bg-input.png) no-repeat !important; +} + +.sale-summary li i.icon-img-down { + background:url(../image/bg-input.png) no-repeat !important; +} + +.sale-summary .portlet-title h4 { + color:#383839; + font-size:18px; +} + +.sale-summary .portlet-title { + border-color:#c9c9c9; +} + +/*latest customers table*/ +.profile .table-advance thead tr th { + background:#f0f6fa; +} + +.profile .table-bordered th, +.profile .table-bordered td, +.profile .table-bordered { + border-color:#e5eff6; +} + +.profile .table-striped tbody > tr:nth-child(2n+1) > td, +.profile .table-striped tbody > tr:nth-child(2n+1) > th { + background:#fcfcfc; +} + +.profile .table-hover tbody tr:hover td, +.profile .table-hover tbody tr:hover th { + background:#f5fafd; +} + +/*add portfolio*/ +.add-portfolio { + overflow:hidden; + margin-bottom:30px; + background:#f0f6fa; +} + +.add-portfolio .pull-left, +.add-portfolio .pull-right { + padding:12px 14px; +} + +.add-portfolio .pull-left { + color:#555d69; + font-size:20px; +} + +.add-portfolio .pull-left span { + top:8px; + position:relative; +} + +.add-portfolio .pull-right i { + margin-left:5px; +} + +/*portfolio block*/ +.portfolio-block { + background:#f7f7f7; + margin-bottom:15px; +} + +.portfolio-block .span5 { + overflow:hidden; +} + +/*portfolio text*/ +.portfolio-text { + overflow:hidden; +} + +.portfolio-text h4 { +} + +.portfolio-text img { + float:left; + margin-right:15px; +} + +.portfolio-text .portfolio-text-info { + overflow:hidden; +} + +/*portfolio button*/ +.portfolio-btn a { + display:block; + padding:28px 0; + background:#ddd !important; +} + +.portfolio-btn a:hover { + background:#1d943b !important; +} + +.portfolio-btn span { + color:#fff; + font-size:22px; + font-weight:200; +} + +/*portfolio info*/ +.portfolio-info { + float:left; + color:#616161; + font-size:12px; + padding:12px 25px; + margin-bottom:5px; + text-transform:uppercase; +} + +.portfolio-info span { + color:#16a1f2; + display:block; + font-size:30px; + margin-top:5px; + font-weight:200; + text-transform:uppercase; +} + +/*portfolio settings*/ +.profile-settings { + background:#fafafa; + padding:15px 8px 0; + margin-bottom:5px; +} + +.profile-settings p { + padding-left:5px; + margin-bottom:3px; +} + +.profile-settings .controls > .radio, +.profile-settings .controls > .checkbox { + font-size:12px; + margin-top:2px !important; +} diff --git a/mall-master/src/main/resources/static/css/promo.css b/mall-master/src/main/resources/static/css/promo.css new file mode 100644 index 0000000..6fe2264 --- /dev/null +++ b/mall-master/src/main/resources/static/css/promo.css @@ -0,0 +1,49 @@ +/*** +Promo Page +***/ + +.promo-page { + padding-left: 0; + padding-right: 0; + min-height: 650px; +} + +.promo-page h1, .promo-page h2 { + font-size: 50px; + line-height: 60px; +} + +.promo-page .btn.xlarge { + font-size: 22px; + padding: 7px 25px; + margin: 5px 0; +} + +.promo-page input.m-wrap { + background: #fff; +} + +/*page row options*/ + +.promo-page .block-transparent { + min-height: 350px; + padding: 50px 20px 30px 20px; +} + +.promo-page .block-grey { + min-height: 350px; + padding: 50px 20px 30px 20px; + background: #eeedf2; +} + +.promo-page .block-yellow { + min-height: 350px; + padding: 50px 20px 30px 20px; + background: #ffd800; +} + +.promo-page .block-footer { + padding: 30px 20px 30px 20px; + background: #eeedf2; +} + diff --git a/mall-master/src/main/resources/static/css/purple.css b/mall-master/src/main/resources/static/css/purple.css new file mode 100644 index 0000000..ac88ae2 --- /dev/null +++ b/mall-master/src/main/resources/static/css/purple.css @@ -0,0 +1,287 @@ +/*** +Purple theme +***/ +/*** +Reset and overrides +***/ +body { + background-color: #701584 !important; +} +/*** +Page header +***/ +.header .navbar-inner { + filter: none !important; + background-image: none !important; + background-color: #470d54 !important; +} +.header .btn-navbar { + background-color: #470d54 !important; +} +.header .nav .dropdown-toggle:hover, +.header .nav .dropdown.open .dropdown-toggle { + background-color: #69147b !important; +} +.header .nav li.dropdown .dropdown-toggle i { + color: #c84fe3 !important; +} +/*** +Page sidebar +***/ +.page-sidebar { + background-color: #701584; +} +ul.page-sidebar-menu > li > a { + border-top: 1px solid #9d1db9 !important; + color: #ffffff !important; +} +ul.page-sidebar-menu > li:last-child > a { + border-bottom: 1px solid transparent !important; +} +ul.page-sidebar-menu > li a i { + color: #cf65e7; +} +ul.page-sidebar-menu > li.open > a, +ul.page-sidebar-menu > li > a:hover, +ul.page-sidebar-menu > li:hover > a { + background: #5d116e; +} +ul.page-sidebar-menu > li.active > a { + background: #571067 !important; + border-top-color: transparent !important; + color: #ffffff; +} +ul.page-sidebar-menu > li.active > a i { + color: #ffffff; +} +ul.page-sidebar-menu > li > ul.sub-menu > li:first-child > a { + border-top: 0px !important; +} +ul.page-sidebar-menu > li > ul.sub-menu > li.active > a, +ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { + color: #ffffff !important; + background: #951cb0 !important; +} +ul.page-sidebar-menu > li > ul.sub-menu > li > a:hover { + background: #951cb0 !important; +} +/* 3rd level sub menu */ +ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li.active > a, +ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li > a:hover, +ul.page-sidebar-menu > li > ul.sub-menu li.open > a { + color: #ffffff !important; + background: #951cb0 !important; +} +/* font color for all sub menu links*/ +ul.page-sidebar-menu li > ul.sub-menu > li > a { + color: #e4a7f1; +} +/* menu arrows */ +ul.page-sidebar-menu > li > a .arrow:before, +ul.page-sidebar-menu > li > a .arrow.open:before { + color: #c239df !important; +} +ul.page-sidebar-menu > li > ul.sub-menu a .arrow:before, +ul.page-sidebar-menu > li > ul.sub-menu a .arrow.open:before { + color: #bb23dc !important; +} +ul.page-sidebar-menu > li > a > .arrow.open:before { + color: #c84fe3 !important; +} +ul.page-sidebar-menu > li.active > a .arrow:before, +ul.page-sidebar-menu > li.active > a .arrow.open:before { + color: #ffffff !important; +} +/* sidebar search */ +.page-sidebar .sidebar-search input { + background-color: #4b0e58 !important; + color: #bf55d7; +} +.page-sidebar .sidebar-search input::-webkit-input-placeholder { + color: #b84dd0 !important; +} +.page-sidebar .sidebar-search input:-moz-placeholder { + color: #b84dd0 !important; +} +.page-sidebar .sidebar-search input:-ms-input-placeholder { + color: #b84dd0 !important; +} +.page-sidebar .sidebar-search input { + background-color: #701584 !important; + color: #bfbfbf !important; +} +.page-sidebar .sidebar-search .input-box { + border-bottom: 1px solid #a93bc1 !important; +} +.page-sidebar .sidebar-search .submit { + background-image: url(../../img/search-icon-purple.png); +} +/*** +Sidebar toggler +***/ +.sidebar-toggler { + background-image: url(../../img/sidebar-toggler-purple.jpg); + background-color: #4b0e58; +} +/* search box bg color on expanded */ +.page-sidebar-closed .page-sidebar .sidebar-search.open { + background-color: #701584 !important; +} +.page-sidebar-closed .page-sidebar .sidebar-search.open .remove { + background-image: url("../../img/sidebar-search-close-purple.png"); +} +/* sub menu bg color on hover menu item */ +.page-sidebar-closed ul.page-sidebar-menu > li:hover .sub-menu { + background-color: #701584; +} +/*** +Horizontal Menu(new in v1.2) +***/ +/*search*/ +.header .hor-menu .hor-menu-search-form-toggler.hide { + background: #000000 url(../../img/hor-menu-search-close.png) no-repeat center; +} +.header .hor-menu .search-form { + background: #000000; +} +.header .hor-menu .search-form .btn { + color: #f1d3f8; + background: #000000 url(../../img/search-icon.png) no-repeat center; +} +.header .hor-menu .search-form form input { + color: #f1d3f8; +} +.header .hor-menu .search-form form input::-webkit-input-placeholder { + /* WebKit browsers */ + + color: #f1d3f8; +} +.header .hor-menu .search-form form input:-moz-placeholder { + /* Mozilla Firefox 4 to 18 */ + + color: #f1d3f8; +} +.header .hor-menu .search-form form input::-moz-placeholder { + /* Mozilla Firefox 19+ */ + + color: #f1d3f8; +} +.header .hor-menu .search-form form input:-ms-input-placeholder { + /* Internet Explorer 10+ */ + + color: #f1d3f8; +} +/*** +Footer +***/ +.footer .footer-inner { + color: #c84fe3; +} +.footer .footer-tools .go-top { + background-color: #8a1aa3; +} +.footer .footer-tools .go-top:hover { + opacity: 0.7; + filter: alpha(opacity=70); +} +.footer .footer-tools .go-top i { + color: #c84fe3; +} +/*** +Footer Layouts (new in v1.3) +***/ +/* begin:fixed footer */ +.page-footer-fixed .footer { + background-color: #4b0e58; +} +.page-footer-fixed .footer .footer-inner { + color: #c84fe3; +} +.page-footer-fixed .footer .footer-tools .go-top { + background-color: #8a1aa3; +} +.page-footer-fixed .footer .footer-tools .go-top i { + color: #c84fe3; +} +/* end:fixed footer */ +/*** +Gritter Notifications +***/ +.gritter-top { + background: url(../../plugins/gritter/images/gritter-purple.png) no-repeat left -30px !important; +} +.gritter-bottom { + background: url(../../plugins/gritter/images/gritter-purple.png) no-repeat left bottom !important; +} +.gritter-item { + display: block; + background: url(../../plugins/gritter/images/gritter-purple.png) no-repeat left -40px !important; +} +.gritter-close { + background: url(../../plugins/gritter/images/gritter-purple.png) no-repeat left top !important; +} +.gritter-title { + text-shadow: none !important; + /* Not supported by IE :( */ + +} +/* for the light (white) version of the gritter notice */ +.gritter-light .gritter-item, +.gritter-light .gritter-bottom, +.gritter-light .gritter-top, +.gritter-light .gritter-close { + background-image: url(../../plugins/gritter/images/gritter-light.png) !important; +} +.gritter-item-wrapper a { + color: #18a5ed; +} +.gritter-item-wrapper a:hover { + color: #0b6694; +} +/* begin: boxed page */ +@media (min-width: 980px) { + .page-boxed { + background-color: #5a116a !important; + } + .page-boxed .page-container { + background-color: #701584; + border-left: 1px solid #a11ebd; + border-bottom: 1px solid #a11ebd; + } + .page-boxed.page-sidebar-fixed .page-container { + border-left: 0; + border-bottom: 0; + } + .page-boxed.page-sidebar-fixed .page-sidebar { + border-left: 1px solid #a11ebd; + } + .page-boxed.page-sidebar-fixed.page-footer-fixed .footer { + background-color: #5a116a !important; + } +} +/* end: boxed page */ +/*** +Landscape phone to portrait tablet +***/ +@media (max-width: 979px) { + /*** + page sidebar + ***/ + .page-sidebar { + background-color: #520f61 !important; + } + ul.page-sidebar-menu > li > a { + border-top: 1px solid #83189a !important; + } + ul.page-sidebar-menu > li:last-child > a { + border-bottom: 0 !important; + } + .page-sidebar .sidebar-search input { + background-color: #520f61 !important; + } + ul.page-sidebar-menu > li.open > a, + ul.page-sidebar-menu > li > a:hover, + ul.page-sidebar-menu > li:hover > a { + background: #430d4f; + } +} diff --git a/mall-master/src/main/resources/static/css/search.css b/mall-master/src/main/resources/static/css/search.css new file mode 100644 index 0000000..9bd807d --- /dev/null +++ b/mall-master/src/main/resources/static/css/search.css @@ -0,0 +1,364 @@ +/*** +Search Page +***/ +.search-forms { + margin-bottom:25px; + background:#f0f6fa; +} + +/*search default*/ +.search-default form { + margin-bottom:0; + padding:12px 14px; +} + +.search-default .chat-form { + margin:0; + padding:0; + background:none; + overflow:hidden; + position:relative; +} + +.search-default .chat-form button { + top:0; + right:0; + position:absolute; +} + +.search-default .chat-form .input-cont { + margin-right:108px; +} + +.search-default .chat-form .input-cont input:focus{ + border: 1px solid #35aa47 !important; +} + +.search-result { + background:#fafafa; +} + +.search-result .portfolio-text img { + border-left:solid 3px #169ef4; +} + +.search-result .portfolio-text h4 { + color:#555d69; + font-size:20px; + font-weight:400; + margin-top:10px; +} + +.search-result .portfolio-info { + padding:12px 20px; +} + +.search-result .portfolio-info span { + font-size:28px; +} + +.search-result .portfolio-info span em { + font-size:24px; + font-style:normal; + text-transform:none; +} + +/*portfolio block*/ +.portfolio-block { + background:#f7f7f7; + margin-bottom:15px; +} + +.portfolio-block .span5 { + overflow:hidden; +} + +/*portfolio text*/ +.portfolio-text { + overflow:hidden; +} + +.portfolio-text h4 { +} + +.portfolio-text img { + float:left; + margin-right:15px; +} + +.portfolio-text .portfolio-text-info { + overflow:hidden; +} + +/*portfolio button*/ +.portfolio-btn a { + display:block; + padding:28px 0; + background:#ddd !important; +} + +.portfolio-btn a:hover { + background:#1d943b !important; +} + +.portfolio-btn span { + color:#fff; + font-size:22px; + font-weight:200; +} + +/*portfolio info*/ +.portfolio-info { + float:left; + color:#616161; + font-size:12px; + padding:12px 25px; + margin-bottom:5px; + text-transform:uppercase; +} + +.portfolio-info span { + color:#16a1f2; + display:block; + font-size:30px; + margin-top:5px; + font-weight:200; + text-transform:uppercase; +} + +.search-result .search-btn { + text-align:center; + background:#f3f3f3; + padding:30px 10px 14px; +} + +.search-result .search-btn p { + color:#9c9c9c; + font-size:22px; +} + +.search-result .search-btn p em { + color:#ffa801; + font-size:34px; + font-style:normal; +} + +.search-result .search-btn a { + font-size: 18px; + padding: 6px 20px; + text-transform: uppercase; +} + +/*search classic*/ +.search-classic { + margin-bottom:30px; +} + +.search-classic h4 { + margin-bottom:3px; +} + +.overflow-hidden { + overflow:hidden; +} + +/*** +Search Page +***/ +/*Booking Form*/ +.booking-search { + padding: 15px; + margin-bottom: 10px; + background: #fafafa; +} + +.booking-search form { + margin: 0; +} + +.booking-search .booking-btn { + font-size: 18px; + padding: 9px 15px; + min-width: 248px; +} + +.booking-search input.m-wrap { + background: #fff !important; +} + +.booking-search .margin-right-20 { + margin-right: 20px; +} + +.booking-search .search-clearfix { + overflow: hidden; +} + +.booking-search .booking-option .controls { + padding: 5px 0; +} + +.booking-search .search-clearfix .control-group, +.booking-search .search-clearfix .input-append, +.booking-search .search-clearfix .input-prepend { + margin-bottom: 0; +} + +.booking-search .margin-bottom-20 { + margin-bottom: 20px; +} + +/*Booking Offer*/ +.booking-offer { + position: relative; +} + +.booking-offer .booking-offer-in { + top: 15px; + left: 15px; + color: #fff; + padding: 15px; + position: absolute; + background: url(../image/bg-input.png); +} + +.booking-offer .booking-offer-in em { + font-size: 17px; + font-style: normal; +} + +.booking-offer .booking-offer-in p { + color: #fff; + font-size: 14px; + margin-bottom: 0; +} + +.booking-offer .booking-offer-in span { + font-size: 26px; + display: block; + margin-bottom: 10px; +} + +.booking-app { + margin-bottom: 10px; +} + +.booking-app a { + color: #fff; + padding: 15px; + display: block; + overflow: hidden; + background: #78ccf8; +} + +.booking-app a:hover { + background: #4d90fe; + text-decoration: none; +} + +.booking-app span { + top: 3px; + color: #fff; + font-size: 20px; + position: relative; +} + +.booking-app i { + color: #fff; + font-size: 40px; + line-height: 18px; +} + +/*Booking Blocks (Content)*/ +.booking-blocks { + overflow: hidden; +} + +.booking-blocks .booking-img { + width: 140px; + margin-right: 10px; +} + +.booking-blocks .booking-img li { + color: #777; +} + +.booking-blocks .booking-img li i { + color: #78ccf8; + font-size: 12px; + margin-right: 5px; +} + +.booking-blocks .booking-img img { + float: left; + width: 140px; + height: auto; + margin: 3px 10px 10px 0; +} + +.booking-blocks h2 { + margin-top: 0; + font-size: 20px; + line-height: 20px; +} + +.booking-blocks ul.inline li { + padding: 0; +} + +.booking-blocks ul.inline li i { + color: #f8be2c; + cursor: pointer; + font-size: 16px; +} + +.booking-blocks ul.inline li i:hover { + color: #f8be2c; + background: #c00; +} + +/*Search Images*/ +.search-images li { + position: relative; +} + +.search-images li a span { + left: 0; + bottom: 0; + color: #eee; + width: 100%; + display: none; + padding: 5px 0; + text-align: left; + position: absolute; + background: url(../image/bg-input.png); +} + +.search-images li a:hover span { + display: block; +} + +.search-images li a span em { + padding: 0 5px; + font-style: normal; +} + +/*Others*/ +.space40 { + height: 40px !important; + clear: both; +} + +.margin-bottom-10 { + margin-bottom: 10px !important; +} + +.margin-bottom-20 { + margin-bottom: 20px !important; +} + +@media (max-width: 480px) { + .booking-offer .booking-offer-in { + right: 15px; + } +} diff --git a/mall-master/src/main/resources/static/css/select2_metro.css b/mall-master/src/main/resources/static/css/select2_metro.css new file mode 100644 index 0000000..7bda7fb --- /dev/null +++ b/mall-master/src/main/resources/static/css/select2_metro.css @@ -0,0 +1,580 @@ +/* +Version: 3.3.2 Timestamp: Mon Mar 25 12:14:18 PDT 2013 +*/ + +/* +to hide search box +*/ +.no-search-box .select2-search { + display: none !important; +} + +.select2-container { + position: relative; + display: inline-block; + /* inline-block for ie7 */ + zoom: 1; + *display: inline; + vertical-align: middle; +} + +.select2-container, +.select2-drop, +.select2-search, +.select2-search input{ + /* + Force border-box so that % widths fit the parent + container without overlap because of margin/padding. + + More Info : http://www.quirksmode.org/css/box.html + */ + -webkit-box-sizing: border-box; /* webkit */ + -khtml-box-sizing: border-box; /* konqueror */ + -moz-box-sizing: border-box; /* firefox */ + -ms-box-sizing: border-box; /* ie */ + box-sizing: border-box; /* css3 */ +} + +.select2-container .select2-choice { + display: block; + height: 29px; + padding: 0 0 0 8px; + padding-top: 3px; + overflow: hidden; + position: relative; + + border: 1px solid #e5e5e5; + white-space: nowrap; + line-height: 26px; + color: #444; + text-decoration: none; + + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; + + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + + background-color: #ffffff; +} + +.select2-container.select2-drop-above .select2-choice { + border-bottom-color: #e5e5e5; + + -webkit-border-radius:0 0 4px 4px; + -moz-border-radius:0 0 4px 4px; + border-radius:0 0 4px 4px; +} + +.select2-container.select2-dropdown-open.select2-drop-above .select2-choice { + border-bottom-color: #999999 !important; +} + +.select2-container .select2-choice span { + margin-right: 26px; + display: block; + overflow: hidden; + + white-space: nowrap; + + -ms-text-overflow: ellipsis; + -o-text-overflow: ellipsis; + text-overflow: ellipsis; +} + + +.select2-container .select2-choice abbr { + display: block; + width: 12px; + height: 12px; + position: absolute; + right: 26px; + top: 8px; + + font-size: 1px; + text-decoration: none; + + border: 0; + background: url('../image/bg-input.png') right top no-repeat; + cursor: pointer; + outline: 0; +} +.select2-container .select2-choice abbr:hover { + background-position: right -11px; + cursor: pointer; +} + +.select2-drop-mask { + position: absolute; + left: 0; + top: 0; + z-index: 9991; + background-color: #fff; + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; /* works in IE 8 */ + filter: "alpha(opacity=0)"; /* expected to work in IE 8 */ + filter: alpha(opacity=0); /* IE 4-7 */ +} + +.select2-drop { + width: 100%; + margin-top:-1px; + position: absolute; + z-index: 9992; + top: 100%; + + background: #ffffff; + color: #000; + border: 1px solid #e5e5e5; + border-top: 0; +} + +.select2-drop.select2-drop-active { + border: 1px solid #999999; + border-top: 0; +} + +.select2-drop.select2-drop-above { + margin-top: 1px; + border-top: 1px solid #e5e5e5; + border-bottom: 0; +} + +.select2-drop.select2-drop-active.select2-drop-above { + border-top: 1px solid #999999; + border-bottom: 0; +} + +.select2-container .select2-choice div { + display: block; + width: 18px; + height: 100%; + position: absolute; + right: 0; + top: 0; + border-left: 1px solid #e5e5e5; + background: #fff; +} + +.select2-container .select2-choice div b { + display: block; + width: 100%; + height: 100%; + background: url('../image/bg-input.png') no-repeat 0 3px; +} + +.select2-search { + display: inline-block; + width: 100%; + min-height: 26px; + margin: 0; + padding-left: 4px; + padding-right: 4px; + + position: relative; + z-index: 9992; + + white-space: nowrap; +} + +.select2-search-hidden { + display: block; + position: absolute; + left: -10000px; +} + +.select2-search input { + + width: 100%; + height: auto !important; + min-height: 26px; + padding: 4px 20px 4px 5px; + margin: 0; + + outline: 0; + font-family: sans-serif; + font-size: 1em; + + border: 1px solid #e5e5e5; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + + background: #fff url('../image/bg-input.png') no-repeat 100% -22px; + -webkit-appearance: none !important; + color: #333333; + outline: 0; + height: 20px; + padding: 6px 6px !important; + line-height: 20px; + font-size: 14px; + font-weight: normal; + vertical-align: top; + background-color: #ffffff; + filter: none !important; + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + box-shadow: none !important; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +.select2-search input:focus { + +border-color: #999999; + outline: 0 !important; + /* IE6-9 */ + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.select2-drop.select2-drop-above .select2-search input { + margin-top: 4px; +} + +.select2-search input.select2-active { + background: #fff url('../image/bg-input.png') no-repeat 100%; +} + +.select2-container-active .select2-choice, +.select2-container-active .select2-choices { + border: 1px solid #999999 !important; + outline: none; +} + +.select2-dropdown-open .select2-choice { + border-color: #999999 !important; + border-bottom-color: transparent; + background-color: #fff; +} + +.select2-dropdown-open .select2-choice div { + background: transparent; + border-left: none; + filter: none; +} +.select2-dropdown-open .select2-choice div b { + background-position: -18px 1px; +} + +/* results */ +.select2-results { + max-height: 200px; + padding: 0 0 0 4px; + margin: 4px 4px 4px 0; + position: relative; + overflow-x: hidden; + overflow-y: auto; + -webkit-tap-highlight-color: rgba(0,0,0,0); +} + +.select2-results ul.select2-result-sub { + margin: 0; +} + +.select2-results ul.select2-result-sub > li .select2-result-label { padding-left: 20px } +.select2-results ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 40px } +.select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 60px } +.select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 80px } +.select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 100px } +.select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 110px } +.select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 120px } + +.select2-results li { + list-style: none; + display: list-item; + background-image: none; +} + +.select2-results li.select2-result-with-children > .select2-result-label { + font-weight: bold; +} + +.select2-results .select2-result-label { + padding: 3px 7px 4px; + margin: 0; + cursor: pointer; + + min-height: 1em; + + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.select2-results .select2-highlighted { + background: #eee; + color: #333; +} + +.select2-results li em { + background: #eee; + font-style: normal; +} + +.select2-results .select2-highlighted em { + background: transparent; +} + +.select2-results .select2-highlighted ul { + background: white; + color: #000; +} + + +.select2-results .select2-no-results, +.select2-results .select2-searching, +.select2-results .select2-selection-limit { + background: #fff; + display: list-item; +} + +/* +disabled look for disabled choices in the results dropdown +*/ +.select2-results .select2-disabled.select2-highlighted { + color: #666; + background: #f4f4f4; + display: list-item; + cursor: default; +} +.select2-results .select2-disabled { + background: #f4f4f4; + display: list-item; + cursor: default; +} + +.select2-results .select2-selected { + display: none; +} + +.select2-more-results.select2-active { + background: #f4f4f4 url('../image/bg-input.png') no-repeat 100%; +} + +.select2-more-results { + background: #f4f4f4; + display: list-item; +} + +/* disabled styles */ + +.select2-container.select2-container-disabled .select2-choice { + background-color: #f4f4f4; + background-image: none; + border: 1px solid #ddd; + cursor: default; +} + +.select2-container.select2-container-disabled .select2-choice div { + background-color: #f4f4f4; + background-image: none; + border-left: 0; +} + +.select2-container.select2-container-disabled .select2-choice abbr { + display: none +} + + +/* multiselect */ + +.select2-container-multi .select2-choices { + height: auto !important; + height: 1%; + margin: 0; + padding: 0; + position: relative; + + border: 1px solid #e5e5e5; + cursor: text; + overflow: hidden; + + background-color: #ffffff; +} + +.select2-locked { + padding: 3px 5px 3px 5px !important; +} + +.select2-container-multi .select2-choices { + min-height: 26px; +} + +.select2-container-multi.select2-drop-open .select2-choices, +.select2-container-multi.select2-container-active .select2-choices { + border: 1px solid #999999 !important; + outline: none; +} +.select2-container-multi .select2-choices li { + float: left; + list-style: none; +} +.select2-container-multi .select2-choices .select2-search-field { + margin: 0; + padding: 0; + white-space: nowrap; +} + +.select2-container-multi .select2-choices .select2-search-field input { + padding: 5px; + margin: 1px 0; + + font-family: sans-serif; + font-size: 100%; + color: #666; + outline: 0; + border: 0; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + background: transparent !important; +} + +.select2-container-multi .select2-choices .select2-search-field input.select2-active { + background: #fff url('../image/bg-input.png) no-repeat 100% !important; +} + +.select2-default { + color: #999 !important; +} + +.select2-container-multi .select2-choices .select2-search-choice { + padding: 3px 5px 3px 18px; + margin: 6px 0 0px 5px; + position: relative; + + line-height: 13px; + color: #333; + cursor: default; + border: 1px solid #e5e5e5; + + /* + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + + -webkit-box-shadow: 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05); + -moz-box-shadow: 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05); + box-shadow: 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05); + */ + + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; + + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + + background-color: #ffffff; + /* + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#eeeeee', endColorstr='#f4f4f4', GradientType=0 ); + background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee)); + background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%); + background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%); + background-image: -o-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%); + background-image: -ms-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%); + background-image: linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%); + */ +} +.select2-container-multi .select2-choices .select2-search-choice span { + cursor: default; +} +.select2-container-multi .select2-choices .select2-search-choice-focus { + background: #ffffff; +} + +.select2-search-choice-close { + display: block; + width: 12px; + height: 13px; + position: absolute; + right: 3px; + top: 3px; + font-size: 1px; + outline: none; + background: url('../image/select2.png') right top no-repeat; +} + +.select2-container-multi .select2-search-choice-close { + left: 3px; +} + +.select2-container-multi .select2-choices .select2-search-choice .select2-search-choice-close:hover { + background-position: right -11px; +} +.select2-container-multi .select2-choices .select2-search-choice-focus .select2-search-choice-close { + background-position: right -11px; +} + +/* disabled styles */ +.select2-container-multi.select2-container-disabled .select2-choices{ + background-color: #ffffff; + background-image: none; + border: 1px solid #ddd; + cursor: default; +} + +.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice { + padding: 3px 5px 3px 5px; + border: 1px solid #ddd; + background-image: none; + background-color: #f4f4f4; +} + +.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice .select2-search-choice-close { + display: none; +} +/* end multiselect */ + + +.select2-result-selectable .select2-match, +.select2-result-unselectable .select2-match { + text-decoration: underline; +} + +.select2-offscreen { + border: 0; + clip: rect(0 0 0 0); + height: 1px !important; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px !important; +} + +/* Retina-ize icons */ + +@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 144dpi) { + .select2-search input, .select2-search-choice-close, .select2-container .select2-choice abbr, .select2-container .select2-choice div b { + background-image: url('../image/select2x2.png') !important; + background-repeat: no-repeat !important; + background-size: 60px 40px !important; + } + .select2-search input { + background-position: 100% -21px !important; + } +} diff --git a/mall-master/src/main/resources/static/css/style-metro.css b/mall-master/src/main/resources/static/css/style-metro.css new file mode 100644 index 0000000..83ee3c7 --- /dev/null +++ b/mall-master/src/main/resources/static/css/style-metro.css @@ -0,0 +1,743 @@ +/*** +Modify bootstrap buttons +***/ + +/* remove rounds from all elements */ +div, input, select, textarea, span, img, table, td, th, p, a, button, ul, li { + -webkit-border-radius: 0 !important; + -moz-border-radius: 0 !important; + border-radius: 0 !important; +} + +a:focus { + outline: none !important; +} + +a:hover, a:active { + outline: 0 !important; +} + +select:focus { + outline: none !important; +} + +.btn { + background-color: #e5e5e5; + background-image: none; + filter: none; + border: 0; + padding: 7px 14px; + text-shadow: none; + font-family: "Segoe UI", Helvetica, Arial, sans-serif; + font-size: 14px; + color: #333333; + cursor: pointer; + outline: none; + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + box-shadow: none !important; + -webkit-border-radius: 0 !important; + -moz-border-radius: 0 !important; + border-radius: 0 !important; +} +.btn:hover, +.btn:focus, +.btn:active, +.btn.active, +.btn[disabled], +.btn.disabled { + color: #333333; + background-color: #d8d8d8 !important; +} + +.btn.red-stripe +{ + border-left: 3px solid #d84a38; +} + +.btn.blue-stripe +{ + border-left: 3px solid #4d90fe; +} + +.btn.purple-stripe +{ + border-left: 3px solid #852b99; +} + +.btn.green-stripe +{ + border-left: 3px solid #35aa47; +} + +.btn.yellow-stripe { + border-left: 3px solid #ffb848; +} + +/* Red */ +.btn.red { + color: white; + text-shadow: none; + background-color: #d84a38; +} +.btn.red:hover, +.btn.red:focus, +.btn.red:active, +.btn.red.active, +.btn.red[disabled], +.btn.red.disabled { + background-color: #bb2413 !important; + color: #fff !important; +} + +/* Blue */ +.btn.transparent +{ + color: black; + text-shadow: none; + background-color: transparent; +} + +.btn.blue +{ + color: white; + text-shadow: none; + background-color: #4d90fe; +} +.btn.blue:hover, +.btn.blue:focus, +.btn.blue:active, +.btn.blue.active, +.btn.blue[disabled], +.btn.blue.disabled { + background-color: #0362fd !important; + color: #fff !important; +} + +/* Green */ +.btn.green { + color: white; + text-shadow: none; + background-color: #35aa47; +} +.btn.green:hover, +.btn.green:focus, +.btn.green:active, +.btn.green.active, +.btn.green.disabled, +.btn.green[disabled]{ + background-color: #1d943b !important; + color: #fff !important; +} + +/* Purple */ +.btn.purple { + color: white; + text-shadow: none; + background-color: #852b99; +} +.btn.purple:hover, +.btn.purple:focus, +.btn.purple:active, +.btn.purple.active, +.btn.purple.disabled, +.btn.purple[disabled] { + background-color: #6d1b81 !important; + color: #fff !important; +} + +.btn.yellow { + color: white; + text-shadow: none; + background-color: #ffb848; +} +.btn.yellow:hover, +.btn.yellow:focus, +.btn.yellow:active, +.btn.yellow.active, +.btn.yellow.disabled, +.btn.yellow[disabled] { + background-color: #eca22e !important; + color: #fff !important; +} + +.btn.black { + color: white; + text-shadow: none; + background-color: #555555; +} +.btn.black:hover, +.btn.black:focus, +.btn.black:active, +.btn.black.active, +.btn.black.disabled, +.btn.black[disabled] { + background-color: #222222 !important; + color: #fff !important; +} + +.mini +{ + height: 13px; + font-size: 11px !important; + line-height: 13px; + padding: 4px 10px; +} + +.big +{ + height: 38px; + font-size: 18px; + line-height: 38px; + padding: 8px 16px; +} + +button.btn.big, +input[type="button"].btn.big, +input[type="submit"].btn.big { + height: 54px; + padding-top: 9px; + padding-bottom: 8px; +} + +button.btn.mini, +input[type="button"].btn.mini, +input[type="submit"].btn.mini { + height: 21px; + padding-top: 3px; + padding-bottom: 3px; +} + +a.btn.big.btn-block { + height: 54px; +} + +/*** +Metro icons +***/ +[class^="m-icon-"] { + display: inline-block; + width: 14px; + height: 14px;; + margin-top: 4px; + line-height: 14px; + vertical-align: top; + background-image: url(../image/bg-input.png); + background-position: 0 0; + background-repeat: no-repeat; +} + +[class^="m-icon-big-"] { + display: inline-block; + width: 30px; + height: 30px; + margin: 6px; + vertical-align: top; + background-image: url(../image/bg-input.png); + background-position: 0 0px; + background-repeat: no-repeat; +} + +.m-icon-white { + background-image: url(../image/bg-input.png); +} + +/* Misc */ +.btn.icn-only { + min-width: 14px; +} +.btn.bigicn-only { + min-width: 34px; +} +.m-icon-swapright { + background-position: -27px -10px; +} +.m-icon-swapdown { + background-position: -68px -10px; +} +.m-icon-swapleft { + background-position: -8px -10px; +} +.m-icon-swapup { + background-position: -46px -10px; +} +.m-icon-big-swapright{ + background-position: -42px -28px; +} +.m-icon-big-swapdown{ + background-position: -115px -28px; +} +.m-icon-big-swapleft{ + background-position: -6px -28px; +} +.m-icon-big-swapup{ + background-position: -78px -28px; +} + +/*** +Glyphicons icons +***/ +.btn > .halflings-icon { + margin-top:2px; + margin-right: 2px; +} + +.btn.mini > .halflings-icon { + margin-top: -1px; + margin-right: 2px; +} + +.btn.icn-only > .halflings-icon { + margin-right: 0px !important; +} + +/*** +Dropdowns +***/ +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + list-style: none; + text-shadow: none; + padding: 0px; + margin:0px; + -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); + font-size: 14px; + font-family: "Segoe UI",Helvetica, Arial, sans-serif; + border: 1px solid #ddd; +} + +.dropdown:hover .caret, +.open.dropdown .caret { + opacity: 1; + filter: alpha(opacity=100); +} + +.dropdown-menu.bottom-up { + top: auto; + bottom: 100%; + margin-bottom: 2px; +} + +.dropdown-menu li > a { + padding: 6px 0 6px 13px; + color: #333; + text-decoration: none; + display: block; + clear: both; + font-weight: normal; + line-height: 18px; + white-space: nowrap; +} + +.dropdown-menu li > a:hover, +.dropdown-menu .active > a, +.dropdown-menu .active > a:hover { + text-decoration: none; + background-image: none; + background-color: #eee; + color: #333; + filter:none; +} + +.dropdown.open .dropdown-toggle { + color: #08c; + background: #ccc; + background: rgba(0, 0, 0, 0.3); +} + +/*** +Forms +***/ +label.m-wrap, +input.m-wrap, +button.m-wrap, +select.m-wrap, +textarea.m-wrap { + font-size: 14px; + font-weight: normal; + line-height: 20px; + +} + +input.m-wrap, +button.m-wrap, +select.m-wrap, +textarea.m-wrap { + font-family: "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif; +} + +label.m-wrap { + display: block; + margin-bottom: 5px; +} + +.uneditable-input, +textarea.m-wrap, +input[type="text"].m-wrap, +input[type="password"].m-wrap, +input[type="datetime"].m-wrap, +input[type="datetime-local"].m-wrap, +input[type="date"].m-wrap, +input[type="month"].m-wrap, +input[type="time"].m-wrap, +input[type="week"].m-wrap, +input[type="number"].m-wrap, +input[type="email"].m-wrap, +input[type="url"].m-wrap, +input[type="search"].m-wrap, +input[type="tel"].m-wrap, +input[type="color"].m-wrap { + -webkit-appearance: none !important; + color: #333333; + outline: 0; + height: 20px; + padding: 6px 6px !important; + line-height: 20px; + font-size: 14px; + font-weight: normal; + vertical-align: top; + background-color: #ffffff; + background-image: none !important; + filter: none !important; + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + box-shadow: none !important; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; + background: transparent; +} + +input.m-wrap { + border: 1px solid #e5e5e5; +} + +textarea.m-wrap { + height: auto; +} + +.uneditable-input.focus, +textarea.m-wrap:focus, +select.m-wrap:focus, +input[type="text"].m-wrap:focus, +input[type="password"].m-wrap:focus, +input[type="datetime"].m-wrap:focus, +input[type="datetime-local"].m-wrap:focus, +input[type="date"].m-wrap:focus, +input[type="month"].m-wrap:focus, +input[type="time"].m-wrap:focus, +input[type="week"].m-wrap:focus, +input[type="number"].m-wrap:focus, +input[type="email"].m-wrap:focus, +input[type="url"].m-wrap:focus, +input[type="search"].m-wrap:focus, +input[type="tel"].m-wrap:focus, +input[type="color"].m-wrap:focus, +.m-uneditable-input:focus { + border-color: #999999; + outline: 0 !important; + /* IE6-9 */ + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +input[disabled], +select[disabled], +textarea[disabled] { + cursor: not-allowed; + background-color: #F4F4F4 !important; +} + +input[readonly], +select[readonly], +textarea[readonly] { + cursor: not-allowed; + background-color: #F9F9F9 !important; +} + + +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"][readonly], +input[type="checkbox"][readonly] { + background-color: transparent; +} + +input[type="radio"].m-wrap, +input[type="checkbox"].m-wrap { + margin: 4px 0 0; + margin-top: 1px \9; + *margin-top: 0; + line-height: normal; + cursor: pointer; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +select.m-wrap, +input[type="file"].m-wrap { + height: 34px !important; + /* In IE7, the height of the select element cannot be changed by height, only font-size */ + *margin-top: 4px; + /* For IE7, add top margin to align select with labels */ + line-height: 30px; +} + +select.m-wrap { + width: 220px; + background-color: #ffffff; + background-image: none !important; + filter: none !important; + border: 1px solid #e5e5e5; + outline: none; +} + +select[multiple].m-wrap, +select[size].m-wrap { + height: auto !important; +} + +select.m-wrap:focus, +input[type="file"].m-wrap:focus, +input[type="radio"].m-wrap:focus, +input[type="checkbox"].m-wrap:focus { + outline: thin dotted #333333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + box-shadow: none !important; +} + +input[class*="span"].m-wrap +{ + float: none; + height: 34px !important; + margin-left: 0; +} + +select[class*="span"].m-wrap, +textarea[class*="span"].m-wrap +{ + float: none; + margin-left: 0; +} + +.input-prepend, +.input-append { + border: 0; + display: inline-block; +} + +.input-append .add-on, +.input-prepend .add-on { + display: inline-block; + width: auto; + height: 24px; + min-width: 16px; + padding: 4px 5px; + font-size: 14px; + font-weight: normal; + line-height: 24px; + text-align: center; + text-shadow: 0 1px 0 #ffffff; + background-color: #e5e5e5; + border: 1px solid #e5e5e5; +} + +.input-append .add-on > .halflings-icon, +.input-prepend .add-on > i, +.input-prepend .add-on > [class^="icon-"] +{ + margin-top: 5px; + margin-left: 3px; +} + +.input-append .add-on > .halflings-icon +.input-append .add-on > i, +.input-append .add-on > [class^="icon-"] +{ + margin-top: 5px; + margin-left: 0px; +} + +.input-append .m-wrap, +.input-append .m-wrap:focus { + border-right: 0 !important; + margin-right: 1px; +} + +.input-prepend input, +.input-prepend input:focus { + border-left: 0 !important; + margin-left: 1px; +} + +.input-append input[class*="span"], +.input-prepend input[class*="span"] +{ + display: inline-block !important; +} + +.m-wrap.xsmall { + width: 50px !important; +} + +.m-wrap.small { + width: 120px !important; +} + +.m-wrap.medium { + width: 206px !important; +} + +.m-wrap.large { + width: 320px !important; +} + +.m-wrap.huge { + width: 480px !important; + font-size: 24px !important; + height: 36px !important; + line-height: 36px !important; + padding: 22px 8px !important; +} + +select.m-wrap.xsmall { + width: 64px !important; +} + +select.m-wrap.small { + width: 134px !important; +} + +select.m-wrap.medium { + width: 220px !important; +} + +select.m-wrap.large { + width: 334px !important; +} + +@media (max-width: 480px) { + + .m-wrap.small { + width: 100px !important; + } + + .m-wrap.medium { + width: 150px !important; + } + + .m-wrap.large { + width: 200px !important; + } + + .m-wrap.huge { + width: 246px !important; + font-size: 24px !important; + height: 36px !important; + line-height: 36px !important; + padding: 22px 8px !important; + } + + select.m-wrap.small { + width: 114px !important; + } + + select.m-wrap.medium { + width: 164px !important; + } + + select.m-wrap.large { + width: 214px !important; + } + +} + +/*** +Custom label and badges +***/ +.label, +.badge { + font-weight: 300; +} + +.label-success, +.badge-success { + background-color: #3cc051; + background-image: none !important; + text-shadow: none !important; +} + +.label-warning, +.badge-warning { + background-color: #fcb322; + background-image: none !important; + text-shadow: none !important; +} + +.label-important, +.badge-important { + background-color: #ed4e2a; + background-image: none !important; + text-shadow: none !important; +} + +.label-info, +.badge-info { + background-color: #57b5e3; + background-image: none !important; + text-shadow: none !important; +} + +.label-mini { + font-size: 11px; + font-weight: 300; +} + +.label-default { + background-color: #999 !important; + text-shadow: none !important; +} + +/*** +Bootstrap modal +***/ +.modal-header { + border-bottom: 1px solid #EFEFEF; +} + +.modal-header h3{ + font-weight: 300; +} + +.modal-footer { + border-top: 0; +} + +.modal { + z-index: 10050 !important; +} + +.modal-backdrop { + z-index: 10049 !important; +} + +.modal-backdrop, +.modal-backdrop.fade.in { + background-color: #333 !important; +} + +.modal-open .header .container-fluid { + padding-right: 37px; +} \ No newline at end of file diff --git a/mall-master/src/main/resources/static/css/style-non-responsive.css b/mall-master/src/main/resources/static/css/style-non-responsive.css new file mode 100644 index 0000000..0245422 --- /dev/null +++ b/mall-master/src/main/resources/static/css/style-non-responsive.css @@ -0,0 +1,113 @@ +/*** +Large notebooks and desktops +***/ + + /*** + Page sidebar + ***/ + .page-sidebar { + position: absolute; + width: 225px; + } + + .page-sidebar-fixed .page-sidebar { + position: fixed !important; + top: 41px; + } + + .page-sidebar-fixed ul.page-sidebar-menu > li.last { + margin-bottom: 15px !important; + } + + .page-sidebar-fixed.page-sidebar-hover-on .page-sidebar { + z-index: 10000; + width: 35px; + } + + .page-sidebar-fixed.page-sidebar-hover-on .page-sidebar .selected { + display: none; + } + + .page-sidebar-fixed.page-sidebar-hover-on .page-content { + margin-left: 35px; + } + .page-sidebar-fixed.page-sidebar-hover-on .footer { + margin-left: 35px; + } + + .page-sidebar-fixed .page-sidebar-closed .page-sidebar .sidebar-search .submit, + .page-sidebar-fixed .page-sidebar .sidebar-toggler { + -webkit-transition: all 0.2s ease; + -moz-transition: all 0.2s ease; + -o-transition: all 0.2s ease; + transition: all 0.2s ease; + } + + .page-sidebar-hovering { + overflow: hidden !important; + } + + .page-sidebar-hovering .sub-menu, + .page-sidebar-hovering span.title, + .page-sidebar-hovering span.arrow { + display: none !important; + } + + .page-sidebar-hovering .submit { + opacity: 0; + width: 0 !important; + height: 0 !important; + } + + /*** + Page content + ***/ + .page-content { + margin-left: 225px; + margin-top: 0px; + min-height: 760px; + } + + .page-sidebar-fixed .page-content { + min-height: 600px; + } + + .page-content.no-min-height { + min-height: auto; + } + + /*** + Footer + ***/ + + /* fixed sidebar */ + .page-sidebar-fixed .footer { + margin-left: 225px; + background-color: #fff; + } + + .page-sidebar-fixed .footer .footer-inner { + color: #333; + } + + .page-sidebar-fixed.page-sidebar-closed .footer { + margin-left: 35px; + } + + .page-sidebar-fixed .footer .footer-tools .go-top { + background-color: #666; + } + + .page-sidebar-fixed .footer .footer-tools .go-top i { + color: #ddd; + } + + /* boxed layout */ + .page-boxed .header .brand { + margin-left: 0px !important; + width: 226px; + } + + .page-boxed .header .brand img { + margin-left: 10px; + } diff --git a/mall-master/src/main/resources/static/css/style-responsive.css b/mall-master/src/main/resources/static/css/style-responsive.css new file mode 100644 index 0000000..0d3b217 --- /dev/null +++ b/mall-master/src/main/resources/static/css/style-responsive.css @@ -0,0 +1,583 @@ +@media (min-width: 980px) and (max-width: 1280px) { + + .page-boxed .header .dropdown .username { + display: none; + } +} + +@media (min-width: 980px) { + + /*** + Page sidebar + ***/ + .page-sidebar { + position: absolute; + width: 225px; + } + + .page-sidebar-fixed .page-sidebar { + position: fixed !important; + top: 41px; + } + + .page-sidebar-fixed ul.page-sidebar-menu > li.last { + margin-bottom: 15px !important; + } + + .page-sidebar-fixed.page-sidebar-hover-on .page-sidebar { + z-index: 10000; + width: 35px; + } + + .page-sidebar-fixed.page-sidebar-hover-on .page-sidebar .selected { + display: none; + } + + .page-sidebar-fixed.page-sidebar-hover-on .page-content { + margin-left: 35px; + } + .page-sidebar-fixed.page-sidebar-hover-on .footer { + margin-left: 35px; + } + + .page-sidebar-fixed .page-sidebar-closed .page-sidebar .sidebar-search .submit, + .page-sidebar-fixed .page-sidebar .sidebar-toggler { + -webkit-transition: all 0.2s ease; + -moz-transition: all 0.2s ease; + -o-transition: all 0.2s ease; + transition: all 0.2s ease; + } + + .page-sidebar-hovering { + overflow: hidden !important; + } + + .page-sidebar-hovering .sub-menu, + .page-sidebar-hovering span.title, + .page-sidebar-hovering span.arrow { + display: none !important; + } + + .page-sidebar-hovering .submit { + opacity: 0; + width: 0 !important; + height: 0 !important; + } + + /*** + Page content + ***/ + .page-content { + margin-left: 225px; + margin-top: 0px; + height: 586px; + } + + .page-sidebar-fixed .page-content { + height: 586px; + } + + .page-content.no-min-height { + min-height: auto; + } + + /*** + Footer + ***/ + + /* fixed sidebar */ + .page-sidebar-fixed .footer { + margin-left: 225px; + background-color: #fff; + } + + .page-sidebar-fixed .footer .footer-inner { + color: #333; + } + + .page-sidebar-fixed.page-sidebar-closed .footer { + margin-left: 35px; + } + + .page-sidebar-fixed .footer .footer-tools .go-top { + background-color: #666; + } + + .page-sidebar-fixed .footer .footer-tools .go-top i { + color: #ddd; + } + + /* boxed layout */ + .page-boxed .header .brand { + margin-left: 0px !important; + width: 226px; + } + + .page-boxed .header .brand img { + margin-left: 10px; + } +} + +/*** +For tablets and phones +***/ +@media (max-width:979px) { + + /*** + Body + ***/ + body { + margin: 0px !important; + } + + /*** + Page header + ***/ + .header { + margin: 0 !important; + } + + .header .nav li.dropdown i { + display: inline-block; + position: relative; + top:1px; + right:0px; + } + + .header .nav { + margin-bottom: 0px !important; + } + + .header .brand { + margin-left: 0px !important; + padding-left: 0px !important; + } + + .header .brand img { + margin-left: 2px !important; + } + + /*** + Page container + ***/ + .page-container { + margin: 0 !important; + padding: 0 !important; + } + + .page-header-fixed .page-container { + margin-top: 0px !important; + } + + /*** + Page content + ***/ + .page-content { + margin: 0px !important; + padding: 0px !important; + min-height: 280px; + } + + /*** + Page sidebar + ***/ + .page-sidebar { + margin: 0 10px; + } + + .page-sidebar.in { + margin: 10px; + position: relative; + z-index: 5; + } + + .page-sidebar .sidebar-toggler { + display: none; + } + + .page-sidebar ul { + margin-top:0px; + width:100%; + } + + .page-sidebar .selected { + display: none !important; + } + + .page-sidebar .sidebar-search { + width: 220px; + margin-top: 20px; + margin-bottom:20px; + } + + /*** + Page title + ***/ + .page-title { + margin: 15px 0px; + } + + /*** + Styler panel + ***/ + .styler-panel { + top:55px; + right:20px; + } +} + +@media (min-width: 768px) and (max-width: 1280px) { + + /*** + Form wizard + ***/ + .form-wizard .step .desc { + margin-top: 10px; + display: block; + } + + /*** + Pricing tables + ***/ + + .pricing-table .rate .price, + .pricing-table2 .rate .price { + width: 100%; + display: block; + text-align: center; + margin-bottom: 10px; + } + +} + +@media (min-width: 768px) and (max-width: 979px) { + + /*** + Body + ***/ + body { + padding-top: 0px; + } + + /*** + Page sidebar + ***/ + .page-sidebar .btn-navbar.collapsed .arrow { + display: none; + } + + .page-sidebar .btn-navbar .arrow { + position: absolute; + right: 25px; + width: 0; + height: 0; + top:50px; + border-bottom: 15px solid #5f646b; + border-left: 15px solid transparent; + border-right: 15px solid transparent; + } + +} + +@media (max-width: 767px) { + + /*** + Page header + ***/ + .header .navbar-inner .container-fluid, + .header .navbar-inner .container { + margin-left: 10px !important; + margin-right: 10px !important; + } + + .header .top-nav .nav{ + margin-top: 0px; + margin-right: 5px; + } + + .header .nav > li > .dropdown-menu.notification:after, + .header .nav > li > .dropdown-menu.notification:before { + margin-right: 180px; + } + + .header .nav > li > .dropdown-menu.notification { + margin-right: -180px; + } + + .header .nav > li > .dropdown-menu.inbox:after, + .header .nav > li > .dropdown-menu.inbox:before { + margin-right: 140px; + } + + .header .nav > li > .dropdown-menu.inbox { + margin-right: -140px; + } + + .header .nav > li > .dropdown-menu.tasks:after, + .header .nav > li > .dropdown-menu.tasks:before { + margin-right: 90px; + } + + .header .nav > li > .dropdown-menu.tasks { + margin-right: -90px; + } + + /* Header logo */ + .header .brand { + margin-left: 0px !important; + width: 110px; + } + + /*** + Page content + ***/ + .page-content { + padding: 10px !important; + } + + /*** + Page title + ***/ + .page-title { + margin-bottom: 20px; + } + + /*** + Styler pagel + ***/ + .styler-panel { + top:58px; + right:12px; + } + + /*** + Page breadcrumb + ***/ + .breadcrumb { + padding-left: 10px; + padding-right: 10px; + } + + /*** + Portlet form action + ***/ + .portlet-body.form .form-actions{ + padding-left: 15px; + } + + /*** + Gritter notification + ***/ + #gritter-notice-wrapper { + right:1px !important; + } + + /*** + Form input validation states + ***/ + .input-icon .input-error, + .input-icon .input-warning, + .input-icon .input-success { + top:-27px; + float: right; + right:10px !important; + } + + /*** + Advance tables + ***/ + .table-advance tr td.highlight:first-child a { + margin-left: 8px; + } + + /*** + Footer + ***/ + .footer { + padding-left: 10px; + padding-right: 10px; + } + + .footer .go-top { + float: right; + display: block; + margin-right: 0px; + } + + /*** + Vertical inline menu + ***/ + .ver-inline-menu li.active:after { + display: none; + } + + /*** + Form controls + ***/ + .form-horizontal .form-actions { + padding-left: 180px; + } + + .portlet .form-horizontal .form-actions { + padding-left: 190px; + } +} + +@media (max-width: 480px) { + + /*** + Header navbar + ***/ + .header .nav { + clear:both !important; + } + + .header .nav > li.dropdown .dropdown-toggle { + margin-top:3px !important; + } + + .header .nav li.dropdown .dropdown-toggle .badge { + top: 11px; + } + + /*** + Page sidebar + ***/ + .page-sidebar.in { + margin-top: 7px !important; + } + + /*** + Styler panel + ***/ + .styler-panel { + top:92px; + right:12px; + } + + /*** + Page title + ***/ + .page-title small { + display: block; + clear: both; + } + + /*** + Dashboard date range panel + ***/ + .page-content .breadcrumb .dashboard-date-range { + padding-bottom: 8px; + } + + .page-content .breadcrumb .dashboard-date-range span { + display: none; + } + + /*** + Login page + ***/ + .login .logo { + margin-top:10px; + } + + .login .content { + padding: 30px; + width: 222px; + } + + .login .content h3 { + font-size: 22px; + } + + .login .content .m-wrap { + width: 180px; + } + + .login .checkbox { + font-size: 13px; + } + + /*** + Form controls + ***/ + .form-horizontal.form-bordered .control-label { + float: none; + width: auto; + padding-top: 0; + text-align: left; + margin-top: 0; + margin-left: 10px; + } + + .form-horizontal.form-bordered .controls { + padding-top: 0 !important; + border-left: 0 !important; + } + + .form-horizontal.form-bordered.form-label-stripped .control-group:nth-child(even) { + background-color: none !important; + } + + .form-horizontal.form-bordered.form-label-stripped .control-group:nth-child(even) .controls { + background-color: none !important; + } + + .form-horizontal.form-row-seperated .control-label { + float: none; + width: auto; + padding-top: 0; + text-align: left; + margin-left: 10px; + } + + .form-horizontal.form-row-seperated .controls { + border-left: 0; + margin-left: 10px; + } + + .portlet .form-horizontal .form-actions { + padding-left: 10px; + } + + /*** + Hidden phone + ***/ + .hidden-480 { + display: none; + } + + /*** + Modal header close button fix + ***/ + .modal-header .close { + margin-top: 5px !important; + } + + /*** + Fix text view + ***/ + .control-group .controls .text { + display: block !important; + margin-bottom: 10px; + } +} + +@media (max-width: 320px) { + + .header .nav > li.dropdown .dropdown-toggle { + padding-left: 8px !important; + padding-right: 8px !important; + } + + /*** + Hidden phone + ***/ + .hidden-320 { + display: none; + } + + .header .brand { + width: 100px; + } +} \ No newline at end of file diff --git a/mall-master/src/main/resources/static/css/style.css b/mall-master/src/main/resources/static/css/style.css new file mode 100644 index 0000000..3068471 --- /dev/null +++ b/mall-master/src/main/resources/static/css/style.css @@ -0,0 +1,5314 @@ +/* +Template Name: Metronic - Responsive Admin Dashboard Template build with Twitter Bootstrap v2.3.1 +Version: 1.3 +Author: KeenThemes +Website: http://www.keenthemes.com/preview/?theme=metronic +Purchase: http://themeforest.net/item/metronic-responsive-admin-dashboard-template/4021469 +*/ + +/********************* + GENERAL UI COLORS +*********************/ + +/*** +Colors +blue: #4b8df8 +light blue: #bfd5fa +red: #e02222 +yellow: #ffb848 +green: #35aa47 +purple: #852b99 +grey: #555555; +light grey: #fafafa; +***/ + +/********************* + GENERAL RESET & SETUP +*********************/ + +/*** +Import fonts +***/ +@import url(../image/css); + +/*** +Reset and overrides +***/ +/* general body settings */ +body { + color: #000; + font-family: 'Microsoft Yahei'; + padding: 0px !important; + margin: 0px !important; + direction: ltr; +} + +/*** +General typography +***/ +h3 small, h4 small, h5 small { + color: #444; +} + +h1, h2, h3, h4, h5, h6 { + font-weight: 300; +} + +h1.block, h2.block, h3.block, h4.block, h5.block, h6.block { + padding-bottom: 10px; +} + +a { + text-shadow: none !important; + color: #0d638f; +} + +/*** +General backgrounds +***/ +.bg-blue { + background-image: none !important; + background-color: #4b8df8 !important; +} + +.bg-red { + background-image: none !important; + background-color: #e02222 !important; +} + +.bg-yellow { + background-image: none !important; + background-color: #ffb848 !important; +} + +.bg-green { + background-image: none !important; + background-color: #35aa47 !important; +} + +.bg-purple { + background-image: none !important; + background-color: #852b99 !important; +} + +.bg-grey { + background-image: none !important; + background-color: #555555 !important; +} + +/*** +Apply fix for font awesome icons. +***/ +[class^="icon-"], +[class*=" icon-"], +[class^="icon-"]:hover, +[class*=" icon-"]:hover { + background: none !important; +} + +/*** +Make font awesome icons fixed width(latest version issue) +***/ +li [class^="icon-"], +li [class*=" icon-"] { + display: inline-block; + width: 1.25em; + text-align: center; +} +li [class^="icon-"].icon-large, +li [class*=" icon-"].icon-large { + /* increased font size for icon-large */ + width: 1.5625em; +} + +/*** +Close icon used for modal dialog and other UI element close buttons +***/ +.close { + display: inline-block; + margin-top: 0px; + margin-right: 0px; + width: 9px; + height: 9px; + background-repeat: no-repeat !important; + background-image: url("../image/remove-icon-small.png") !important; +} + +/*** +ie8 & ie9 modes +***/ +.visible-ie8 { + display: none; +} + +.ie8 .visible-ie8 { + display: inherit !important; +} + +.visible-ie9 { + display: none; +} + +.ie9 .visible-ie9 { + display: inherit !important; +} + +.hidden-ie8 { + display: inherit; +} + +.ie8 .hidden-ie8 { + display: none !important; +} + +.hidden-ie9 { + display: inherit; +} + +.ie9 .hidden-ie9 { + display: none !important; +} + +/*** +Fix link outlines after click +***/ +a,a:focus, a:hover, a:active { + outline: 0; +} + +/*** +IE8 fix for form input height in fluid rows +***/ +.ie8 .row-fluid [class*="span"] { + min-height: 20px !important; +} + +/*** +Fix grid offset used for reponsive layout handling(refer app.js=>handleResponsive) +***/ +.fix-offset { + margin-left: 0px !important; +} + +/*** +Misc tools +***/ +.visible-ie8 { + display: none +} + +.no-padding { + padding: 0px !important; +} + +.no-margin { + margin: 0px !important; +} + +.no-bottom-space { + padding-bottom:0px !important; + margin-bottom: 0px !important; +} + +.no-top-space { + padding-top:0px !important; + margin-top: 0px !important; +} + +.space5 { + display: block; + height: 5px !important; + clear: both; +} + +.space7 { + height: 7px !important; + clear: both; +} + +.space10 { + height: 10px !important; + clear: both; +} + +.space12 { + height: 12px !important; + clear: both; +} + +.space15 { + height: 15px !important; + clear: both; +} + +.space20 { + height: 20px !important; + clear: both; +} + +.no-space { + margin: 0px !important; + padding: 0px !important; +} + +.no-text-shadow { + text-shadow: none !important; +} + +.no-left-padding { + padding-left: 0 !important; +} + +.no-left-margin { + margin-left: 0 !important; +} + +.margin-bottom-10 { + margin-bottom: 10px !important; +} + +.margin-top-10 { + margin-top: 10px !important; +} + +.margin-bottom-15 { + margin-bottom: 15px !important; +} + +.margin-bottom-20 { + margin-bottom: 20px !important; +} + +.margin-top-20 { + margin-top: 20px !important; +} + +.margin-bottom-25 { + margin-bottom: 25px !important; +} + +.hide { + display: none; +} + +.bold { + font-weight:600 !important; +} + +.fix-margin { + margin-left: 0px !important +} + +.border { + border: 1px solid #ddd +} + +.inline { + display: inline; +} + +hr { + margin: 20px 0; + border: 0; + border-top: 1px solid #E0DFDF; + border-bottom: 1px solid #FEFEFE; +} + +/******************** + GENERAL LAYOUT +*********************/ + +/*** +Header and header elements. +***/ + +.border { + border: 1px solid red; +} + +.header { + padding: 0 !important; + margin: 0 !important; +} + +.header.navbar-fixed-top { + z-index: 9995 !important; +} + +.header .brand { + display: inline-block; + margin-top: -1px; + margin-right: 0; + padding-left: 0; + padding-right: 0; + width: 225px; +} + +.header .brand img { + margin-left: 20px; +} + +.header .btn-navbar { + margin-bottom: 0px; + padding-right: 0px; + padding-top:10px; + padding-bottom: 6px; + background-image: none; + filter:none; + box-shadow: none; + color: #fff; + border: 0; +} + +.header .btn-navbar:hover { + text-decoration: none; +} + +.header .navbar-inner { + width: 100%; + margin-left: 0 0 0 110px; + border: 0px; + padding: 0px; + box-shadow: none; + height: 42px; +} + +.header .nav { + display: block; +} + +.header .nav > li { + margin: 0px; + padding: 0px; +} + +.header .nav > li.dropdown, +.header .nav > li.dropdown > a { + padding-left: 4px; + padding-right: 4px; +} + +.header .nav > li.dropdown > a:last-child { + padding-right: 0; +} + +.header .nav > li.dropdown:last-child { + padding-right: 2px; +} + +.header .nav > li.dropdown .dropdown-toggle { + margin: 0px; + padding: 15px 10px 7px 10px; +} + +.header .nav > li.dropdown .dropdown-toggle i { + font-size: 18px; +} + +.header .nav > li.dropdown.user .dropdown-toggle { + padding: 6px 4px 7px 9px; +} + +.header .nav > li.dropdown.user .dropdown-toggle:hover { + text-decoration: none; +} + +.header .nav > li.dropdown.user .dropdown-toggle .username { + color: #ddd; +} + +.header .nav li.dropdown.user .dropdown-toggle i { + display: inline-block; + margin-top: 5px; + margin: 0; + font-size: 16px; +} + +.header .nav > li.dropdown.user .dropdown-menu i { + width: 15px; + display: inline-block; +} + +.header .nav > li.dropdown .dropdown-toggle .badge { + position: absolute; + font-size: 11px !important; + font-weight: 300; + top: 8px; + right: 24px; + text-align: center; + height: 14px; + background-color: #e02222; + padding: 2px 6px 2px 6px; + -webkit-border-radius: 12px !important; + -moz-border-radius: 12px !important; + border-radius: 12px !important; + text-shadow:none !important; +} + +/* firefox hack for top bar badges */ +@-moz-document url-prefix() { + .header .nav li.dropdown .dropdown-toggle .badge { + padding: 1px 6px 3px 6px; + } +} + +.header .nav .dropdown-menu { + margin-top: 3px; +} + +/*** +Page container +***/ +.page-container { + margin: 0px; + padding: 0px; +} + +.page-header-fixed .page-container { + margin-top: 42px; +} + +/*** +Page sidebar +***/ + +/* ie8 fixes */ +.ie8 .page-sidebar { + position: absolute; + width: 225px; +} + +ul.page-sidebar-menu { + list-style: none; + margin: 0; + padding: 0; + margin: 0; + padding: 0; +} + +ul.page-sidebar-menu > li { + display: block; + margin: 0; + padding: 0; + border: 0px; +} + +ul.page-sidebar-menu > li.start > a { + border-top-color: transparent !important; +} + +ul.page-sidebar-menu > li:last-child > a, +ul.page-sidebar-menu > li.last > a { + border-bottom-color: transparent !important; +} + +ul.page-sidebar-menu > li > a { + display: block; + position: relative; + margin: 0; + border: 0px; + padding: 10px 15px; + text-decoration: none; + font-size: 14px; + font-weight: 300; +} + +.page-sidebar-fixed ul.page-sidebar-menu > li > a { + -webkit-transition: all 0.2s ease; + -moz-transition: all 0.2s ease; + -o-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +ul.page-sidebar-menu > li > a i { + font-size: 16px; + margin-right: 5px; + text-shadow:none; +} + +ul.page-sidebar-menu > li.break { + margin-bottom: 20px; +} + +ul.page-sidebar-menu > li.active > a { + border: none; + text-shadow:none; +} + +ul.page-sidebar-menu > li.active > a .selected { + display: block; + width: 8px; + height: 25px; + background-image: url("../image/sidebar-menu-arrow.png"); + float: right; + position: absolute; + right:0px; + top:8px; +} + +.page-sidebar ul > li > a > .arrow:before { + float: right; + margin-top: 1px; + margin-right: 5px; + display: inline; + font-size: 16px; + font-family: FontAwesome; + height: auto; + content: "\f104"; + font-weight: 300; + text-shadow:none; +} + +ul.page-sidebar-menu > li > a > .arrow.open:before { + float: right; + margin-top: 1px; + margin-right: 3px; + display: inline; + font-family: FontAwesome; + height: auto; + font-size: 16px; + content: "\f107"; + font-weight: 300; + text-shadow:none; +} + +ul.page-sidebar-menu > li > ul.sub-menu { + display: none; + list-style: none; + clear: both; + margin: 8px 0px 8px 0px; +} + +ul.page-sidebar-menu > li.active > ul.sub-menu { + display: block; +} + +ul.page-sidebar-menu > li > ul.sub-menu > li { + background: none; + margin: 0px; + padding: 0px; + margin-top: 1px !important; +} + +ul.page-sidebar-menu > li > ul.sub-menu > li > a { + display: block; + margin: 0px 0px 0px 0px; + padding: 5px 0px; + padding-left: 44px !important; + text-decoration: none; + font-size: 14px; + font-weight: 300; + background: none; +} + +/* 3rd level sub menu */ +ul.page-sidebar-menu > li > ul.sub-menu > li ul.sub-menu { + display: none; + list-style: none; + clear: both; + margin: 0px 0px 0px 0px; +} + +ul.page-sidebar-menu > li > ul.sub-menu li > a > .arrow:before { + float: right; + margin-top: 1px; + margin-right: 20px; + display: inline; + font-size: 16px; + font-family: FontAwesome; + height: auto; + content: "\f104"; + font-weight: 300; + text-shadow:none; +} + +ul.page-sidebar-menu > li > ul.sub-menu li > a > .arrow.open:before { + float: right; + margin-top: 1px; + margin-right: 18px; + display: inline; + font-family: FontAwesome; + height: auto; + font-size: 16px; + content: "\f107"; + font-weight: 300; + text-shadow:none; +} + +ul.page-sidebar-menu > li.active > ul.sub-menu > li.active ul.sub-menu { + display: block; +} + +ul.page-sidebar-menu > li > ul.sub-menu > li ul.sub-menu li { + background: none; + margin: 0px; + padding: 0px; + margin-top: 1px !important; +} + +ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li > a { + display: block; + margin: 0px 0px 0px 0px; + padding: 5px 0px; + text-decoration: none; + font-size: 14px; + font-weight: 300; + background: none; +} + +ul.page-sidebar-menu > li > ul.sub-menu > li > ul.sub-menu > li > a { + padding-left: 60px; +} + +ul.page-sidebar-menu > li > ul.sub-menu > li > ul.sub-menu > li > ul.sub-menu > li > a { + padding-left: 80px; +} + +ul.page-sidebar-menu > li.active > ul.sub-menu > li.active ul.sub-menu > li.active ul.sub-menu { + display: block; +} + + +ul.page-sidebar-menu > li > ul.sub-menu li > ul.sub-menu > li > a > i { + font-size: 13px; +} + +/* sidebar search */ + +.page-sidebar .sidebar-search { + margin: 8px 20px 20px 20px; +} + +.page-sidebar .sidebar-search .submit { + display: block; + float: right; + margin-top: 8px; + width: 13px; + height: 13px; + background-image: url(../image/search-icon.png); + background-repeat: no-repeat; +} + +.page-sidebar .sidebar-search input { + margin: 0px; + width: 165px; + border: 0px; + padding-left: 0px; + padding-right: 0px; + padding-bottom: 0px; + font-size: 14px ; + box-shadow: none; +} + +.page-sidebar .sidebar-search .input-box { + padding-bottom: 2px; +} + +/*** +Sidebar toggler(show/hide) +***/ + +.page-sidebar .sidebar-toggler { + cursor: pointer; + opacity: 0.5; + filter: alpha(opacity=50); + margin-top: 15px; + margin-left: 175px; + width: 29px; + height: 29px; + background-repeat: no-repeat; +} + +.sidebar-toggler:hover { + filter: alpha(opacity=100); + opacity: 1; +} + +.page-sidebar-closed .sidebar-toggler { + margin-left: 3px; +} + +.page-sidebar-closed .page-sidebar .sidebar-search { + height: 34px; + width: 29px; + margin-left: 3px; + margin-bottom: 15px !important; +} + +.page-sidebar-closed .page-sidebar .sidebar-search input { + display: none; +} + +.page-sidebar-closed .page-sidebar .sidebar-search .submit { + margin: 11px 7px !important; + display: block !important; +} + +.page-sidebar-closed .page-sidebar .sidebar-search .input-box { + border-bottom: 0 !important; +} + +.page-sidebar-closed .page-sidebar .sidebar-search.open { + height: 34px; + width: 255px; + overflow: hidden; +} + +.page-sidebar-closed .page-sidebar .sidebar-search.open input { + margin-top: 3px; + padding-left: 10px; + padding-bottom: 2px; + width: 180px; + display: inline-block !important; +} + +.page-sidebar-closed .page-sidebar .sidebar-search.open .submit { + display: inline-block; + width: 13px; + height: 13px; + margin: 10px 8px 9px 6px !important; +} + +.page-sidebar-closed .page-sidebar .sidebar-search.open .remove { + background-repeat: no-repeat; + width: 11px; + height: 11px; + margin: 11px 6px 7px 8px !important; + display: inline-block !important; + float: left !important; +} + +.page-sidebar-closed ul.page-sidebar-menu > li > a .selected { + right: -3px !important; +} + +.page-sidebar-closed ul.page-sidebar-menu > li > a > .title, +.page-sidebar-closed ul.page-sidebar-menu > li > a > .arrow { + display: none !important; +} + +.page-sidebar-closed .sidebar-toggler { + margin-right: 3px; +} + +.page-sidebar-closed .page-sidebar .sidebar-search { + margin-top: 6px; + margin-bottom: 6px; +} + +.page-sidebar-closed ul.page-sidebar-menu { + width: 35px !important; +} + +.page-sidebar-closed ul.page-sidebar-menu > li > a { + padding-left: 7px; +} + +.page-sidebar-fixed.page-sidebar-closed ul.page-sidebar-menu > li > a { + -webkit-transition: all 0.2s ease; + -moz-transition: all 0.2s ease; + -o-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.page-sidebar-closed ul.page-sidebar-menu > li:hover { + width: 225px !important; + position: relative !important; + z-index: 2000; + display: block !important; +} + +.page-sidebar-closed ul.page-sidebar-menu > li:hover .selected { + display: none; +} + +.page-sidebar-closed ul.page-sidebar-menu > li:hover > a > i { + margin-right: 10px; +} + +.page-sidebar-closed ul.page-sidebar-menu > li:hover .title { + display: inline !important; +} + +.page-sidebar-closed ul.page-sidebar-menu > li > .sub-menu { + display: none !important; +} + +.page-sidebar-closed ul.page-sidebar-menu > li:hover > .sub-menu { + width: 189px; + position: absolute; + z-index: 2000; + left: 36px; + margin-top: 0; + top: 100%; + display: block !important; +} + +.page-sidebar-closed ul.page-sidebar-menu > li:hover > .sub-menu > li > .sub-menu, +.page-sidebar-closed ul.page-sidebar-menu > li:hover > .sub-menu > li > .sub-menu > li > .sub-menu { + width: 189px; +} + +/* 2rd level sub menu*/ +.page-sidebar-closed ul.page-sidebar-menu > li:hover > .sub-menu > li > a { + padding-left: 15px !important; +} + +/* 3rd level sub menu*/ +.page-sidebar-closed ul.page-sidebar-menu > li > ul.sub-menu > li > .sub-menu > li > a { + padding-left: 30px !important; +} + +/* 4rd level sub menu*/ +.page-sidebar-closed ul.page-sidebar-menu > li > ul.sub-menu > li > .sub-menu > li > .sub-menu > li > a { + padding-left: 45px !important; +} + +/* sidebar container */ + +.page-sidebar-closed .page-sidebar { + width: 35px; +} + +.page-sidebar-closed .page-content { + margin-left: 35px !important; +} + + +/*** +Page content +***/ +.page-content { + margin-top: 0px; + padding: 0px; + background-color: #F2F2F2; +} + +.ie8 .page-content { + margin-left: 225px; + margin-top: 0px; + min-height: 760px; +} + +.ie8 .page-sidebar-fixed .page-content { + min-height: 600px; +} + +.ie8 .page-content.no-min-height { + min-height: auto; + } + +.page-full-width .page-content { + margin-left: 0px !important; +} + + +/*** +Page title +***/ +.page-title { + padding: 0px; + font-size: 30px; + letter-spacing: -1px; + display: block; + color: #666; + margin: 20px 0px 15px 0px; + font-weight: 300; + font-family: 'Open Sans'; +} + +.page-title small { + font-size: 14px; + letter-spacing: 0px; + font-weight: 300; + color: #888; +} + +/*** +Page breadcrumb +***/ +.page-content .breadcrumb { + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; + box-shadow: none; + padding-right: 0px; + padding-left: 8px; + margin-bottom: 25px; + border:0px !important; + background-color: #eee; +} + +.page-content .breadcrumb a, +.page-content .breadcrumb i, +.page-content .breadcrumb span { + color: #333; + font-size: 14px; + text-shadow:none; +} + +.page-content .breadcrumb i { + color: #666; +} + +/*** +Dashboard date range panel +***/ +.page-content .breadcrumb .dashboard-date-range { + display: none; + padding-top: -1px; + margin-right: 0px; + margin-top: -8px; + padding: 8px; + padding-bottom: 7px; + cursor: pointer; + color: #fff; + background-color: #e02222; +} + +.page-content .breadcrumb .dashboard-date-range span { + font-size: 12px; + font-weight: 300; + color: #fff; + text-transform: uppercase; +} + +.page-content .breadcrumb .dashboard-date-range .icon-calendar { + text-transform: normal; + color: #fff; + margin-top: 0px; + font-size: 14px; +} +.page-content .breadcrumb .dashboard-date-range span { + font-weight: normal; +} +.page-content .breadcrumb .dashboard-date-range .icon-angle-down { + color:#fff; + font-size: 16px; +} + +/*** +Footer +***/ +.footer { + padding: 8px 20px 5px 20px; + font-size: 12px; +} + +.footer:after, +.footer:before { + content: ""; + display: table; + line-height: 0; +} + +.footer:after { + clear: both; +} + +.footer .footer-inner { + float: left; + display: inline-block; +} + +.footer .footer-tools { + float: right; + display: inline-block; +} + +.footer .footer-tools .go-top { + display: block; + text-decoration: none; + cursor: pointer; + margin-top: -2px; + margin-right: 0px; + margin-bottom: 0px; + font-size: 16px; + padding: 0px 6px 0px 6px; +} + +.footer .footer-tools .go-top i { + font-size: 22px; + margin-bottom: 5px; +} + +/* begin: fixed footer */ +.page-footer-fixed .footer { + position: fixed; + left: 0; + right: 0; + z-index: 10000; + bottom: 0; +} + +.page-footer-fixed .page-container { + margin-bottom: 33px; +} + +.page-footer-fixed.page-sidebar-fixed .footer { + margin-left: 0 !important; +} +/* end: fixed footer */ + +/******************** + GENERAL UI ELEMENTS +*********************/ + +/*** +Icon stuff +***/ +i.icon, a.icon { + color: #999; + margin-right: 5px; + font-weight: normal; + font-size: 13px; +} + +i.icon-black { + color: #000 !important; +} + +a.icon:hover { + text-decoration: none; + -webkit-transition: all 0.1s ease-in-out; + -moz-transition: all 0.1s ease-in-out; + -o-transition: all 0.1s ease-in-out; + -ms-transition: all 0.1s ease-in-out; + transition: all 0.1s ease-in-out; + opacity: .4; + filter:alpha(opacity=40); +} + +a.icon.huge i{ + font-size: 16px !important; +} + +i.big { + font-size: 20px; +} + +i.warning { + color: #d12610; +} + +i.critical { + color: #37b7f3; +} + +i.normal { + color: #52e136; +} + +/*** +Custom wells +***/ +.well { + background-color: #fafafa; + border: 1px solid #eee; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + box-shadow: none !important; +} + +.well.mini { + padding: 7px !important; +} + +/*** +Form stuff +***/ +.form-section { + margin: 15px 0px 20px 0px !important; + padding-bottom: 5px; + border-bottom: 1px solid #eee; +} + +.form form { + margin: 0px !important; + padding: 0px !important; +} + +.no-bottom-space { + padding-bottom: 0px !important; + margin-bottom: 0px !important; +} + +.form .form-actions{ + margin-top: 0px !important; + margin-top: 40px; + padding-left: 190px; +} + +.portlet.box .form .form-actions, +.portlet.solid .form .form-actions { + margin-left:-10px !important; + margin-right:-10px !important; + margin-bottom: -10px !important; +} + +/*** +Bordered form layout +***/ + +/*** +Input icons +***/ +/* input with right aligned and colored icons */ +.input-icon input { + padding-right: 25px !important; +} + +.input-icon .input-info, +.input-icon .input-error, +.input-icon .input-warning, +.input-icon .input-success { + display: inline-block !important; + position: relative !important; + top: 7px; + right: 25px !important; + font-size: 16px; +} + +.input-icon .input-info { + color:#27a9e3; +} +.input-icon .input-error { + color:#B94A48; +} +.input-icon .input-warning { + color: #C09853; +} +.input-icon .input-success { + color: #468847; +} + +/* input with left aligned icons */ +.input-icon.left i { + color: #ccc; + display: block !important; + position: absolute !important; + z-index: 1; + margin: 9px 2px 4px 10px; + width: 16px; + height: 16px; + font-size: 16px; + text-align: center; +} + +.input-icon.left input { + padding-left: 33px !important; +} + +/*** +Portlets +***/ +.portlet { + clear: both; + margin-top: 0px; + margin-bottom: 25px; + padding: 0px; +} + +.portlet-title { + margin-bottom: 15px; + border-bottom: 1px solid #eee; +} + +.portlet-title:after, +.portlet-title:before { + content: ""; + display: table; + line-height: 0; +} + +.portlet-title:after { + clear: both; +} + +.portlet-title .caption { + float: left; + display: inline-block; + font-size: 18px; + font-weight: 400; + margin: 0; + padding: 0; + margin-bottom: 7px; +} + +.portlet-title .caption i { + float: left; + margin-top: 5px; + display: inline-block !important; + font-size: 13px; + margin-right: 5px; + color: #666; +} + +.portlet.blue > .portlet-title .caption, .portlet-title.blue .caption, +.portlet.green > .portlet-title .caption, .portlet-title.green .caption, +.portlet.yellow > .portlet-title .caption, .portlet-title.yellow .caption, +.portlet.red > .portlet-title .caption, .portlet-title.red .caption, +.portlet.purple > .portlet-title .caption, .portlet-title.purple .caption, +.portlet.grey > .portlet-title .caption, .portlet-title.dark-grey .caption, { + color: #fff +} + +.portlet.box.blue > .portlet-title .caption > i, +.portlet.box.green > .portlet-title .caption > i, +.portlet.box.grey > .portlet-title .caption > i, +.portlet.box.yellow > .portlet-title .caption > i, +.portlet.box.red > .portlet-title .caption > i, +.portlet.box.purple > .portlet-title .caption > i, +.portlet.box.light-grey > .portlet-title .caption > i{ + color: #fff; +} + +.sortable .portlet .portlet-title { + cursor: move; +} + +.portlet-title .tools, +.portlet-title .actions + { + display: inline-block; + padding: 0; + margin: 0; + margin-top: 6px; + float: right; +} + +.portlet-title .tools > a { + display: inline-block; + height: 16px; + margin-left:5px; +} + +.portlet-title .dropdown-menu i { + color: #000 !important; +} + +.portlet-title .tools > a.remove { + background-image:url(../image/portlet-remove-icon.png); + background-repeat: no-repeat; + width: 11px; +} + +.portlet-title .tools > a.config { + background-image:url(../image/portlet-config-icon.png); + background-repeat: no-repeat; + width: 12px; +} + +.portlet-title .tools > a.reload { + background-image:url(../image/portlet-reload-icon.png); + width: 13px; +} + +.portlet-title .tools > a.expand { + background-image:url(../image/portlet-expand-icon.png); + width: 14px; +} + +.portlet-title .tools > a.collapse { + background-image:url(../image/portlet-collapse-icon.png); + width: 14px; +} + +.portlet-title .tools > a:hover { + text-decoration: none; + -webkit-transition: all 0.1s ease-in-out; + -moz-transition: all 0.1s ease-in-out; + -o-transition: all 0.1s ease-in-out; + -ms-transition: all 0.1s ease-in-out; + transition: all 0.1s ease-in-out; + opacity:.6; + filter:'alpha(opacity=60)'; +} + +.portlet-title .actions > .btn-group { + margin-top: -12px; +} + +.portlet-title .actions > .btn { + padding: 4px 10px; + margin-top: -13px; +} + +.portlet-title .actions > .btn-group > .btn { + padding: 4px 10px; + margin-top: -1px; +} + +.portlet-title .actions > .btn.mini { + margin-top: -12px; + padding: 4px 10px; +} + +.portlet-title .pagination.pagination-small { + float: right !important; + display: inline-block !important; + margin: 0px; + margin-top: -2px; +} + +.portlet-body { + clear: both; + padding: 0; +} + +.portlet-body.light-blue, .portlet.light-blue { + background-color: #bfd5fa !important; +} + +.portlet-body.blue, .portlet.blue { + background-color: #4b8df8 !important; +} + +.portlet-body.red, .portlet.red { + background-color: #e02222 !important; +} + +.portlet-body.yellow, .portlet.yellow { + background-color: #ffb848 !important; +} + +.portlet-body.green, .portlet.green { + background-color: #35aa47 !important; +} + +.portlet-body.purple, .portlet.purple { + background-color: #852b99 !important; +} + +.portlet-body.light-grey, .portlet.light-grey { + background-color: #fafafa !important; +} + +.portlet-body.dark-grey, .portlet.dark-grey { + background-color: #555555 !important; +} + +.portlet-body .btn-toolbar { + margin: 0px !important; + padding: 0px !important; +} + +.portlet-body .btn-group { + margin: 0px !important; + padding: 0px !important; + margin-bottom: 10px !important; +} + +/* draggable girds */ + +.ui-sortable-placeholder { + border: 1px dotted black; + visibility: visible !important; + height: 100% !important; +} + +.ui-sortable-placeholder * { + visibility: hidden; +} + +.sortable-box-placeholder { + background-color: #f5f5f5; + border: 1px dashed #DDDDDD; + display: block; + /* float: left;*/ + margin-top: 0px !important; + margin-bottom: 24px !important; +} + +.sortable-box-placeholder * { + visibility:hidden; +} + +/*** +Solid colored portlet +***/ +.portlet.solid { + padding: 10px; +} + +.portlet.solid .portlet-title .tools { + margin-top: 2px; + border: 0px; +} + +.portlet.solid .portlet-title { + margin-bottom: 5px; + border: 0px; +} + +.portlet.solid.bordered .portlet-title { + margin-bottom: 15px; +} + +.portlet.solid.red .portlet-title, +.portlet.solid.red .portlet-title i, +.portlet.solid.red .portlet-body, + +.portlet.solid.green .portlet-title, +.portlet.solid.green .portlet-title i, +.portlet.solid.green .portlet-body, + +.portlet.solid.yellow .portlet-title, +.portlet.solid.yellow .portlet-title i, +.portlet.solid.yellow .portlet-body, + +.portlet.solid.grey .portlet-title, +.portlet.solid.grey .portlet-title i, +.portlet.solid.grey .portlet-body, + +.portlet.solid.purple .portlet-title, +.portlet.solid.purple .portlet-title i, +.portlet.solid.purple .portlet-body, + +.portlet.solid.blue .portlet-title, +.portlet.solid.blue .portlet-title i, +.portlet.solid.blue .portlet-body { + border: 0; + color: #fff; +} + +.portlet.bordered { + border-left: 2px solid #ddd; +} + +/*** +Box portlet +***/ + + +.portlet.box { + padding:0px !important +} + +.portlet.box .portlet-title { + padding:8px 10px 2px 10px; + border-bottom: 1px solid #eee; + color: #fff !important; +} + +.portlet.box .portlet-title > .actions > .btn > i { + color: #fff !important; +} + +.portlet.box .portlet-title .tools { + margin-top: 3px; +} + +.portlet.box .portlet-title .tools > a.remove, +.portlet.solid .portlet-title .tools > a.remove { + background-image:url(../image/portlet-remove-icon-white.png); +} + +.portlet.box .portlet-title .tools > a.config, +.portlet.solid .portlet-title .tools > a.config { + background-image:url(../image/portlet-config-icon-white.png); +} + +.portlet.box .portlet-title .tools > a.reload, +.portlet.solid .portlet-title .tools > a.reload { + background-image:url(../image/portlet-reload-icon-white.png); +} + +.portlet.box .portlet-title .tools > a.expand, +.portlet.solid .portlet-title .tools > a.expand { + background-image:url(../image/portlet-expand-icon-white.png); +} + +.portlet.box .portlet-title .tools > a.collapse, +.portlet.solid .portlet-title .tools > a.collapse { + background-image:url(../image/portlet-collapse-icon-white.png); +} + +/* portlet buttons */ +.portlet.box .portlet-body { + background-color: #fff; + padding: 10px; +} + +.portlet.box .portlet-title { + margin-bottom: 0px; +} + +.portlet.box.blue .portlet-title { + background-color: #4b8df8; +} + +.portlet.box.blue { + border: 1px solid #b4cef8; + border-top: 0; +} + +.portlet.box.red .portlet-title { + background-color: #e02222; +} + +.portlet.box.red { + border: 1px solid #ef8476; + border-top: 0; +} + +.portlet.box.yellow .portlet-title { + background-color: #ffb848; +} + +.portlet.box.yellow { + border: 1px solid #fccb7e; + border-top: 0; +} + +.portlet.box.green .portlet-title { + background-color: #35aa47; +} + +.portlet.box.green { + border: 1px solid #77e588; + border-top: 0; +} + +.portlet.box.purple .portlet-title { + background-color: #852b99; +} + +.portlet.box.purple { + border: 1px solid #af5cc1; + border-top: 0; +} + +.portlet.box.grey .portlet-title { + background-color: #555555; +} + +.portlet.box.grey { + border: 1px solid #9d9c9c; + border-top: 0; +} + +.portlet.box.light-grey .portlet-title { + background-color: #aaa; +} + +.portlet.box.light-grey { + border: 1px solid #eee; + border-top: 0; +} + +/*** +Charts and statistics +***/ +.chart, .pie, .bars { + overflow: hidden; + height: 300px; +} + +/*** +Statistic lists +***/ +.item-list.table .percent { + width: 30px; + float: right; + margin-right: 10px; + margin-top: 3px; +} + +.item-list.table .title { + padding-top: -5px; +} + +/*** +Chart tooltips +***/ +.chart-tooltip { + clear: both; + z-index: 100; + background-color: #736e6e !important; + padding: 5px !important; + color: #fff; +} + +.chart-tooltip .label { + clear: both; +} + +/*** +Mini chart containers +***/ +.bar-chart { + display: none +} + +.line-chart { + display: none +} + +/*** +Custom icon buttons +***/ +.icon-btn { + height: 70px; + width: 50px; + margin: 10px 0px 10px 0px; + border: 1px solid #ddd; + padding: 16px 0px 0px 0px; + background-color: #fafafa !important; + background-image: none !important; + filter:none !important; + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + box-shadow: none !important; + display:block !important; + color: #646464 !important; + text-shadow: none !important; + text-align: center; + cursor: pointer; + position: relative; + -webkit-transition: all 0.3s ease !important; + -moz-transition: all 0.3s ease !important; + -ms-transition: all 0.3s ease !important; + -o-transition: all 0.3s ease !important; + transition: all 0.3s ease !important; +} + +.ie8 .icon-btn:hover { + filter: none !important; +} + +.icon-btn:hover { + text-decoration: none !important; + border-color: #999 !important; + color: #444 !important; + text-shadow: 0 1px 0px rgba(255, 255, 255, 1) !important; + -webkit-transition: all 0.3s ease !important; + -moz-transition: all 0.3s ease !important; + -ms-transition: all 0.3s ease !important; + -o-transition: all 0.3s ease !important; + transition: all 0.3s ease !important; + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + box-shadow: none !important; +} + +.icon-btn:hover .badge { + -webkit-transition: all 0.3s ease !important; + -moz-transition: all 0.3s ease !important; + -ms-transition: all 0.3s ease !important; + -o-transition: all 0.3s ease !important; + transition: all 0.3s ease !important; + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + box-shadow: none !important; +} + +.icon-btn i { + font-size: 20px !important; + color: #777 !important; +} + +.icon-btn .glyphicons { + padding: 0px; +} + +.icon-btn .glyphicons i:before { + font-size: 20px !important; + color: #777 !important; +} + +.icon-btn div { + font-family: 'Open Sans'; + margin-top: 5px; + margin-bottom: 20px; + color: #000; + font-size: 11px; + font-weight: 300; +} + +.icon-btn .badge { + position: absolute; + font-family: 'Open Sans'; + font-size: 11px !important; + font-weight: 300; + top: -5px; + right: -5px; + padding: 3px 7px 3px 7px; + color: white !important; + text-shadow: none; + border-width: 0; + border-style: solid; + -webkit-border-radius: 12px !important; + -moz-border-radius: 12px !important; + border-radius: 12px !important; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +/* for firefox only */ +@-moz-document url-prefix() { + .icon-btn .badge { + padding: 2px 7px 4px 7px; + } +} + +/* extended dropdowns */ +.dropdown-menu.extended { + min-width: 160px !important; + max-width: 300px !important; + width: 233px !important; + background-color: #ffffff !important; +} + +.dropdown-menu.extended:before, +.dropdown-menu.extended:after { + border-bottom-color: #ddd !important; +} + + +.dropdown-menu.extended li a{ + display: block; + padding: 5px 10px !important; + clear: both; + font-weight: normal; + line-height: 20px; + white-space: normal !important; +} + +.dropdown-menu.extended li i{ + margin-right: 3px; +} + +.dropdown-menu.extended li a{ + font-size: 13px; + padding: 10px !important; + background-color: #ffffff; +} + +.dropdown-menu.extended li a:hover { + background-image: none; + background-color: #f5f5f5; + color: #000; + filter:none; +} + +.dropdown-menu.extended li p{ + padding: 10px; + background-color: #eee; + margin: 0px; + font-size: 14px; + font-weight: 300; + color: #000; +} + +.dropdown-menu.extended li a{ + padding: 7px 0 5px 0px; + list-style: none; + border-bottom: 1px solid #f4f4f4 !important; + font-size: 12px; + text-shadow: none; +} + +.dropdown-menu.extended li:first-child a { + border-top: none; + border-bottom: 1px solid #f4f4f4 !important; +} + +.dropdown-menu.extended li:last-child a { + border-top: 1px solid white !important; + border-bottom: 1px solid #f4f4f4 !important; +} + +.dropdown-menu.extended li.external > a { + font-size: 13px; + font-weight: 400; +} + +.dropdown-menu.extended li.external > a > i{ + margin-top: 3px; + float: right; +} + +/* header notifications dropdowns */ + +.dropdown-menu.notification li > a > .label { + width: 10px; + padding: 2px 4px; + margin-right: 2px; + text-align: center !important; +} + +.dropdown-menu.notification li > a > .label i { + text-align: center !important; +} + +.dropdown-menu.notification li a .time { + font-size: 12px; + font-style: italic; + font-weight: 600; + text-align: right; +} + +/* header inbox dropdowns */ +.dropdown-menu.inbox li a .photo img { + float: left; + height: 40px; + width: 40px; + margin-right: 6px; +} + +.dropdown-menu.inbox li a .subject { + display: block; +} + +.dropdown-menu.inbox li a .subject .from { + font-size: 14px; + font-weight: 400; + color: #02689b; +} + +.dropdown-menu.inbox li a .subject .time { + font-size: 12px; + font-weight: 600; + font-style: italic; + position: absolute; + right: 10px; +} + +.dropdown-menu.inbox li a .message { + display: block !important; + font-size: 12px; +} + +/* header tasks */ +.dropdown-menu.tasks .task { + margin-bottom: 5px; +} + +.dropdown-menu.tasks .task .desc { + font-size: 13px; + font-weight: 300; +} + +.dropdown-menu.tasks .task .percent { + font-size: 13px; + font-weight: 600; + float: right; + display: inline-block; +} + +.dropdown-menu.tasks .progress { + display: block; + height: 10px; + margin: 0px; +} + +/*** +General list for item with image +***/ +.item-list li .img { + height: 50px; + width: 50px; + float: left; + margin-top: 3px; + margin-right: 5px; +} + +.item-list { + margin: 0px; + list-style: none; +} + +.item-list li { + padding: 7px 0 5px 0px; + list-style: none; + border-top: 1px solid white; + border-bottom: 1px solid #EBEBEB; + font-size: 12px; +} + +.item-list li:first-child { + border-top: none; + border-bottom: 1px solid #EBEBEB; +} + +.item-list li:last-child { + border-top: none; + border-bottom: none; +} + +.item-list li .label { + margin-right: 5px; +} + +.item-list.todo li .label { + position: absolute; + right: 80px; +} + +.item-list.todo li .actions { + position: absolute; + right: 45px; +} + +/*** +Custom tables +***/ +.table.table-full-width { + width: 100% !important; +} + +.table .m-btn { + margin-top: 0px; + margin-left: 0px; + margin-right: 5px; +} + +.table thead tr th { + font-size: 14px; + font-weight: 600; +} + +.table-advance { + margin-bottom: 10px !important; +} + +.table-advance thead { + color: #999; +} + +.table-advance thead tr th{ + background-color: #DDD; + font-size: 14px; + font-weight: 400; + color: #666; +} + +.table-advance div.success, +.table-advance div.info, +.table-advance div.important, +.table-advance div.warning, +.table-advance div.danger { + position: absolute; + margin-top:-5px; + float: left; + width: 2px; + height: 30px; + margin-right: 20px !important; +} + +.table-advance tr td { + border-left-width: 0px; +} +.table-advance tr td:first-child { + border-left-width: 1px !important; +} + +.table-advance tr td.highlight:first-child a { + margin-left: 15px; +} + +.table-advance td.highlight div.success { + border-left: 2px solid #66ee66; +} + +.table-advance td.highlight div.info { + border-left: 2px solid #87ceeb; +} + +.table-advance td.highlight div.important { + border-left: 2px solid #f02c71; +} + +.table-advance td.highlight div.warning { + border-left: 2px solid #fdbb39; +} + +.table-advance td.highlight div.danger { + border-left: 2px solid #e23e29; +} + + +/*** +Star rating +***/ +.rating { + unicode-bidi: bidi-override; + direction: rtl; + font-size: 30px; +} + +.rating span.star { + font-family: FontAwesome; + font-weight: normal; + font-style: normal; + display: inline-block; +} + +.rating span.star:hover { + cursor: pointer; +} + +.rating span.star:before { + content: "\f006"; + padding-right: 5px; + color: #999999; +} + +.rating span.star:hover:before, +.rating span.star:hover ~ span.star:before { + content: "\f005"; + color: #e3cf7a; +} + +/*** +Rows seperated form layout +***/ +.form-row-seperated .control-group { + border-bottom: 1px solid #efefef; + padding-bottom: 10px; + padding-right: 10px; + margin-bottom: 10px; + margin-left: -10px; + margin-right: -10px; +} + +.form-row-seperated .control-group.last { + border-bottom: 0; +} + +.form-row-seperated .control-label { + width: 170px; +} + +.form-row-seperated .controls { + margin-left: 190px; +} + +.form-row-seperated .help-inline, +.form-row-seperated .help-block { + padding-left: 0; +} + +/*** +Bordered form layout +***/ +.form-horizontal.form-bordered .control-group:first-child { + border-bottom: 1px solid #eee !important; +} + +.form-horizontal.form-bordered .control-group { + margin: 0; + padding: 0; + border-bottom: 1px solid #eee; +} + +.form-horizontal.form-bordered .control-group.last { + border-bottom: 0; +} + +.portlet.box .form-horizontal.form-bordered .control-group { + margin-left: -10px; + margin-right: -10px; +} + +.portlet.box .form-horizontal.form-bordered .control-group:first-child { + margin-top: -10px; +} + +.form-horizontal.form-bordered .control-group .controls { + padding: 10px; + position: relative; + border-left: 1px solid #eee; +} + +.form-horizontal.form-bordered .control-group .controls .chosen-container, +.form-horizontal.form-bordered .control-group .controls .select2-wrapper { + min-height: 32px; +} + +.form-horizontal.form-bordered .control-group .controls .chosen-container .help-block, +.form-horizontal.form-bordered .control-group .controls .select2-wrapper .help-block { + clear: both; + padding-top: 10px !important; +} + +.form-horizontal.form-bordered .control-group .control-label { + margin-top: 10px; +} + +.form-horizontal.form-bordered.form-row-stripped .control-group:nth-child(even) { + background-color: #fcfcfc; +} + +.form-horizontal.form-bordered.form-label-stripped .control-group:nth-child(even) { + background-color: #fcfcfc; +} + +.form-horizontal.form-bordered.form-row-stripped .m-wrap { + background: #fff !important; +} + +.form-horizontal.form-bordered.form-label-stripped .control-group:nth-child(even) .controls { + background-color: #ffffff; +} + +.form-horizontal.form-bordered .help-inline, +.form-horizontal.form-bordered .help-block { + padding-left: 0; +} + +/*** +Uniform plugin css changes +***/ + +.radio, .checkbox { + padding-left: 0px !important; +} + +.checkbox .checker { + margin-top: -2px !important; + margin-right: 2px !important; +} + +.controls .text { + display: block; + margin-top: 7px; + font-weight: 400; + font-size: 14px; +} + +.controls .text-inline { + display: inline-block; + margin-top: 8px; + font-weight: 400; + font-size: 14px; +} + + +/* used for non horizontal forms */ +.controls-uniform { + margin-top: -7px; +} + +/*** +General forms settings +***/ +input.placeholder, +textarea.placeholder { + color: #aaa !important; +} + +.help-block { + margin-top: 0px; +} + +.form-inline input { + margin-bottom: 0px !important; +} + +.control-label { + margin-top: 2px; +} + +.control-label .required { + color: #e02222; + font-size: 12px; + padding-left: 2px; +} + +.validate-inline { + display: inline-block; + *display: inline; + padding-left: 5px; + vertical-align: middle; + *zoom: 1; + margin-top: 6px; +} + +.control-group.success .validate-inline { + color: #468847; +} + +.control-group.info .validate-inline { + color: #3a87ad; +} + +.control-group.error .validate-inline { + color: #b94a48; +} + +.control-group.warning .validate-inline { + color: #c09853; +} + +.help-inline { + margin-top: 6px; +} + +.help-small { + font-size: 12px; + padding-top: 0; + margin-top: 0; + margin-bottom: 0; + padding-bottom: 0; +} + +.success .validate-inline.ok:before, +.success .help-inline.ok:before { + content: "\f00c"; + font-size: 16px; + font-family: FontAwesome; + font-weight: normal; + font-style: normal; + display: inline-block; +} + + +form legend, +.form-view legend { + margin-bottom: 15px !important; +} + +.controls > .radio .checker, +.controls > .checkbox .checker { + margin-right: 2px !important; +} + +.controls > .radio, +.controls > .checkbox { + display: inline-block; + padding: 0 !important; + margin: 0 !important; + margin-top: 8px !important; + margin-right: 15px !important; +} + +.controls > .radio.line, +.controls > .checkbox.line { + display: block; + padding: 0 !important; + margin: 0 !important; + margin-top: 5px !important; +} + +.controls .inline { + margin-top: 8px; +} + +.form-view .control-group { + margin-top: 0px; + margin-bottom: 5px; +} + +.uploader { + margin-top: 2px !important; +} + +/*** +Item block with details shown on hover +***/ +.item { + overflow: hidden; + display: block; + margin-bottom: 20px; +} + +.item .details { + width: 100%; + display: none; + background-color: #000; + color: #fff !important; + padding: 5px; + text-align: center; + position: relative; + bottom:30px; + margin-bottom:-30px; + overflow: hidden; + z-index: 6; +} + +.item:hover .details { + display: block; + opacity: 0.7; + filter: alpha(opacity = 70); +} + +.item:hover .zoom-icon{ + opacity:0.5; + filter: alpha(opacity = 50); +} + +/*** +Zoom icon overlay on images +***/ +.zoom { + cursor: pointer; + width: 100%; + height: 100%; + position: relative; + z-index: 5; +} + +.zoom .zoom-icon { + background-image:url("../image/overlay-icon.png"); + background-color: #222; + background-repeat: no-repeat; + background-position: 50%; + position: absolute; + width: inherit; + height: inherit; + opacity: 0; + filter: alpha(opacity = 0); + z-index: 6; + top:0; +} + +/*** +Chats +***/ +.chats { + margin:0; + padding: 0; + margin-top: -15px; +} + +.chats li { + list-style: none; + padding: 5px 0; + margin: 10px auto; + font-size: 12px; +} + +.chats li img.avatar { + height: 45px; + width: 45px; + -webkit-border-radius: 50% !important; + -moz-border-radius: 50% !important; + border-radius: 50% !important; +} + +.chats li.in img.avatar { + float: left; + margin-right: 10px; +} + +.chats li .name { + color:#3590c1; + font-size: 13px; + font-weight: 400; +} + +.chats li .datetime { + color:#333; + font-size: 13px; + font-weight: 400; +} + +.chats li.out img.avatar { + float: right; + margin-left: 10px; +} + +.chats li .message { + display: block; + padding: 5px; + position: relative; +} + +.chats li.in .message { + text-align: left; + border-left: 2px solid #35aa47; + margin-left: 65px; + background: #fafafa +} + +.chats li.in .message .arrow { + display: block; + position: absolute; + top: 5px; + left: -8px; + width: 0; + height: 0; + + border-top: 8px solid transparent; + border-bottom: 8px solid transparent; + border-right: 8px solid #35aa47; +} + +.chats li.out .message .arrow { + display: block; + position: absolute; + top: 5px; + right: -8px; + border-top: 8px solid transparent; + border-bottom: 8px solid transparent; + border-left: 8px solid #da4a38; +} + +.chats li.out .message { + border-right: 2px solid #da4a38; + margin-right: 65px; + background: #fafafa; + text-align: right; +} + +.chats li.out .name, +.chats li.out .datetime { + text-align: right; +} + +.chats li .message .body { + display: block; +} + +.chat-form { + margin-top: 15px; + padding: 10px; + background-color: #e9eff3; + overflow: hidden; + clear: both; +} + +.chat-form .input-cont { + margin-right: 55px; +} + +.chat-form .input-cont .m-wrap { + margin-bottom: 0px; +} + +.chat-form .input-cont input{ + border: 1px solid #ddd; + width: 100%; + margin-top: 0; +} + +.chat-form .input-cont input { + background-color: #fff !important; +} + +.chat-form .input-cont input:focus{ + border: 1px solid #4b8df9 !important; +} + +.chat-form .btn-cont { + margin-top: -42px; + position: relative; + float: right; + width:44px; +} + +.chat-form .btn-cont .arrow { + position: absolute; + top: 17px; + right: 43px; + border-top: 8px solid transparent; + border-bottom: 8px solid transparent; + border-right: 8px solid #4d90fe; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.chat-form .btn-cont:hover .arrow { + border-right-color: #0362fd; +} + +.chat-form .btn-cont:hover .btn { + background-color: #0362fd; +} + +.chat-form .btn-cont .btn { + margin-top: 8px; +} + +/*** +System feeds +***/ +.feeds { + margin: 0px; + padding: 0px; + list-style: none; +} + +.feeds li { + background-color: #fafafa; + margin-bottom: 7px; +} + +.feeds li:before, +.feeds li:after { + display: table; + line-height: 0; + content: ""; +} + +.feeds li:after { + clear: both; +} + +.feeds .col1 { + float:left; + width:100%; + clear: both; +} + +.feeds .col2 { + float:left; + width:75px; + margin-left:-75px; +} + +.feeds .col1 .cont { + float:left; + margin-right:75px; + overflow:hidden; +} + +.feeds .col1 .cont .cont-col1 { + float:left; + margin-right:-100%; +} + +.feeds .col1 .cont .cont-col1 .label { + float: left; + width: 14px; + padding: 7px; +} + +.feeds .col1 .cont .cont-col2 { + float:left; + width:100%; +} + +.feeds .col1 .cont .cont-col2 .desc { + margin-left:35px; + padding-top: 4px; + padding-bottom: 4px; + overflow:hidden; +} + +.feeds .col2 .date { + padding: 4px 9px 4px 4px; + text-align: right; + font-style: italic; + color:#c1cbd0; +} + +/*** +Users +***/ +.user-info { + margin-bottom: 10px !important; +} + +.user-info img { + float: left; + margin-right: 5px; +} + +.user-info .details { + display: inline-block; +} + +.user-info .label { + font-weight: 300; + font-size: 11px; +} + +/*** +Accordions +***/ +.accordion-heading { + background:#eee; +} + +.accordion-heading a { + text-decoration:none; +} + +.accordion-heading a:hover { + text-decoration:none; +} + +/*** +Vertical inline menu +***/ +.ver-inline-menu { + margin: 0px; + list-style: none; +} + +.ver-inline-menu li { + position:relative; + margin-bottom:1px; +} + +.ver-inline-menu li i { + color:#b9cbd5; + font-size:15px; + padding:11px 9px; + margin:0 8px 0 0; + background:#e0eaf0 !important; +} + +.ver-inline-menu li a { + font-size: 13px; + color:#557386; + display:block; + background:#f0f6fa; + border-left:solid 2px #c4d5df; +} + +.ver-inline-menu li:hover a, +.ver-inline-menu li:hover i { + background:#e0eaf0; + text-decoration:none; +} + +.ver-inline-menu li:hover i { + color:#fff; + background:#c4d5df !important; +} + +.ver-inline-menu li.active a, +.ver-inline-menu li:hover a { + font-size: 13px; +} + +.ver-inline-menu li.active a, +.ver-inline-menu li.active i { + color:#fff; + background:#169ef4; + text-decoration:none; + border-left:solid 1px #0c91e5; +} + +.ver-inline-menu li.active i { + background:#0c91e5 !important; +} + +.ver-inline-menu li.active:after { + content: ''; + display: inline-block; + border-bottom: 6px solid transparent; + border-top: 6px solid transparent; + border-left: 6px solid #169ef4; + position: absolute; + top: 12px; + right: -5px; +} + +/*** +Custom tabs +***/ +.tab-content { + padding: 0px; + overflow: hidden; +} + +.tabbable-custom { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + margin-bottom: 15px; +} + +.widget .row-fluid:last-child .tabbable-custom { + margin-bottom: 0px; +} + +.tabbable-custom > .nav-tabs { + border: none; + margin: 0px; +} + +.tabbable-custom > .tab-content { + background-color: #fff; + border: 1px solid #ddd; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + padding: 10px; +} + +.tabbable-custom.boxless > .tab-content { + padding:15px 0; + border-left:none; + border-right:none; + border-bottom:none; +} + +.tabbable-custom .nav-tabs > li { + margin-right: 2px; + border-top: 2px solid transparent; +} + +.tabbable-custom .nav-tabs > li > a { + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px; + margin-right: 0; + padding: 5px 10px; + } + +.tabbable-custom .nav-tabs > li > a:hover { + background: none; + border-color:transparent; +} + +.tabbable-custom .nav-tabs > li.active { + border-top: 3px solid #d12610; + margin-top: 0; + position: relative; +} + +.tabbable-custom .nav-tabs > li.active > a { + border-top: none; + font-weight: 400; +} + +.tabbable-custom .nav-tabs > li.active > a:hover { + background: #fff; + border-color: #d4d4d4 #d4d4d4 transparent; +} + +.tabbable-custom .nav-tabs > li { + margin-right: 2px; + border-top: 2px solid transparent; +} + +.tabs-below.tabbable-custom .nav-tabs > li { + border-top: none; + border-bottom: 2px solid transparent; + margin-top: -1px; +} + +.tabs-below.tabbable-custom .nav-tabs > li.active { + border-top: none; + border-bottom: 3px solid #d12610; + margin-bottom: 0; position: relative; +} + +.tabs-below.tabbable-custom .nav-tabs > li.active > a { + border-bottom: none +} + +.tabs-below.tabbable-custom .nav-tabs > li.active > a:hover { + background: #fff; + border-color: #d4d4d4 #d4d4d4 transparent; +} + +.tabs-left.tabbable-custom .nav-tabs > li { + margin-right: 0; border-left: 2px solid transparent; margin-top: none; +} + +.tabs-left.tabbable-custom .nav-tabs > li.active { + border-top: none; + border-left: 3px solid #d12610; + margin-top: 0; margin-right: -1px; position: relative; +} + +.tabs-left.tabbable-custom .nav-tabs > li.active > a { + border-top: 1px solid #d4d4d4; + border-left: 1px solid transparent; +} + +.tabs-left.tabbable-custom .nav-tabs > li.active > a:hover { + background: #fff; + border-color: #d4d4d4 transparent #d4d4d4 transparent; +} + +.tabs-right.tabbable-custom .nav-tabs > li { + margin-right: 0; + border-right: 2px solid transparent; + border-top: none; } + +.tabs-right.tabbable-custom .nav-tabs > li.active { + border-top: none; + border-right: 3px solid #d12610; + margin-top: 0; + margin-left: -1px; + position: relative; +} + +.tabs-right.tabbable-custom .nav-tabs > li.active > a { + border-top: 1px solid #d4d4d4; + border-right: 1px solid transparent; +} + +.tabs-right.tabbable-custom .nav-tabs > li.active > a:hover { + background: #fff; + border-color: #d4d4d4 transparent #d4d4d4; +} + +.tabs-right.tabbable-custom .nav-tabs > li a, +.tabs-left.tabbable-custom .nav-tabs > li a { + padding: 8px 10px +} + +/*full width tabs with bigger titles */ +.tabbable-custom.tabbable-full-width > .tab-content { + padding:27px 0; + border-left:none; + border-right:none; + border-bottom:none; +} + +.tabbable-custom.tabbable-full-width .nav-tabs > li > a { + color:#424242; + font-size:15px; + padding:9px 15px; +} + + +/*** +Custom portlet tabs +***/ +.portlet-tabs .nav-tabs { + position: relative; + top: -41px; + margin-right: 10px; + overflow: hidden; +} + +.portlet-tabs .nav-tabs > li { + float: right; +} + +.portlet-tabs .nav-tabs { + border-bottom: none; +} + +.portlet-tabs .nav-tabs > li > a { + padding-top: 8px; + padding-bottom: 10px; + line-height: 16px; + margin-top: 6px; + margin-left: 0px; + margin-right: 0px; + border-left: 0; + border-right: 0; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +.portlet-tabs .nav-tabs > li:last-child > a { + border-right:0; +} + +.portlet-tabs .nav-tabs > li { + margin-left: 1px; +} + +.portlet-tabs .nav-tabs > li.active { + border-top-color: transparent; +} + +.portlet-tabs .nav-tabs > li.active > a { + margin-bottom: 0px; + border-bottom: 0; + margin-left: 0px; + margin-right: 0px; + border-left: 0; + border-right: 0; + background-color: none !important; + border-top-color:transparent !important; +} + +.portlet-tabs .nav-tabs > li > a:hover { + margin-bottom: 0; + border-bottom-color: transparent; + margin-left: 0; + margin-right: 0; + border-left: 0; + border-right: 0; + background-color: none !important; + border-top-color:transparent; + background-color: #fff; +} + +.portlet-tabs .nav-tabs > .active > a { + color: #555555; + cursor: default; + background-color: #fff; +} + +.portlet-tabs .nav-tabs > .active > a:hover { + background-color: #fff !important; +} + +.portlet-tabs .tab-content { + padding: 10px !important; + margin: 0px; + margin-top: -60px !important; +} + +.portlet.tabbable .portlet-body { + padding: 0px; +} + +.tab-pane > p:last-child { + margin-bottom: 0px; +} + +/*** +Dashboard container +***/ +#dashboard { + overflow: hidden; +} + +/*** +Dashboard stats +***/ +.dashboard-stat { + margin-bottom: 25px; +} + +.dashboard-stat:before, +.dashboard-stat:after { + display: table; + line-height: 0; + content: ""; +} +.dashboard-stat:after { + clear: both; +} + +.dashboard-stat .visual { + width: 80px; + height:80px; + display: block; + float: left; + padding-top: 10px; + padding-left: 15px; +} + +.dashboard-stat .visual i { + font-size: 65px; + color: #fff; +} + +.dashboard-stat .details { + float: right; + padding-right: 10px; +} + +.dashboard-stat .details .number { + padding-top: 25px; + text-align: right; + font-size: 34px; + letter-spacing: -1px; + font-weight: 300; + color: #fff; + margin-bottom: 10px; +} + +.dashboard-stat .details .desc { + text-align: right; + font-size: 16px; + letter-spacing: 0px; + font-weight: 300; + color: #fff; +} + +.dashboard-stat .more { + clear: both; + display: block; + padding: 5px 10px 5px 10px; + text-transform: uppercase; + font-weight: 300; + font-size: 11px; + color: #fff; + opacity: 0.7; + filter: alpha(opacity=70); +} + +.dashboard-stat .more i { + margin-top: 4px; + float: right; +} + +.dashboard-stat .more:hover { + text-decoration: none; + -webkit-transition: all 0.1s ease-in-out; + -moz-transition: all 0.1s ease-in-out; + -o-transition: all 0.1s ease-in-out; + -ms-transition: all 0.1s ease-in-out; + transition: all 0.1s ease-in-out; + opacity: 1; + filter: alpha(opacity=100); +} + +.dashboard-stat.blue { + background-color: #27a9e3; +} + +.dashboard-stat.blue .more { + background-color: #208dbe; +} + +.dashboard-stat.green { + background-color: #28b779; +} + +.dashboard-stat.green .more { + background-color: #10a062; +} + +.dashboard-stat.red { + background-color: #e7191b; +} + +.dashboard-stat.red .more { + background-color:#bc0d0e; +} + +.dashboard-stat.yellow { + background-color: #ffb848; +} + +.dashboard-stat.yellow .more { + background-color: #cb871b; +} + +.dashboard-stat.purple { + background-color: #852b99; +} + +.dashboard-stat.purple .more { + background-color: #6e1881; +} + +/*** +Circle Stats(KNOB, new in v1.1.1) +***/ + +/* Circle stats */ +.knobify { + border: 0 !important; + width: 0px; +} + +.ie8 .knobify { + display: none; +} + +.circle-stat { + background-color: #f8f8f8; + padding:2px; + margin-bottom: 10px; +} + +.circle-stat:hover { + background-color: #edf4f7; +} + +.circle-stat:before, +.circle-stat:after { + display: table; + line-height: 0; + content: ""; +} +.circle-stat:after { + clear: both; +} + +.circle-stat .visual { + display: block; + float: left; +} + +.circle-stat .details { + display: block; + float: left; + margin-left: 5px; + padding-top: 7px; +} + +.circle-stat .details .title { + margin: 10px 0px 5px 0px !important; + padding: 0px !important; + font-size: 13px; + text-transform: uppercase; + font-weight: 300; + color: #222; +} + +.ie8 .circle-stat .details .title { + margin-top:5px !important; +} +.ie8 .circle-stat .details { + padding-top: 0px !important; + margin-bottom: 5px !important; +} + +.circle-stat .details .title i { + margin-top:2px !important; + color: #52e136; + font-size: 16px; +} + +.circle-stat .details .title i.down { + color: #b63625; +} + +.circle-stat .details .number { + margin: 0px !important; + margin-bottom: 7px !important; + font-size: 24px; + padding: 0px; + font-weight: 300; + color: #999; +} + +/*** +Tiles(new in v1.1.1) +***/ +.tiles { + margin-right: -10px; +} + +.tile { + display: block; + letter-spacing: 0.02em; + float: left; + height: 130px; + width: 130px !important; + cursor: pointer; + text-decoration: none; + color: #ffffff; + position: relative; + font-weight: 300; + font-size: 12px; + letter-spacing: 0.02em; + line-height: 20px; + font-smooth: always; + overflow: hidden; + border: 4px solid transparent; + margin: 0 10px 10px 0; +} + +.tile:after, +.tile:before { + content: ""; + float: left; +} + +.tile.double { + width: 278px !important; +} + +.tile.double-down { + height: 278px !important; +} + +.tile:active, .tile.selected { + border-color: #ccc; +} + +.tile:hover { + border-color: #aaa; +} + +.tile.selected .corner:after { + content: ""; + display: inline-block; + border-left: 40px solid transparent; + border-bottom: 40px solid transparent; + border-right: 40px solid #ccc; + position: absolute; + top: -3px; + right: -3px; +} + +.tile.selected .check:after { + content: ""; + font-family: FontAwesome; + font-size: 13px; + content: "\f00c"; + display: inline-block; + position: absolute; + top: 2px; + right: 2px; +} + +.tile * { + color: #ffffff; +} + +.tile .tile-body { + height: 100%; + vertical-align: top; + padding: 10px 10px; + overflow: hidden; + text-overflow: ellipsis; + position: relative; + font-weight: 400; + font-size: 12px; + font-smooth: always; + color: #000000; + color: #ffffff; + margin-bottom: 10px; +} + +.tile .tile-body img { + float: left; + margin-right: 10px; +} + +.tile .tile-body img.pull-right { + float: right !important; + margin-left: 10px; + margin-right: 0px; +} + +.tile .tile-body .content { + display: inline-block; +} + +.tile .tile-body > i { + margin-top: 17px; + display: block; + font-size: 56px; + text-align: center; +} + +.tile.double-down i { + margin-top: 95px; +} + +.tile .tile-body h1, +.tile .tile-body h2, +.tile .tile-body h3, +.tile .tile-body h4, +.tile .tile-body h5, +.tile .tile-body h6, +.tile .tile-body p { + padding: 0; + margin: 0; + line-height: 14px; +} + +.tile .tile-body h3, +.tile .tile-body h4 { + margin-bottom: 5px; +} + +.tile .tile-body h1:hover, +.tile .tile-body h2:hover, +.tile .tile-body h3:hover, +.tile .tile-body h4:hover, +.tile .tile-body h5:hover, +.tile .tile-body h6:hover, +.tile .tile-body p:hover { + color: #ffffff; +} + +.tile .tile-body p { + font-weight: 400; + font-size: 13px; + font-smooth: always; + color: #000000; + color: #ffffff; + line-height: 20px; + overflow: hidden; + text-overflow: ellipsis; +} + +.tile .tile-body p:hover { + color: rgba(0, 0, 0, 0.8); +} + +.tile .tile-body p:active { + color: rgba(0, 0, 0, 0.4); +} + +.tile .tile-body p:hover { + color: #ffffff; +} + +.tile.icon > .tile-body { + padding: 0; +} + +.tile .tile-object { + position: absolute; + bottom: 0; + left: 0; + right: 0; + min-height: 30px; + background-color: transparent; + *zoom: 1; +} + +.tile .tile-object:before, +.tile .tile-object:after { + display: table; + content: ""; +} + +.tile .tile-object:after { + clear: both; +} + +.tile .tile-object > .name { + position: absolute; + bottom: 0; + left: 0; + margin-bottom: 5px; + margin-left: 10px; + margin-right: 15px; + font-weight: 400; + font-size: 13px; + font-smooth: always; + color: #ffffff; +} + +.tile .tile-object > .name i { + display: block; + font-size: 24px; +} + +.tile .tile-object > .number { + position: absolute; + bottom: 0; + right: 0; + margin-bottom: 0; + color: #ffffff; + text-align: center; + font-weight: 600; + font-size: 14px; + letter-spacing: 0.01em; + line-height: 14px; + font-smooth: always; + margin-bottom: 8px; + margin-right: 10px; +} + +.tile.image { + border-color1: transparent !important; +} + +.tile.image > .tile-body { + padding: 0 !important; +} + +.tile.image > .tile-body > img{ + width: 100%; + height: auto; + min-height: 100%; + max-width: 100%; +} + +.tile.image .tile-body h3 { + display: inline-block; +} + +/*** +Styler Panel +***/ +.color-panel { + z-index: 999; + position:relative; +} + +.color-panel .color-mode-icons { + top:4px; + right:0; + padding:20px; + cursor:pointer; + position:absolute; +} + +.color-panel .icon-color { + background:#c9c9c9 url(../image/icon-color.png) center no-repeat !important; +} + +.color-panel .icon-color:hover { + background-color:#3d3d3d !important; +} + +.color-panel .icon-color-close { + display:none; + background:#3d3d3d url(../image/icon-color-close.png) center no-repeat !important; +} + +.color-panel .icon-color-close:hover { + background-color:#222 !important; +} + +.color-mode { + top:4px; + right:40px; + display:none; + padding:10px 0; + position:absolute; + background:#3d3d3d; +} + +.color-mode p, +.color-mode ul, +.color-mode label { + padding:0 15px; +} + +.color-mode p { + color:#cfcfcf; + padding:0 15px; + font-size:15px; +} + +.color-mode ul { + list-style:none; + padding:4px 11px 5px; + display: block; + margin-bottom: 1px !important; +} + +.color-mode li { + width:16px; + height:23px; + margin:0 4px; + cursor:pointer; + list-style:none; + border:solid 1px #707070; +} + +.color-mode li:hover, +.color-mode li.current { + border:solid 2px #ebebeb; + margin:0 3px; +} + +.color-mode li.color-black { + background:#333438; +} + +.color-mode li.color-grey { + background:#6d6d6d; +} + +.color-mode li.color-blue { + background:#124f94; +} + +.color-mode li.color-brown { + background:#623f18; +} + +.color-mode li.color-purple { + background:#701584; +} + +.color-mode li.color-white { + background:#fff; +} + +.color-mode label { + color:#cfcfcf; + padding-top:10px; + padding-bottom: 0px; + border-top:1px solid #585858; + margin-top: 0px; + margin-bottom: 0px; +} + +.color-mode label span { + text-transform:uppercase; +} + +.color-mode label > span { + display: inline-block; + width: 85px; +} + +.color-mode label > select { + margin-top: 5px; + text-transform: lowercase; +} + +.color-mode label span.color-mode-label { + top:2px; + position:relative; +} + +/*** +Calendar with full calendar +***/ +.external-event { + display: inline-block !important; + cursor:move; + margin-bottom: 5px !important; + margin-left: 5px !important; +} + +.portlet .event-form-title { + font-size: 14px; + margin-top: -8px; + font-weight: 400; + margin-bottom: 0px; +} + +.portlet.calendar .fc-button { + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + box-shadow: none !important; + -webkit-text-shadow: none !important; + -moz-text-shadow: none !important; + text-shadow: none !important; + border: 0 !important; + padding: 7px 8px 11px 8px; + margin-left:2px; + color: #fff !important; + border-top-style: none; + border-bottom-style: none; + border-right-style: solid; + border-left-style: solid; + border-color: #ddd; + background: transparent; + color: #646464; + top: -47px; +} + +.portlet.calendar .fc-header { + margin-bottom:-21px; +} + +.portlet.calendar .fc-button-prev { + padding-right: 10px; + padding-left: 8px; +} + +.portlet.calendar .fc-button-next { + padding-right: 8px; + padding-left: 10px; +} + +.portlet.calendar .fc-button.fc-state-active, +.portlet.calendar .fc-button.fc-state-hover { + color: #666 !important; + background-color: #F9F9F9 !important; +} + +.portlet.calendar .fc-button.fc-state-disabled { + color: #ddd !important; +} + +.portlet.calendar .fc-text-arrow { + font-size: 22px; + font-family: "Courier New", Courier, monospace; + vertical-align: baseline; +} + +/* begin: event element */ +.portlet.calendar .fc-event { + border: 0px; + background-color: #69a4e0; + color: #fff; +} + +.portlet.calendar .fc-event-inner { + border: 0px; +} + +.portlet.calendar .fc-event-time { + float: left; + text-align: left; + color: #fff; + font-size: 13px; + font-weight: 300; +} + +.portlet.calendar .fc-event-title { + text-align: left; + float: left; + color: #fff; + font-size: 13px; + font-weight: 300; +} +/* end: event element */ + +.portlet.calendar .fc-header-title h2 { + font-size: 14px !important; + line-height: 20px; + font-weight: 400; + color: #111; +} + +.portlet.calendar .fc-widget-header { + background-image: none !important; + filter:none !important; + background-color: #eee !important; + text-transform: uppercase; + font-color:#000; + font-weight: 300; +} + +.portlet.calendar .mobile .fc-button { + margin-left: 2px !important; +} + +.portlet.calendar .mobile .fc-button { + padding: 6px 6px 6px 6px; + margin-left:2px; + border: none !important; + background-color: #ddd !important; + background-image: none; + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + box-shadow: none !important; + -webkit-border-radius: 0 !important; + -moz-border-radius: 0 !important; + border-radius: 0 !important; + color: #000 !important; + border: none !important; + text-shadow: none !important; + text-align: center; +} + +.portlet.calendar .mobile .fc-state-hover, +.portlet.calendar .mobile .fc-state-active { + background-color: #eee !important; +} + +.portlet.calendar .mobile .fc-button-prev { + margin-right: 5px; + margin-top: -2px; + padding: 3px 6px 3px 4px; +} + +.portlet.calendar .mobile .fc-button-next { + margin-right: -0px; + margin-top: -2px; + padding: 3px 4px 3px 6px; +} + +.portlet.calendar .mobile .fc-header-space { + margin: 0px !important; + padding: 0px !important; + width: 0px !important; +} + + .portlet.calendar .mobile .fc-state-disabled { + color: #bbb !important; + } + + .portlet.calendar .mobile .fc-header-left { + position: absolute; + z-index: 10; + } + + .portlet.calendar .mobile .fc-header-right { + position: absolute; + z-index: 9; + } + + .portlet.calendar .mobile .fc-header-left .fc-button { + top: -2px !important; + } + + .portlet.calendar .mobile .fc-header-right { + position: relative; + right:0; + } + + .portlet.calendar .mobile .fc-header-right .fc-button { + top: 35px !important; + } + + .portlet.calendar .mobile .fc-header-right .fc-button:last-child { + margin-left: 0px !important; + } + + .portlet.calendar .mobile .fc-content { + margin-top: 53px; + } + +/*** +Form wizard +***/ + +.form-wizard .progress { + margin-bottom: 30px; +} + +.form-wizard .steps { + padding: 10px 0; + margin-bottom: 15px; +} + +.form-wizard .steps .navbar-inner { + background-color: #fff !important; + background-image: none !important; + filter:none !important; + border: 0px; + box-shadow: none !important; +} + +.form-wizard .steps .navbar-inner li a { + background-color: #fff !important; + background-image: none !important; + filter:none !important; + border: 0px; + box-shadow: none !important; +} + +.form-wizard .step:hover { + text-decoration: none; +} + +.form-wizard .step .number { + background-color: #eee; + display: inline-block; + font-size: 16px; + font-weight: 300; + padding: 12px 15px 12px 15px !important; + margin-right: 10px; + -webkit-border-radius: 50% !important; + -moz-border-radius: 50% !important; + border-radius: 50% !important; +} + +.form-wizard .step .desc { + display: inline-block; + font-size: 14px; + font-weight: 300; +} + +.form-wizard .active .step .number { + background-color: #35aa47; + color: #fff; +} + +.form-wizard .active .step .desc { + font-weight: 400; +} + +.form-wizard .step i { + display: none; +} + +.form-wizard .done .step .number { + background-color: #f2ae43; + color: #fff; +} + +.form-wizard .done .step .desc { + font-weight: 400; +} + +.form-wizard .done .step i { + font-size: 12px; + font-weight: normal; + color: #999; + display: inline-block; +} + +/* bootstrap chosen overlaping bug fix*/ +.form-wizard .tab-pane .chzn-container { + position: absolute !important; +} + + +/************************** + PLUGIN CSS CUSTOMIZATIONS +**************************/ + +/*** +Google Maps +***/ +.gmaps { + height: 300px; + width: 100%; +} + +/* important! bootstrap sets max-width on img to 100% which conflicts with google map canvas*/ +.gmaps img { + max-width: none; +} + +#gmap_static div{ + background-repeat: no-repeat !important; + background-position: 50% 50% !important; + height:100%; + display:block; + height: 300px; +} + +#gmap_routes_instructions { + margin-top: 10px; + margin-bottom: 0px; +} + +/*** +SlimScrollBar plugins css changes +***/ +.scroller { + padding: 0px !important; + margin: 0px !important; + padding-right: 12px !important; +} + +.portlet-body .slimScrollBar { + margin-right: 0px !important; +} + +/*** +jqvmap changes +***/ +.jqvmap-zoomin { + background-color: #666 !important; +} + +.jqvmap-zoomout { + background-color: #666 !important; +} + +.vmaps { + position: relative; + overflow: hidden; + height: 300px; +} + +/*** +Daterangepicker plugin css changes +***/ +.modal-open .daterangepicker { + z-index: 10060 !important; +} + +.daterangepicker td { + text-shadow: none !important; +} + +.daterangepicker td.active { + background-color: #4b8df8 !important; + background-image: none !important; + filter:none !important; +} + +.daterangepicker th { + font-weight: 400; + font-size: 14px; +} + +/*** +Toggle buttons plugin css changes +***/ +.toggle-button, +.toggle-button label { + margin-top: 3px; + background-image: none !important; + filter:none !important; + -webkit-border-radius: 0px !important; + -moz-border-radius: 0px !important; + -ms-border-radius: 0px !important; + -o-border-radius: 0px !important; + border: 1px solid #eee !important; + -moz-border-radius-topleft: 0px !important; + -webkit-border-top-left-radius: 0px !important; + border-top-left-radius: 0px !important; + -moz-border-radius-bottomleft: 0px !important; + -webkit-border-bottom-left-radius: 0px !important; + border-bottom-left-radius: 0px !important; + -moz-border-radius-topright: 0px !important; + -webkit-border-top-right-radius: 0px !important; + border-top-right-radius: 0px !important; + -moz-border-radius-bottomright: 0px !important; + -webkit-border-bottom-right-radius: 0px !important; + border-bottom-right-radius: 0px !important; +} + +.toggle-button span.labelRight, +.toggle-button span.primary, +.toggle-button span.labelLeft, +.toggle-button span.info, +.toggle-button span.success, +.toggle-button span.warning, +.toggle-button span.danger { + -moz-border-radius-topleft: 0px !important; + -webkit-border-top-left-radius: 0px !important; + border-top-left-radius: 0px !important; + -moz-border-radius-bottomleft: 0px !important; + -webkit-border-bottom-left-radius: 0px !important; + border-bottom-left-radius: 0px !important; + -moz-border-radius-topright: 0px !important; + -webkit-border-top-right-radius: 0px !important; + border-top-right-radius: 0px !important; + -moz-border-radius-bottomright: 0px !important; + -webkit-border-bottom-right-radius: 0px !important; + border-bottom-right-radius: 0px !important; + + font-size: 13px !important; + font-weight: 300 !important; + background-image: none !important; + filter:none !important; +} + +.toggle-button span.labelRight { + background-color: #eee; +} + +/*** +Choosen plugin css changes +***/ +.chzn-controls { + margin-bottom: -4px !important; +} + +.chzn-controls .help-inline { + display: inline-block; + margin-top : 6px; +} + +.chzn-container { + display: block; + margin: 0; + padding: 0 !important; + box-shadow: none !important; +} + +.chzn-container-single { + margin: 0 !important; + padding: 0 !important; +} + +/* fix chosen margins in form layouts */ +.controls .chzn-container-single { + float: left; +} + +.chzn-container-single .chzn-single { + box-shadow: none !important; + background-image: none !important; + filter:none !important; + box-shadow: none !important; + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + height: 31px !important; + border-color: #e5e5e5; + margin: 0 !important; +} + +/* enable form validation classes for chosen dropdowns */ +.error .chzn-container-single .chzn-single { + border-color: #B94A48; +} + +.error .chzn-container-single .chzn-single span { + color: #B94A48; +} + +.success .chzn-container-single .chzn-single { + border-color: #468847; +} + +.success .chzn-container-single .chzn-single span { + color: #468847; +} + +.chzn-container-single .chzn-single > span { + margin-top: 1px; +} + +.chzn-container-single .chzn-single > abr { + margin-top: 3px; +} + +.chzn-container-single .chzn-search input:focus, +.chzn-container-single .chzn-search input:active { + border:1px solid #000 !important; + box-shadow: none !important; +} + +.chzn-container .chzn-choices li.search-choice { + background-image: none !important; + filter:none !important; + box-shadow: none !important; + font-size: 12px !important; + font-weight: 300 !important; + text-shadow:none !important; + background-color: #eee !important; + border: 0 !important; +} + +.chzn-container .chzn-results .highlighted { + background-image: none !important; + filter:none !important; + background-color: #eee !important; + color: #111 !important; +} + +.chzn-container-multi .chzn-choices { + background-image: none !important; + filter:none !important; + box-shadow: none !important; + border-color: #e5e5e5 !important; + padding: 2px 1px 1px 1px !important; +} + +.chzn-container-multi .chzn-choices .search-choice.search-choice-disabled { + background-image: none !important; + filter:none !important; +} + +.chzn-x-multi .chzn-choices { + box-shadow: none !important; +} + +.chzn-container .group-result { + color: #333 !important; + font-size: 16px !important; + font-weight: 400 !important; +} + +/*** +Select2 plugin css changes +***/ + +/* enable form validation classes for select2 dropdowns */ +.error .select2-container .select2-choice { + border-color: #B94A48; +} + +.error .select2-container .select2-choice > span { + color: #B94A48; +} + +.error .select2-container.select2-dropdown-open .select2-choice { + border-color: #e5e5e5; +} + +.error .select2-container.select2-dropdown-open .select2-choice > span { + color: #999999; +} + +.success .select2-container .select2-choice { + border-color: #468847; +} + +.success .select2-container .select2-choice > span { + color: #468847; +} + +.success .select2-container.select2-dropdown-open .select2-choice { + border-color: #e5e5e5; +} + +.success .select2-container.select2-dropdown-open .select2-choice > span { + color: #999999; +} + + +/*** +Fileuploader plugin css changes +***/ +.fileupload .btn { + padding: 7px 14px !important; +} + +.fileupload-exists { + padding: 0px; +} + +.fileupload .fileupload-preview { + background-color: #fff !important; + background-image: none !important; + filter:none !important; +} + +.fileupload .close { + position: relative; + top:0px !important; +} + +/*** +Clockface plugin css changes +***/ +.clockface .cell .inner.active, +.clockface .cell .outer.active { + background-image: none !important; + filter:none !important; +} + +/*** +WYSIWYG +***/ +.wysihtml5-toolbar li { + margin: 0px; + height: 29px; +} + +.wysihtml5-toolbar li .dropdown-menu { + margin-top: 5px; +} + +/*** +CKEditor css changes +***/ +.cke_bottom, +.cke_inner, +.cke_top, +.cke_reset, +.cke_dialog_title, +.cke_dialog_footer, +.cke_dialog { + background-image: none !important; + filter:none !important; + border-top: 0 !important; + border-bottom: 0 !important; + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + box-shadow: none !important; + text-shadow:none !important; +} + +.cke_dialog_ui_button, +.cke_dialog_tab { + background-image: none !important; + filter:none !important; + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + box-shadow: none !important; + text-shadow:none !important; +} + +.cke_dialog_ui_button:hover, +.cke_dialog_tab:hover { + text-decoration: none; + text-shadow:none !important; +} + +.cke_dialog_ui_input_text { + background-image: none !important; + filter:none !important; + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + box-shadow: none !important; +} + +.cke_combo_button, +.cke_button, +.cke_toolbar, +.cke_toolgroup { + background-image: none !important; + filter:none !important; + border: 0 !important; + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + box-shadow: none !important; +} + +.cke_button, +.cke_combo_button, +.cke_panel_grouptitle, +.cke_hc.cke_panel_listItem a { + background-image: none !important; + filter:none !important; + text-shadow:none !important; + -webkit-border-radius: 0px !important; + -moz-border-radius: 0px !important; + -ms-border-radius: 0px !important; + -o-border-radius: 0px !important; +} + +.cke_button:hover, +.cke_combo_button:hover { + background-color: #ddd; +} + +.cke_toolbar_break { + background-image: none !important; + filter:none !important; + border: 0 !important; + box-shadow: none !important; + -webkit-box-shadow : none !important; + -moz-box-shadow: none !important; + -ms-box-shadow: none !important; + -o-box-shadow: none !important; +} + +/*** +Modify tags input plugin css +***/ +div.tagsinput { + height: 40px !important; + margin: 0 !important; + padding: 5px !important; + overflow: auto !important; +} + +div.tagsinput span.tag { + background: #aaa !important; + color: #fff !important; + border: 0 !important; + padding: 3px 6px !important; + -webkit-border-radius: 0 !important; + -moz-border-radius: 0 !important; + border-radius: 0 !important; + margin-bottom: 4px !important; +} + +div.tagsinput input { + padding: 3px 6px !important; +} + +div.tagsinput span.tag a { + color: #fff !important; +} + +div.tagsinput .not_valid { + color: #fff !important; + padding: 3px 6px !important; + background-color: #e02222 !important; +} + +/*** +Gritter notification modify +***/ +.gritter-close { + left:auto !important; + right: 3px !important; +} + +.gritter-title { + font-family: 'Open Sans' !important; + font-size: 18px !important; + font-weight: 300 !important; +} + +/*** +Bootstrap carousel css changes +***/ +.carousel-inner .item { + line-height: 20px; +} + +/*** +Glyphicons Demo(new in v1.1.1) +***/ +.glyphicons-demo { + text-align: center; +} + +.glyphicons-demo .glyphicons { + display:inline-block; + *display:inline; + *zoom:1; + width:150px; + font-size:14px; + line-height:48px; + margin-right: 20px; + color: #999; + text-align: left; +} + +.glyphicons-demo .glyphicons i:before{ + line-height:55px!important; + color: #666; +} + +.halfings-demo .white-content{ + margin:0 -20px 0 -20px; + padding:20px; + background:#000; + background:rgba(0,0,0,0.9) +} + +.halfings-demo .white-content *, +.halfings-demo .white-content p, +.halfings-demo .white-content a{ + color:#fff +} + +.halfings-demo h2 { + text-align: left; +} + +.halfings-demo p, +.halfings-demo a { + width: 175px; + font-size: 14px; + line-height: 14px; + text-align: left; + display: inline-block; + margin-right: 10px; +} + +.halfings-demo .halflings, +.halfings-demo .halflings-icon { + margin:0 5px 0 0 +} + +/*** +jQuery UI Sliders(new in v1.1.1) +***/ +.table.sliders td { + padding: 15px 10px !important; +} + +.table.sliders .slider { + margin-top: 4px; +} + +.table.sliders .slider-value { + padding-top: 5px; + font-weight: 400; +} + +.table.sliders .slider-vertical-value { + padding-bottom: 5px; + font-weight: 400; +} + +.slider { + border: 0 !important; +} + +.ui-slider-vertical, +.ui-slider-handle { + filter: none !important; + background-image: none !important; +} + +.slider-eq > span { + height:125px; + float:left; + margin:15px +} + +/*** +Dropzone css changes(new in v1.1.1) +***/ +.dropzone { + webkit-border-radius: 0px !important; + -moz-border-radius: 0px !important; + border-radius: 0px !important; +} + +/*** +Bootstrap Tree CSS changes(new in v1.1.2) +***/ +.tree { + margin: 0; + padding: 0; +} + +.tree a { + padding: 2px 3px 3px 3px; + display: block !important; + line-height: 16px !important; +} + +.tree a:hover { + text-decoration: none; + background-color: #eee; +} + +.tree a.tree-toggle-icon-only, +.tree a.tree-toggle { + background-position: 2px -20px; +} + +.tree a.tree-toggle.closed, +.tree a.tree-toggle-icon-only.closed { + background-position: 2px 3px; +} + +/*** +jQuery UI Datepicker(new in v1.2.2) +***/ +.ui-widget-header select { + padding: 2px !important; + height: 30px; + margin: 0 !important; + margin-top: -1px !important; +} + +.ui-datepicker.ui-widget-content { + background: none !important; + background-color: #eee !important; +} + +.ui-datepicker .ui-widget-header { + background: none !important; + background-color: #e0e0e0 !important; + border: 0 !important; + box-shadow: none !important; + height: 28px; +} + +.ui-widget-header .ui-icon { + background-image: url(../image/ui-icons_888888_256x240.png) !important; +} + +.ui-widget-header .ui-datepicker-next, +.ui-widget-header .ui-datepicker-prev { + margin: 2px 2px 2px 2px; +} + +.ui-widget-header .ui-state-hover, +.ui-widget-header .ui-state-active { + background-color: #F2F2F2 !important; + border-color: #F2F2F2 !important; + background-image: none !important; +} + +.ui-datepicker .ui-datepicker-title { + font-weight: 400 !important; + text-transform: uppercase !important; + font-size: 14px !important; + color: #333; +} + +.ui-datepicker .ui-datepicker-title span { + display: inline-block; + padding-top: 2px; +} + +.ui-datepicker .ui-datepicker-calendar thead span { + font-weight: 300 !important; + font-size: 13px !important; + text-transform: uppercase !important; + color: #333 !important; +} + +.ui-datepicker .ui-datepicker-week-col { + font-weight: 400 !important; + font-size: 13px !important; + text-transform: uppercase !important; + color: #333 !important; +} + +.ui-datepicker tbody .ui-datepicker-week-col { + text-align: center; +} + + +.ui-datepicker .ui-datepicker-calendar .ui-state-default { + font-weight: 300 !important; + font-size: 13px !important; + text-transform: uppercase !important; + color: #333 !important; + border-color:#DEDEDE; + background-color: #DEDEDE !important; +} + +.ui-datepicker .ui-datepicker-calendar .ui-state-active, +.ui-datepicker .ui-datepicker-calendar .ui-state-hover { + background-image: none !important; + border-color:#ffb848; + background-color: #ffb848 !important; +} + +.ui-datepicker .ui-datepicker-calendar .ui-state-highlight { + background-image: none !important; + background-color: #FFDBA3 !important; + border-color:#ffb848; +} + +.ui-datepicker .ui-datepicker-calendar .ui-state-active { + background-image: none !important; + background-color: #ffb848 !important; + border-color:#ffb848; +} + +.ui-datepicker button.ui-state-default { + background-image: none !important; + background-color: #35aa47 !important; + border-color: #35aa47 !important; + color: #fff; +} + +.ui-datepicker button.ui-state-hover { + border-color: #1d943b !important; + background-color: #1d943b !important; + color: #fff !important; + +} + +.ui-datepicker button.ui-state-default.ui-priority-secondary { + font-weight: 300 !important; + font-size: 13px !important; +} + +.ui-datepicker button.ui-state-default.ui-priority-primary { + font-weight: 300 !important; + font-size: 13px !important; +} + +/*** +jQuery UI Dialogs(new in v1.2.4) +***/ +.ui-dialog { + z-index: 10011 !important; + background: none !important; + background-color: #eee !important; +} + +.ui-dialog .ui-dialog-titlebar { + font-weight: 300 !important; + font-size: 14px !important; + text-transform: uppercase !important; + color: #333 !important; + background: none !important; + background-color: #e0e0e0 !important; + border: 0 !important; + box-shadow: none !important; + font-family: 'Open Sans'; +} + +.ui-dialog .ui-dialog-titlebar-close { + outline: none !important; + border: 0 !important; + box-shadow: none; + background: url(../image/hor-menu-search-close.png) no-repeat center; + margin-top: -12px !important; +} + +.ui-dialog .ui-dialog-titlebar-close:hover { + opacity: 0.8; + filter: alpha(opacity=80); +} + +/*dialog title bg colors*/ +.ui-dialog.ui-dialog-blue .ui-dialog-titlebar { + color: #fff !important; + background-color: #4b8df8 !important; +} + +.ui-dialog.ui-dialog-blue .ui-dialog-titlebar-close { + background: url(../image/hor-menu-search-close-white.png) no-repeat center; +} + +.ui-dialog.ui-dialog-red .ui-dialog-titlebar { + color: #fff !important; + background-color: #e02222 !important; +} + +.ui-dialog.ui-dialog-red .ui-dialog-titlebar-close { + background: url(../image/hor-menu-search-close-white.png) no-repeat center; +} + +.ui-dialog.ui-dialog-yellow .ui-dialog-titlebar { + color: #fff !important; + background-color: #ffb848 !important; +} + +.ui-dialog.ui-dialog-yellow .ui-dialog-titlebar-close { + background: url(../image/hor-menu-search-close-white.png) no-repeat center; +} + +.ui-dialog.ui-dialog-green .ui-dialog-titlebar { + color: #fff !important; + background-color: #35aa47 !important; +} + +.ui-dialog.ui-dialog-green .ui-dialog-titlebar-close { + background: url(../image/hor-menu-search-close-white.png) no-repeat center; +} + +.ui-dialog.ui-dialog-purple .ui-dialog-titlebar { + color: #fff !important; + background-color: #852b99 !important; +} + +.ui-dialog.ui-dialog-purple .ui-dialog-titlebar-close { + background: url(../image/hor-menu-search-close-white.png) no-repeat center; +} + +.ui-dialog.ui-dialog-grey .ui-dialog-titlebar { + color: #fff !important; + background-color: #555555 !important; +} + +.ui-dialog.ui-dialog-grey .ui-dialog-titlebar-close { + background: url(../image/hor-menu-search-close-white.png) no-repeat center; +} +/*dialog title bg colors*/ + +.ui-dialog .ui-dialog-content { + font-family: 'Open Sans'; + font-size: 13px !important; + color: #333 !important; +} + +.ui-dialog .ui-dialog-content .icon { + display: inline-block; + float: left; + margin: 5px 7px 20px 0; +} + +.ui-widget-overlay.ui-front { + z-index: 10010; + background: #333 !important; +} + +/*** +Sidebar Content +***/ +.sidebar-content { + margin-top: 20px; +} + +/*** +Horezantal Menu(new in v1.2) +***/ + +.header .hor-menu { + margin: 0; + float: left; +} + +.header .hor-menu ul.nav li a { + font-size: 14px; + padding: 11px 18px; +} + +.ie8 .header .hor-menu a.dropdown-toggle { + padding-top: 10px !important; +} + +.header .hor-menu ul.nav li { + position: relative; +} + +.header .hor-menu ul.nav li.active > a, +.header .hor-menu ul.nav li.active > a:hover { + background: #e02222 !important; +} + +.ie8 .header .hor-menu ul.nav li.active > a { + padding-top: 13px; + padding-bottom: 12px; +} + +.ie9 .header .hor-menu ul.nav li.active > a { + padding-top: 10px; + padding-bottom: 12px; +} + +.header .hor-menu ul.nav li.active .selected { + left: 50%; + bottom:0; + position: absolute; + border-left: 6px solid transparent; + border-right: 6px solid transparent; + border-top: 6px solid #e02222; + display: inline-block; + margin: 0; + width: 0px; + height:0px; + margin-left: -7px; + margin-bottom:-6px; +} + +.header .hor-menu ul.nav li a:hover, +.header .hor-menu ul.nav li a:focus { + background: #2d2d2d; +} + +/*drop-down*/ +.header .hor-menu .dropdown-menu { + margin-top: 0; + border: none; + box-shadow: none; + background: #2d2d2d; +} + +.header .hor-menu .dropdown-menu li > a { + color: #999; + padding: 7px 18px !important; + margin-bottom:1px; +} + +.header .dropdown-menu .arrow { + display: none; +} + +.header .hor-menu ul.nav > li > a > .arrow:before { + margin-top: 7px; + margin-left: 3px; + display: inline; + font-size: 16px; + font-family: FontAwesome; + height: auto; + content: "\f107"; + font-weight: 300; + text-shadow:none; +} + +.header .hor-menu ul.nav > li .dropdown-menu > li > a > .arrow:before { + float: right; + margin-top: 1px; + margin-right: -5px; + display: inline; + font-size: 16px; + font-family: FontAwesome; + height: auto; + content: "\f105"; + font-weight: 300; + text-shadow:none; +} + +.header .hor-menu .dropdown-menu li > a:hover, +.header .hor-menu .dropdown-menu li:hover > a, +.header .hor-menu .dropdown-menu li.active > a { + color: #fff; + filter:none !important; + background: #e02222 !important; +} + +.header .hor-menu .nav > li > .dropdown-menu:after, +.header .hor-menu .nav > li > .dropdown-menu:before { + border-bottom: none !important; +} + +/*search*/ +.header .hor-menu .hor-menu-search-form-toggler { + display: inline-block; + padding: 11px 22px 11px 22px !important; + cursor: pointer; + background: url(../image/hor-menu-search.png) no-repeat center; +} + +.header .hor-menu .hor-menu-search-form-toggler:hover { + opacity: 0.8; + filter: alpha(opacity=80); +} + +.header .hor-menu .hor-menu-search-form-toggler.hide { + background: #101010 url(../image/hor-menu-search-close.png) no-repeat center; +} + +.header .hor-menu a.hor-menu-search-form-toggler-close { + display: none; +} + +.header .hor-menu .search-form { + top:42px; + right:0px; + padding:8px; + display:none; + z-index:999; + position:absolute; + background:#101010; +} + +.header .hor-menu .search-form .btn { + color: #999; + padding: 7px 20px; + height: 32px; + width: 10px; + display: inline-block; + background: #2d2d2d url(../image/search-icon.png) no-repeat center; +} + +.header .hor-menu .search-form .btn:hover { + opacity: 0.8; + filter: alpha(opacity=80); +} + +.header .hor-menu .search-form form { + margin-bottom: 0; +} + +.header .hor-menu .search-form form input { + color: #999; + border: none; +} + +.header .hor-menu .search-form form input::-webkit-input-placeholder { /* WebKit browsers */ + color: #999; +} +.header .hor-menu .search-form form input:-moz-placeholder { /* Mozilla Firefox 4 to 18 */ + color: #999; +} +.header .hor-menu .search-form form input::-moz-placeholder { /* Mozilla Firefox 19+ */ + color: #999; +} +.header .hor-menu .search-form form input:-ms-input-placeholder { /* Internet Explorer 10+ */ + color: #999; +} + +/*** +Dashboard Charts(new in v1.2.1) +***/ +.easy-pie-chart, +.sparkline-chart { + text-align: center; +} + +.sparkline-chart { + margin-top: 15px; + position:relative !important; +} + +.easy-pie-chart .number { + font-size: 16px; + font-weight: 300; + width: 85px; + margin: 0 auto; +} + +.sparkline-chart .number { + width: 100px; + margin: 0 auto; + margin-bottom: 10px; +} + +.sparkline-chart .title, +.easy-pie-chart .title { + display: block; + text-align: center; + color: #333; + font-weight: 300; + font-size: 16px; + margin-top: 5px; + margin-bottom: 10px; +} + +.sparkline-chart .title:hover, +.easy-pie-chart .title:hover { + color: #666; + text-decoration: none; +} + + +/*** +Top News Blocks(new in v1.2.2) +***/ +.top-news { + color: #fff; + margin: 8px 0; +} + +.top-news a, +.top-news em, +.top-news span { + display: block; + text-align: left; +} + +.top-news a { + padding: 10px; + position: relative; + margin-bottom: 10px; +} + +.top-news a .top-news-icon { + right: 8px; + bottom: 15px; + opacity:0.3; + font-size: 35px; + position: absolute; + filter: alpha(opacity=30); /*For IE8*/ +} + +.top-news em { + margin-bottom: 0; + font-style: normal; +} + +.top-news span { + font-size: 18px; + margin-bottom: 5px; +} + +/*** +Bootstrap Carousel(new in v1.2.2) +***/ +.carousel { + margin-bottom: 0; +} + +.carousel .carousel-caption a { + color: #fff; +} + +.carousel .carousel-inner .item { + margin-bottom: 10px; +} + +.carousel a.carousel-control { + border: none; + padding: 5px; + display: none; +} + +.carousel:hover a.carousel-control { + display: block; + width: 40px; + height: 40px; +} + +/*** +Block Images(new in v1.2.2) +***/ +.blog-images { + margin-bottom: 0; +} + +.blog-images li { + display: inline; +} + +.blog-images li a:hover { + text-decoration: none; +} + +.blog-images li img { + width: 50px; + height: 50px; + opacity: 0.6; + margin: 0 2px 8px; +} + +.blog-images li img:hover { + opacity: 1; + box-shadow: 0 0 0 4px #72c02c; + transition: all 0.4s ease-in-out 0s; + -moz-transition: all 0.4s ease-in-out 0s; + -webkit-transition: all 0.4s ease-in-out 0s; +} + +/*Sidebar Tags*/ +ul.sidebar-tags a { + color: #555; + font-size:12px; + padding:2px 5px; + background:#f7f7f7; + margin:0 2px 5px 0; + display:inline-block; +} + +ul.sidebar-tags a:hover, +ul.sidebar-tags a:hover i { + color:#fff; + background: #555; + text-decoration:none; + -webkit-transition:all 0.3s ease-in-out; + -moz-transition:all 0.3s ease-in-out; + -o-transition:all 0.3s ease-in-out; + transition:all 0.3s ease-in-out; +} + +ul.sidebar-tags a i { + color:#777; +} + +ul.sidebar-tags li { + padding: 0; +} + +/*** +Social Icons(new in v1.2.2) +***/ +.social-icons { + margin:0; +} + +.social-icons:after, +.social-icons:before { + content: ""; + display: table; +} + +.social-icons:after { + clear: both; +} + +.social-icons li { + float:left; + display:inline; + list-style:none; + margin-right:5px; + margin-bottom:5px; + text-indent:-9999px; +} +.social-icons li a, a.social-icon { + width:28px; + height:28px; + display:block; + background-position:0 0; + background-repeat:no-repeat; + transition: all 0.3s ease-in-out; + -o-transition: all 0.3s ease-in-out; + -ms-transition: all 0.3s ease-in-out; + -moz-transition: all 0.3s ease-in-out; + -webkit-transition: all 0.3s ease-in-out; +} +.social-icons li:hover a { + background-position:0 -38px; +} + +.social-icons .amazon {background: url(../image/amazon.png) no-repeat;} +.social-icons .behance {background: url(../image/behance.png) no-repeat;} +.social-icons .blogger {background: url(../image/blogger.png) no-repeat;} +.social-icons .deviantart {background: url(../image/deviantart.png) no-repeat;} +.social-icons .dribbble {background: url(../image/dribbble.png) no-repeat;} +.social-icons .dropbox {background: url(../image/dropbox.png) no-repeat;} +.social-icons .evernote {background: url(../image/evernote.png) no-repeat;} +.social-icons .facebook {background: url(../image/facebook.png) no-repeat;} +.social-icons .forrst {background: url(../image/forrst.png) no-repeat;} +.social-icons .github {background: url(../image/github.png) no-repeat;} +.social-icons .googleplus {background: url(../image/googleplus.png) no-repeat;} +.social-icons .jolicloud {background: url(../image/jolicloud.png) no-repeat;} +.social-icons .last-fm {background: url(../image/last-fm.png) no-repeat;} +.social-icons .linkedin {background: url(../image/linkedin.png) no-repeat;} +.social-icons .picasa {background: url(../image/picasa.png) no-repeat;} +.social-icons .pintrest {background: url(../image/pintrest.png) no-repeat;} +.social-icons .rss {background: url(../image/rss.png) no-repeat;} +.social-icons .skype {background: url(../image/skype.png) no-repeat;} +.social-icons .spotify {background: url(../image/spotify.png) no-repeat;} +.social-icons .stumbleupon {background: url(../image/stumbleupon.png) no-repeat;} +.social-icons .tumblr {background: url(../image/tumblr.png) no-repeat;} +.social-icons .twitter {background: url(../image/twitter.png) no-repeat;} +.social-icons .vimeo {background: url(../image/vimeo.png) no-repeat;} +.social-icons .wordpress {background: url(../image/wordpress.png) no-repeat;} +.social-icons .xing {background: url(../image/xing.png) no-repeat;} +.social-icons .yahoo {background: url(../image/yahoo.png) no-repeat;} +.social-icons .youtube {background: url(../image/youtube.png) no-repeat;} +.social-icons .vk {background: url(../image/vk.png) no-repeat;} +.social-icons .instagram {background: url(../image/instagram.png) no-repeat;} + + +/*** +Responsive tables(new in v1.2.3) +***/ + +.flip-scroll table { width: 100%; } + +@media only screen and (max-width: 800px) { + + .flip-scroll table {border-left: 1px solid #ddd} + .flip-scroll .flip-content:after { visibility: hidden; display: block; font-size: 0; content: " "; clear: both; height: 0; } + .flip-scroll * html .flip-content { zoom: 1; } + .flip-scroll *:first-child+html .flip-content { zoom: 1; } + + .flip-scroll table { width: 100%; border-collapse: collapse; border-spacing: 0; } + + .flip-scroll th, + .flip-scroll td { margin: 0; vertical-align: top; } + .flip-scroll th { text-align: left; } + + .flip-scroll table { display: block; position: relative; width: 100%; } + .flip-scroll thead { display: block; float: left; } + .flip-scroll tbody { display: block; width: auto; position: relative; overflow-x: auto; white-space: nowrap; } + .flip-scroll thead tr { display: block; } + .flip-scroll th { display: block; text-align: right; } + .flip-scroll tbody tr { display: inline-block; vertical-align: top; } + .flip-scroll td { display: block; min-height: 1.25em; text-align: left; } + + + /* sort out borders */ + + .flip-scroll th { border-bottom: 0; border-left: 0; } + .flip-scroll td { border-left: 0; border-right: 0; border-bottom: 0; } + .flip-scroll tbody tr { border-left: 1px solid #ddd; } + .flip-scroll th:last-child, + .flip-scroll td:last-child { border-bottom: 1px solid #ddd; } +} + +.no-more-tables table { + width: 100%; +} + +@media only screen and (max-width: 800px) { + + /* Force table to not be like tables anymore */ + .no-more-tables table, + .no-more-tables thead, + .no-more-tables tbody, + .no-more-tables th, + .no-more-tables td, + .no-more-tables tr { + display: block; + } + + /* Hide table headers (but not display: none;, for accessibility) */ + .no-more-tables thead tr { + position: absolute; + top: -9999px; + left: -9999px; + } + + .no-more-tables tr { + border-left: 1px solid #ddd; + border-bottom: 1px solid #ddd; + } + + .no-more-tables tr:last-child { + border-bottom: 0; + } + + .no-more-tables td { + /* Behave like a "row" */ + border: none; + border-bottom: 1px solid #eee; + position: relative; + padding-left: 50%; + white-space: normal; + text-align:left; + } + + .no-more-tables td:before { + /* Now like a table header */ + position: absolute; + /* Top/left values mimic padding */ + top: 6px; + left: 6px; + width: 45%; + padding-right: 10px; + white-space: nowrap; + text-align:left; + font-weight: bold; + } + + /* + Label the data + */ + .no-more-tables td:before { content: attr(data-title); } +} + +/*** +Fancy box fix overlay fix(in v1.2.4) +***/ +.fancybox-overlay { + z-index: 10000 !important; +} + +/*** +Bootstrap Datetimepickers Restyle(in v1.2.4) +***/ +.modal-open .datetimepicker { + z-index: 10060 !Important; +} + +.datetimepicker table .active { + background-image: none !important; + background-color: #4b8df8 !important; + filter: none !important; +} + +.datetimepicker table td { + font-weight: 300 !important; + font-family: 'Open Sans' !important; +} + +.datetimepicker table th { + font-family: 'Open Sans' !important; + font-weight: 400 !important; +} + +/*** +Bootstrap Datepickers Restyle(in v1.2.4) +***/ +.modal-open .datepicker { + z-index: 10060 !Important; +} + +.datepicker table .active { + background-image: none !important; + background-color: #4b8df8 !important; + filter: none !important; +} + +.datepicker table td { + font-weight: 300 !important; + font-family: 'Open Sans' !important; +} + +.datepicker table th { + font-family: 'Open Sans' !important; + font-weight: 400 !important; +} + + +/*** +Bootstrap Colorpicker (in v1.3) +***/ +.modal-open .colorpicker { + z-index: 10060 !important; +} + +/*** +Dropdown Checkboxes (in v1.3) +***/ +.dropdown-checkboxes { + padding: 5px; +} + +.dropdown-checkboxes label { + color: #333; + margin-bottom: 4px; + margin-top: 4px; +} + +/*** +Datatables Plugin(in v1.3) +***/ +.dataTable { + clear: both; + margin-top: 5px; +} + +.dataTables_filter label { + line-height: 32px !important; +} + +.dataTable .row-details { + margin-top: 3px; + display: inline-block; + cursor: pointer; + width: 14px; + height: 14px; +} + +.dataTable .row-details.row-details-close { + background: url("../image/datatable-row-openclose.png") no-repeat 0 0; +} + +.dataTable .row-details.row-details-open { + background: url("../image/datatable-row-openclose.png") no-repeat 0 -23px !important; +} + +.dataTable .details { + background-color: #eee !important; +} + +.dataTable .details td, +.dataTable .details th { + padding: 4px; + background-color: none !important; + border: 0; +} + +.dataTable .details tr:hover td, +.dataTable .details tr:hover th { + background-color: none !important; +} + +.dataTable .details tr:nth-child(odd) td, +.dataTable .details tr:nth-child(odd) th { + background-color: #eee !important; +} + +.dataTable .details tr:nth-child(even) td, +.dataTable .details tr:nth-child(even) th { + background-color: #eee !important; +} + +#mainFrame{ + background: #FFFFFF; + width: 100%; + height: 100%; +} diff --git a/mall-master/src/main/resources/static/css/timeline.css b/mall-master/src/main/resources/static/css/timeline.css new file mode 100644 index 0000000..82901ad --- /dev/null +++ b/mall-master/src/main/resources/static/css/timeline.css @@ -0,0 +1,322 @@ +/*** +Timeline UI Base +***/ +.timeline { + margin: 0 0 0 0; + padding: 0; + list-style: none; + position: relative; +} + +/* The line */ +.timeline:before { + content: ''; + position: absolute; + top: 0; + bottom: 0; + width: 10px; + background: #ccc; + left: 20%; + margin-left: -10px; +} + +.timeline > li { + position: relative; +} + +/* The date/time */ +.timeline > li .timeline-time { + display: block; + width: 15%; + padding-right: 100px; + position: absolute; +} + +.timeline > li .timeline-time span { + display: block; + text-align: right; +} + +.timeline > li .timeline-time span.date { + font-size: 12px; + color: #bdd0db; + display: block; + margin-bottom: 5px; + font-weight: 300; +} + +.timeline > li .timeline-time span.time { + font-weight: 300; + font-size: 36px; +} + +/* Right content */ + +.timeline > li .timeline-body { + margin: 0 0 15px 25%; + color: #fff; + padding: 10px; + font-weight: 300; + position: relative; + border-radius: 5px; +} + +.timeline > li .timeline-body h2 { + margin-top: 0px; + padding: 0 0 5px 0; + border-bottom: 1px solid rgba(255,255,255,0.3); + font-size: 24px; +} + +.timeline > li .timeline-content { + font-size: 14px; +} + +.ie8 .timeline > li .timeline-body h2 { + border-bottom: 1px solid #eee; +} + +.timeline > li .timeline-body img.timeline-img { + width: 75px; + height: 75px; + margin: 5px 10px 0 0px; +} + +.timeline > li .timeline-body img.pull-right { + margin-left: 10px; +} + + +.timeline > li .timeline-body a.nav-link { + display: inline-block; + margin-top: 10px; + color: #fff; + font-size: 14px; + padding: 0px; + text-align: left; + text-decoration: none; +} + +.timeline > li .timeline-body a.nav-link:hover { + opacity: 0.5; + filter: alpha(opacity=50); +} + +.timeline > li .timeline-body .btn { + margin-top: 10px; +} + +/* The triangle */ +.timeline > li .timeline-body:after { + right: 100%; + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none; + border-right-color: #3594cb; + border-width: 10px; + top: 19px; +} + +.timeline > li .timeline-content:after, +.timeline > li .timeline-content:before { + display: table; + line-height: 0; + content: ""; +} + +.timeline > li .timeline-content:after { + clear: both; +} + +.timeline >li .timeline-footer:after, +.timeline >li .timeline-footer:before { + content: ""; + display: table; + line-height: 0; +} + +.timeline >li .timeline-footer:after { + clear: both; +} + +/* The icons */ +.timeline > li .timeline-icon { + width: 40px; + height: 40px; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + font-size: 1.4em; + line-height: 40px; + -webkit-font-smoothing: antialiased; + position: absolute; + color: #fff; + background: #aaa; + border-radius: 50%; + box-shadow: 0 0 0 8px #ccc; + text-align: center; + left: 20%; + top: 0; + margin: 5px 0 0 -27px; + padding-bottom: 3px; + padding-right: 1px; + padding-left: 2px; + -webkit-border-radius: 30px !important; + -moz-border-radius: 30px !important; + border-radius: 30px !important; +} + +/* Red */ +.timeline li.timeline-red .timeline-body:after { + border-right-color: #e02222; +} + +.timeline li.timeline-red .timeline-body { + background: #e02222; +} + +.timeline li.timeline-red .timeline-time span.time { + color: #e02222; +} + +/* Yellow */ +.timeline li.timeline-yellow .timeline-body:after { + border-right-color: #ffb848; +} + +.timeline li.timeline-yellow .timeline-body { + background: #ffb848; +} + +.timeline li.timeline-yellow .timeline-time span.time { + color: #ffb848; +} + +/* Green */ +.timeline li.timeline-green .timeline-body:after { + border-right-color: #35aa47; +} + +.timeline li.timeline-green .timeline-body { + background: #35aa47; +} + +.timeline li.timeline-green .timeline-time span.time { + color: #35aa47; +} + +/* Blue */ +.timeline li.timeline-blue .timeline-body:after { + border-right-color: #4b8df8; +} + +.timeline li.timeline-blue .timeline-body { + background: #4b8df8; +} + +.timeline li.timeline-blue .timeline-time span.time { + color: #4b8df8; +} + +/* Purple */ +.timeline li.timeline-purple .timeline-body:after { + border-right-color: #852b99; +} + +.timeline li.timeline-purple .timeline-body { + background: #852b99; +} + +.timeline li.timeline-purple .timeline-time span.time { + color: #852b99; +} + +/* Grey */ +.timeline li.timeline-grey .timeline-body:after { + border-right-color: #555555; +} + +.timeline li.timeline-grey .timeline-body { + background: #555555; +} + +.timeline li.timeline-grey .timeline-time span.time { + color: #555555; +} + +@media (max-width: 767px) { + timeline > li .timeline-time span.time { + font-size: 18px; + } + + .timeline:before { + display: none; + } + + .timeline > li .timeline-time { + width: 100%; + position: relative; + padding: 0 0 20px 0; + } + + .timeline > li .timeline-time span { + text-align: left; + } + + .timeline > li .timeline-body { + margin: 0 0 30px 0; + padding: 1em; + } + + .timeline > li .timeline-body:after { + right: auto; + left: 20px; + top: -20px; + } + + .timeline > li .timeline-icon { + position: relative; + float: right; + left: auto; + margin: -55px 5px 0 0px; + } + + /*colors*/ + + + .timeline li.timeline-red .timeline-body:after { + border-right-color: transparent; + border-bottom-color: #e02222; + } + + .timeline li.timeline-blue .timeline-body:after { + border-right-color: transparent; + border-bottom-color: #4b8df8; + } + + .timeline li.timeline-green .timeline-body:after { + border-right-color: transparent; + border-bottom-color: #35aa47; + } + + .timeline li.timeline-yellow .timeline-body:after { + border-right-color: transparent; + border-bottom-color: #ffb848; + } + + .timeline li.timeline-purple .timeline-body:after { + border-right-color: transparent; + border-bottom-color: #852b99; + } + + .timeline li.timeline-grey .timeline-body:after { + border-right-color: transparent; + border-bottom-color: #555555; + } +} + diff --git a/mall-master/src/main/resources/static/css/timepicker.css b/mall-master/src/main/resources/static/css/timepicker.css new file mode 100644 index 0000000..8d838e2 --- /dev/null +++ b/mall-master/src/main/resources/static/css/timepicker.css @@ -0,0 +1,88 @@ +.bootstrap-timepicker.dropdown-menu { + border-radius: 4px 4px 4px 4px; + display: none; + left: 0; + margin-top: 1px; + padding: 4px; + top: 0; + min-width: 10px; + z-index: 99999; +} +.bootstrap-timepicker.dropdown-menu.open { + display: inline-block; +} +.bootstrap-timepicker.dropdown-menu:before { + border-bottom: 7px solid rgba(0, 0, 0, 0.2); + border-left: 7px solid transparent; + border-right: 7px solid transparent; + content: ""; + left: 6px; + position: absolute; + top: -7px; +} +.bootstrap-timepicker.dropdown-menu:after { + border-bottom: 6px solid #FFFFFF; + border-left: 6px solid transparent; + border-right: 6px solid transparent; + content: ""; + left: 7px; + position: absolute; + top: -6px; +} +.bootstrap-timepicker.modal { + margin-left: -100px; + margin-top: 0; + top: 30%; + width: 200px; +} +.bootstrap-timepicker.modal .modal-header h3 { + font-size: 16px !important; + margin-top: 3px; + margin-bottom: 3px; +} +.bootstrap-timepicker.modal .modal-content { + padding: 0; +} +.bootstrap-timepicker table { + margin: 0; + width: 100%; +} +.bootstrap-timepicker table td { + height: 30px; + margin: 0; + padding: 2px; + text-align: center; +} +.bootstrap-timepicker table td span { + width: 100%; +} +.bootstrap-timepicker table td a { + border: 1px solid transparent; + display: inline-block; + margin: 0; + outline: 0 none; + padding: 8px 0; + width: 3em; +} +.bootstrap-timepicker table td a:hover { + background-color: #EEEEEE; + border-color: #DDDDDD; + border-radius: 4px 4px 4px 4px; + text-decoration: none; +} +.bootstrap-timepicker table td a i { + margin-top: 2px; +} +.bootstrap-timepicker table td input { + margin: 0; + text-align: center; + width: 25px; +} +.bootstrap-timepicker-component .add-on { + cursor: pointer; +} +.bootstrap-timepicker-component .add-on i { + display: block; + height: 16px; + width: 16px; +} diff --git a/mall-master/src/main/resources/static/css/uniform.default.css b/mall-master/src/main/resources/static/css/uniform.default.css new file mode 100644 index 0000000..304d53b --- /dev/null +++ b/mall-master/src/main/resources/static/css/uniform.default.css @@ -0,0 +1,366 @@ +/* + +Uniform Theme: Uniform Default +Version: 1.8 +By: Josh Pyles +License: MIT License +--- +For use with the Uniform plugin: +http://uniformjs.com/ + +*/ +/* General settings */ +div.selector, div.selector span, div.checker span, div.radio span, div.uploader, div.uploader span.action, div.button, div.button span { + background-image: url("../image/bg-input.png"); + background-repeat: no-repeat; + -webkit-font-smoothing: antialiased; } +div.selector, div.checker, div.button, div.radio, div.uploader { + display: -moz-inline-box; + display: inline-block; + *display: inline; + zoom: 1; + vertical-align: middle; + /* Keeping this as :focus to remove browser styles */ } + div.selector:focus, div.checker:focus, div.button:focus, div.radio:focus, div.uploader:focus { + outline: 0; } +div.selector, div.selector *, div.radio, div.radio *, div.checker, div.checker *, div.uploader, div.uploader *, div.button, div.button * { + margin: 0; + padding: 0; } + +.highContrastDetect { + background: url("../image/bg-input.png") repeat-x 0 0; + width: 0px; + height: 0px; } + +/* Input & Textarea */ +input.uniform-input, +select.uniform-multiselect, +textarea.uniform { + padding: 3px; + background: url("../image/bg-input.png") repeat-x 0 0; + outline: 0; } + input.uniform-input.active, + select.uniform-multiselect.active, + textarea.uniform.active { + background: url("../image/bg-input.png") repeat-x 0 0; } + +/* Remove default webkit and possible mozilla .search styles. + * Keeping this as :active to remove browser styles */ +div.checker input, +input[type="search"], +input[type="search"]:active { + -moz-appearance: none; + -webkit-appearance: none; } + +/* Select */ +div.selector { + background-position: 0 -130px; + line-height: 26px; + height: 26px; + padding: 0 0 0 10px; + position: relative; + overflow: hidden; } + div.selector span { + text-overflow: ellipsis; + display: block; + overflow: hidden; + white-space: nowrap; + background-position: right 0; + height: 26px; + line-height: 26px; + padding-right: 25px; + cursor: pointer; + width: 100%; + display: block; } + div.selector.fixedWidth { + width: 190px; } + div.selector.fixedWidth span { + width: 155px; } + div.selector select { + opacity: 0; + filter: alpha(opacity=0); + -moz-opacity: 0; + border: none; + background: none; + position: absolute; + height: 22px; + top: 2px; + left: 0px; + width: 100%; } + div.selector.active { + background-position: 0 -156px; } + div.selector.active span { + background-position: right -26px; } + div.selector.hover, div.selector.focus { + background-position: 0 -182px; } + div.selector.hover span, div.selector.focus span { + background-position: right -52px; } + div.selector.hover.active, div.selector.focus.active { + background-position: 0 -208px; } + div.selector.hover.active span, div.selector.focus.active span { + background-position: right -78px; } + div.selector.disabled, div.selector.disabled.active { + background-position: 0 -234px; } + div.selector.disabled span, div.selector.disabled.active span { + background-position: right -104px; } + +/* Checkbox */ +div.checker { + position: relative; } + div.checker, div.checker span, div.checker input { + width: 19px; + height: 19px; } + div.checker span { + display: -moz-inline-box; + display: inline-block; + *display: inline; + zoom: 1; + text-align: center; + background-position: 0 -260px; } + div.checker span.checked { + background-position: -76px -260px; } + div.checker input { + opacity: 0; + filter: alpha(opacity=0); + -moz-opacity: 0; + border: none; + background: none; + display: -moz-inline-box; + display: inline-block; + *display: inline; + zoom: 1; } + div.checker.active span { + background-position: -19px -260px; } + div.checker.active span.checked { + background-position: -95px -260px; } + div.checker.hover span, div.checker.focus span { + background-position: -38px -260px; } + div.checker.hover span.checked, div.checker.focus span.checked { + background-position: -114px -260px; } + div.checker.hover.active span, div.checker.focus.active span { + background-position: -57px -260px; } + div.checker.hover.active span.checked, div.checker.focus.active span.checked { + background-position: -133px -260px; } + div.checker.disabled, div.checker.disabled.active { + background-position: -152px -260px; } + div.checker.disabled span.checked, div.checker.disabled.active span.checked { + background-position: -171px -260px; } + +/* Radio */ +div.radio { + position: relative; } + div.radio, div.radio span, div.radio input { + width: 18px; + height: 18px; } + div.radio span { + display: -moz-inline-box; + display: inline-block; + *display: inline; + zoom: 1; + text-align: center; + background-position: 0 -279px; } + div.radio span.checked { + background-position: -72px -279px; } + div.radio input { + opacity: 0; + filter: alpha(opacity=0); + -moz-opacity: 0; + border: none; + background: none; + display: -moz-inline-box; + display: inline-block; + *display: inline; + zoom: 1; + text-align: center; } + div.radio.active span { + background-position: -18px -18px -279px; } + div.radio.active span.checked { + background-position: -90px -279px; } + div.radio.hover span, div.radio.focus span { + background-position: -36px -36px -279px; } + div.radio.hover span.checked, div.radio.focus span.checked { + background-position: -108px -279px; } + div.radio.hover.active span, div.radio.focus.active span { + background-position: -54px -279px; } + div.radio.hover.active span.checked, div.radio.focus.active span.checked { + background-position: -126px -279px; } + div.radio.disabled span, div.radio.disabled.active span { + background-position: -144px -279px; } + div.radio.disabled span.checked, div.radio.disabled.active span.checked { + background-position: -162px -279px; } + +/* Uploader */ +div.uploader { + background-position: 0 -297px; + height: 28px; + width: 190px; + cursor: pointer; + position: relative; + overflow: hidden; } + div.uploader span.action { + background-position: right -409px; + height: 28px; + line-height: 28px; + width: 82px; + text-align: center; + float: left; + display: inline; + overflow: hidden; + cursor: pointer; } + div.uploader span.filename { + text-overflow: ellipsis; + display: block; + overflow: hidden; + white-space: nowrap; + float: left; + cursor: default; + height: 24px; + margin: 2px 0 2px 2px; + line-height: 24px; + width: 85px; + padding: 0 10px; } + div.uploader input { + opacity: 0; + filter: alpha(opacity=0); + -moz-opacity: 0; + border: none; + background: none; + position: absolute; + top: 0; + right: 0; + float: right; + cursor: default; + width: 100%; + height: 100%; } + div.uploader.active span.action { + background-position: right -465px; } + div.uploader.hover, div.uploader.focus { + background-position: 0 -353px; } + div.uploader.hover span.action, div.uploader.focus span.action { + background-position: right -437px; } + div.uploader.hover.active span.action, div.uploader.focus.active span.action { + background-position: right -493px; } + div.uploader.disabled, div.uploader.disabled.active { + background-position: 0 -325px; } + div.uploader.disabled span.action, div.uploader.disabled.active span.action { + background-position: right -381px; } + +/* Buttons */ +div.button { + background-position: 0 -641px; + height: 30px; + cursor: pointer; + position: relative; + /* Keep buttons barely visible so they can get focus */ } + div.button a, div.button button, div.button input { + opacity: 0.01; + filter: alpha(opacity=1); + -moz-opacity: 0.01; + display: block; + top: 0; + left: 0; + right: 0; + bottom: 0; + position: absolute; } + div.button span { + display: -moz-inline-box; + display: inline-block; + *display: inline; + zoom: 1; + line-height: 22px; + text-align: center; + background-position: right -521px; + height: 22px; + margin-left: 13px; + padding: 8px 15px 0 2px; } + div.button.active { + background-position: 0 -671px; } + div.button.active span { + background-position: right -551px; + cursor: default; } + div.button.hover, div.button.focus { + background-position: 0 -701px; } + div.button.hover span, div.button.focus span { + background-position: right -581px; } + div.button.disabled, div.button.disabled.active { + background-position: 0 -731px; } + div.button.disabled span, div.button.disabled.active span { + background-position: right -611px; + cursor: default; } + +/* INPUT & TEXTAREA */ +input.uniform-input, +select.uniform-multiselect, +textarea.uniform { + font-size: 12px; + font-family: "Helvetica Neue", Arial, Helvetica, sans-serif; + font-weight: normal; + color: #777; + border-top: solid 1px #aaaaaa; + border-left: solid 1px #aaaaaa; + border-bottom: solid 1px #cccccc; + border-right: solid 1px #cccccc; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; } + input.uniform-input.hover, input.uniform-input.focus, + select.uniform-multiselect.hover, + select.uniform-multiselect.focus, + textarea.uniform.hover, + textarea.uniform.focus { + -webkit-box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.3); + box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.3); + border-color: #999; } + +/* PRESENTATION */ +/* Buttons */ +div.button span { + font-weight: bold; + font-family: "Helvetica Neue", Arial, Helvetica, sans-serif; + font-size: 12px; + letter-spacing: 1px; + text-transform: uppercase; } +div.button.hover span, div.button.focus span { + color: #555; } +div.button.disabled span, div.button.disabled.active span { + color: #bbb; } + +/* Select */ +div.selector { + font-size: 12px; } + div.selector span { + color: #666; + text-shadow: 0 1px 0 white; } + div.selector select { + font-family: "Helvetica Neue", Arial, Helvetica, sans-serif; + font-size: 12px; } + div.selector.disabled span, div.selector.disabled.active span { + color: #bbb; } + +/* Checker */ +div.checker { + margin-right: 5px; } + +/* Radio */ +div.radio { + margin-right: 3px; } + +/* Uploader */ +div.uploader span.action { + text-shadow: white 0px 1px 0px; + background-color: #fff; + font-size: 11px; + font-weight: bold; } +div.uploader span.filename { + color: #777; + border-right: solid 1px #bbbbbb; + font-size: 11px; } +div.uploader.disabled span.action, div.uploader.disabled.active span.action { + color: #aaa; } +div.uploader.disabled span.filename, div.uploader.disabled.active span.filename { + border-color: #ddd; + color: #aaa; } + +input.uniform-input, input.uniform-input:focus { + background-color: #fff; } diff --git a/mall-master/src/main/resources/static/fonts/FontAwesome.otf b/mall-master/src/main/resources/static/fonts/FontAwesome.otf new file mode 100644 index 0000000..401ec0f Binary files /dev/null and b/mall-master/src/main/resources/static/fonts/FontAwesome.otf differ diff --git a/mall-master/src/main/resources/static/fonts/fontawesome-webfont.eot b/mall-master/src/main/resources/static/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000..e9f60ca Binary files /dev/null and b/mall-master/src/main/resources/static/fonts/fontawesome-webfont.eot differ diff --git a/mall-master/src/main/resources/static/fonts/fontawesome-webfont.svg b/mall-master/src/main/resources/static/fonts/fontawesome-webfont.svg new file mode 100644 index 0000000..b724d3e --- /dev/null +++ b/mall-master/src/main/resources/static/fonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mall-master/src/main/resources/static/fonts/fontawesome-webfont.ttf b/mall-master/src/main/resources/static/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000..35acda2 Binary files /dev/null and b/mall-master/src/main/resources/static/fonts/fontawesome-webfont.ttf differ diff --git a/mall-master/src/main/resources/static/fonts/fontawesome-webfont.woff b/mall-master/src/main/resources/static/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000..400014a Binary files /dev/null and b/mall-master/src/main/resources/static/fonts/fontawesome-webfont.woff differ diff --git a/mall-master/src/main/resources/static/fonts/fontawesome-webfont.woff2 b/mall-master/src/main/resources/static/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000..4d13fc6 Binary files /dev/null and b/mall-master/src/main/resources/static/fonts/fontawesome-webfont.woff2 differ diff --git a/mall-master/src/main/resources/static/image/bg-input.png b/mall-master/src/main/resources/static/image/bg-input.png new file mode 100644 index 0000000..a9f5fec Binary files /dev/null and b/mall-master/src/main/resources/static/image/bg-input.png differ diff --git a/mall-master/src/main/resources/static/image/logo.png b/mall-master/src/main/resources/static/image/logo.png new file mode 100644 index 0000000..eaba670 Binary files /dev/null and b/mall-master/src/main/resources/static/image/logo.png differ diff --git a/mall-master/src/main/resources/static/js/DT_bootstrap.js b/mall-master/src/main/resources/static/js/DT_bootstrap.js new file mode 100644 index 0000000..558b4f6 --- /dev/null +++ b/mall-master/src/main/resources/static/js/DT_bootstrap.js @@ -0,0 +1,145 @@ +/* Set the defaults for DataTables initialisation */ +$.extend( true, $.fn.dataTable.defaults, { + "sDom": "<'row-fluid'<'span6'l><'span6'f>r>t<'row-fluid'<'span6'i><'span6'p>>", + "sPaginationType": "bootstrap", + "oLanguage": { + "sLengthMenu": "_MENU_ records per page" + } +} ); + + +/* Default class modification */ +$.extend( $.fn.dataTableExt.oStdClasses, { + "sWrapper": "dataTables_wrapper form-inline" +} ); + + +/* API method to get paging information */ +$.fn.dataTableExt.oApi.fnPagingInfo = function ( oSettings ) +{ + return { + "iStart": oSettings._iDisplayStart, + "iEnd": oSettings.fnDisplayEnd(), + "iLength": oSettings._iDisplayLength, + "iTotal": oSettings.fnRecordsTotal(), + "iFilteredTotal": oSettings.fnRecordsDisplay(), + "iPage": Math.ceil( oSettings._iDisplayStart / oSettings._iDisplayLength ), + "iTotalPages": Math.ceil( oSettings.fnRecordsDisplay() / oSettings._iDisplayLength ) + }; +}; + + +/* Bootstrap style pagination control */ +$.extend( $.fn.dataTableExt.oPagination, { + "bootstrap": { + "fnInit": function( oSettings, nPaging, fnDraw ) { + var oLang = oSettings.oLanguage.oPaginate; + var fnClickHandler = function ( e ) { + e.preventDefault(); + if ( oSettings.oApi._fnPageChange(oSettings, e.data.action) ) { + fnDraw( oSettings ); + } + }; + + $(nPaging).addClass('pagination').append( + '' + ); + var els = $('a', nPaging); + $(els[0]).bind( 'click.DT', { action: "previous" }, fnClickHandler ); + $(els[1]).bind( 'click.DT', { action: "next" }, fnClickHandler ); + }, + + "fnUpdate": function ( oSettings, fnDraw ) { + var iListLength = 5; + var oPaging = oSettings.oInstance.fnPagingInfo(); + var an = oSettings.aanFeatures.p; + var i, j, sClass, iStart, iEnd, iHalf=Math.floor(iListLength/2); + + if ( oPaging.iTotalPages < iListLength) { + iStart = 1; + iEnd = oPaging.iTotalPages; + } + else if ( oPaging.iPage <= iHalf ) { + iStart = 1; + iEnd = iListLength; + } else if ( oPaging.iPage >= (oPaging.iTotalPages-iHalf) ) { + iStart = oPaging.iTotalPages - iListLength + 1; + iEnd = oPaging.iTotalPages; + } else { + iStart = oPaging.iPage - iHalf + 1; + iEnd = iStart + iListLength - 1; + } + + for ( i=0, iLen=an.length ; i'+j+'') + .insertBefore( $('li:last', an[i])[0] ) + .bind('click', function (e) { + e.preventDefault(); + oSettings._iDisplayStart = (parseInt($('a', this).text(),10)-1) * oPaging.iLength; + fnDraw( oSettings ); + } ); + } + + // Add / remove disabled classes from the static elements + if ( oPaging.iPage === 0 ) { + $('li:first', an[i]).addClass('disabled'); + } else { + $('li:first', an[i]).removeClass('disabled'); + } + + if ( oPaging.iPage === oPaging.iTotalPages-1 || oPaging.iTotalPages === 0 ) { + $('li:last', an[i]).addClass('disabled'); + } else { + $('li:last', an[i]).removeClass('disabled'); + } + } + } + } +} ); + + +/* + * TableTools Bootstrap compatibility + * Required TableTools 2.1+ + */ +if ( $.fn.DataTable.TableTools ) { + // Set the classes that TableTools uses to something suitable for Bootstrap + $.extend( true, $.fn.DataTable.TableTools.classes, { + "container": "DTTT btn-group", + "buttons": { + "normal": "btn", + "disabled": "disabled" + }, + "collection": { + "container": "DTTT_dropdown dropdown-menu", + "buttons": { + "normal": "", + "disabled": "disabled" + } + }, + "print": { + "info": "DTTT_print_info modal" + }, + "select": { + "row": "active" + } + } ); + + // Have the collection use a bootstrap compatible dropdown + $.extend( true, $.fn.DataTable.TableTools.DEFAULTS.oTags, { + "collection": { + "container": "ul", + "button": "li", + "liner": "a" + } + } ); +} \ No newline at end of file diff --git a/mall-master/src/main/resources/static/js/additional-methods.min.js b/mall-master/src/main/resources/static/js/additional-methods.min.js new file mode 100644 index 0000000..94e500b --- /dev/null +++ b/mall-master/src/main/resources/static/js/additional-methods.min.js @@ -0,0 +1,11 @@ +/*! + * jQuery Validation Plugin 1.11.1 + * + * http://bassistance.de/jquery-plugins/jquery-plugin-validation/ + * http://docs.jquery.com/Plugins/Validation + * + * Copyright 2013 Jörn Zaefferer + * Released under the MIT license: + * http://www.opensource.org/licenses/mit-license.php + */ +(function(){function a(b){return b.replace(/<.[^<>]*?>/g," ").replace(/ | /gi," ").replace(/[.(),;:!?%#$'"_+=\/\-]*/g,"")}jQuery.validator.addMethod("maxWords",function(c,b,d){return this.optional(b)||a(c).match(/\b\w+\b/g).length<=d},jQuery.validator.format("Please enter {0} words or less."));jQuery.validator.addMethod("minWords",function(c,b,d){return this.optional(b)||a(c).match(/\b\w+\b/g).length>=d},jQuery.validator.format("Please enter at least {0} words."));jQuery.validator.addMethod("rangeWords",function(e,b,f){var d=a(e);var c=/\b\w+\b/g;return this.optional(b)||d.match(c).length>=f[0]&&d.match(c).length<=f[1]},jQuery.validator.format("Please enter between {0} and {1} words."))}());jQuery.validator.addMethod("letterswithbasicpunc",function(b,a){return this.optional(a)||/^[a-z\-.,()'"\s]+$/i.test(b)},"Letters or punctuation only please");jQuery.validator.addMethod("alphanumeric",function(b,a){return this.optional(a)||/^\w+$/i.test(b)},"Letters, numbers, and underscores only please");jQuery.validator.addMethod("lettersonly",function(b,a){return this.optional(a)||/^[a-z]+$/i.test(b)},"Letters only please");jQuery.validator.addMethod("nowhitespace",function(b,a){return this.optional(a)||/^\S+$/i.test(b)},"No white space please");jQuery.validator.addMethod("ziprange",function(b,a){return this.optional(a)||/^90[2-5]\d\{2\}-\d{4}$/.test(b)},"Your ZIP-code must be in the range 902xx-xxxx to 905-xx-xxxx");jQuery.validator.addMethod("zipcodeUS",function(b,a){return this.optional(a)||/\d{5}-\d{4}$|^\d{5}$/.test(b)},"The specified US ZIP Code is invalid");jQuery.validator.addMethod("integer",function(b,a){return this.optional(a)||/^-?\d+$/.test(b)},"A positive or negative non-decimal number please");jQuery.validator.addMethod("vinUS",function(o){if(o.length!==17){return false}var h,a,l,j,b,k;var c=["A","B","C","D","E","F","G","H","J","K","L","M","N","P","R","S","T","U","V","W","X","Y","Z"];var m=[1,2,3,4,5,6,7,8,1,2,3,4,5,7,9,2,3,4,5,6,7,8,9];var g=[8,7,6,5,4,3,2,10,0,9,8,7,6,5,4,3,2];var e=0;for(h=0;h<17;h++){j=g[h];l=o.slice(h,h+1);if(h===8){k=l}if(!isNaN(l)){l*=j}else{for(a=0;a9&&a.match(/^(\+?1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/)},"Please specify a valid phone number");jQuery.validator.addMethod("phoneUK",function(a,b){a=a.replace(/\(|\)|\s+|-/g,"");return this.optional(b)||a.length>9&&a.match(/^(?:(?:(?:00\s?|\+)44\s?)|(?:\(?0))(?:\d{2}\)?\s?\d{4}\s?\d{4}|\d{3}\)?\s?\d{3}\s?\d{3,4}|\d{4}\)?\s?(?:\d{5}|\d{3}\s?\d{3})|\d{5}\)?\s?\d{4,5})$/)},"Please specify a valid phone number");jQuery.validator.addMethod("mobileUK",function(a,b){a=a.replace(/\(|\)|\s+|-/g,"");return this.optional(b)||a.length>9&&a.match(/^(?:(?:(?:00\s?|\+)44\s?|0)7(?:[45789]\d{2}|624)\s?\d{3}\s?\d{3})$/)},"Please specify a valid mobile number");jQuery.validator.addMethod("phonesUK",function(a,b){a=a.replace(/\(|\)|\s+|-/g,"");return this.optional(b)||a.length>9&&a.match(/^(?:(?:(?:00\s?|\+)44\s?|0)(?:1\d{8,9}|[23]\d{9}|7(?:[45789]\d{8}|624\d{6})))$/)},"Please specify a valid uk phone number");jQuery.validator.addMethod("postcodeUK",function(b,a){return this.optional(a)||/^((([A-PR-UWYZ][0-9])|([A-PR-UWYZ][0-9][0-9])|([A-PR-UWYZ][A-HK-Y][0-9])|([A-PR-UWYZ][A-HK-Y][0-9][0-9])|([A-PR-UWYZ][0-9][A-HJKSTUW])|([A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRVWXY]))\s?([0-9][ABD-HJLNP-UW-Z]{2})|(GIR)\s?(0AA))$/i.test(b)},"Please specify a valid UK postcode");jQuery.validator.addMethod("strippedminlength",function(b,a,c){return jQuery(b).text().length>=c},jQuery.validator.format("Please enter at least {0} characters"));jQuery.validator.addMethod("email2",function(b,a,c){return this.optional(a)||/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)*(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(b)},jQuery.validator.messages.email);jQuery.validator.addMethod("url2",function(b,a,c){return this.optional(a)||/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)*(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(b)},jQuery.validator.messages.url);jQuery.validator.addMethod("creditcardtypes",function(b,a,c){if(/[^0-9\-]+/.test(b)){return false}b=b.replace(/\D/g,"");var d=0;if(c.mastercard){d|=1}if(c.visa){d|=2}if(c.amex){d|=4}if(c.dinersclub){d|=8}if(c.enroute){d|=16}if(c.discover){d|=32}if(c.jcb){d|=64}if(c.unknown){d|=128}if(c.all){d=1|2|4|8|16|32|64|128}if(d&1&&/^(5[12345])/.test(b)){return b.length===16}if(d&2&&/^(4)/.test(b)){return b.length===16}if(d&4&&/^(3[47])/.test(b)){return b.length===15}if(d&8&&/^(3(0[012345]|[68]))/.test(b)){return b.length===14}if(d&16&&/^(2(014|149))/.test(b)){return b.length===15}if(d&32&&/^(6011)/.test(b)){return b.length===16}if(d&64&&/^(3)/.test(b)){return b.length===16}if(d&64&&/^(2131|1800)/.test(b)){return b.length===15}if(d&128){return true}return false},"Please enter a valid credit card number.");jQuery.validator.addMethod("ipv4",function(b,a,c){return this.optional(a)||/^(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)$/i.test(b)},"Please enter a valid IP v4 address.");jQuery.validator.addMethod("ipv6",function(b,a,c){return this.optional(a)||/^((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$/i.test(b)},"Please enter a valid IP v6 address.");jQuery.validator.addMethod("pattern",function(b,a,c){if(this.optional(a)){return true}if(typeof c==="string"){c=new RegExp("^(?:"+c+")$")}return c.test(b)},"Invalid format.");jQuery.validator.addMethod("require_from_group",function(g,f,d){var e=this;var b=d[1];var c=$(b,f.form).filter(function(){return e.elementValue(this)}).length>=d[0];if(!$(f).data("being_validated")){var a=$(b,f.form);a.data("being_validated",true);a.valid();a.data("being_validated",false)}return c},jQuery.format("Please fill at least {0} of these fields."));jQuery.validator.addMethod("skip_or_fill_minimum",function(h,e,i){var b=this,c=i[0],d=i[1];var g=$(d,e.form).filter(function(){return b.elementValue(this)}).length;var a=g>=c||g===0;if(!$(e).data("being_validated")){var f=$(d,e.form);f.data("being_validated",true);f.valid();f.data("being_validated",false)}return a},jQuery.format("Please either skip these fields or fill at least {0} of them."));jQuery.validator.addMethod("accept",function(e,c,g){var f=typeof g==="string"?g.replace(/\s/g,"").replace(/,/g,"|"):"image/*",d=this.optional(c),b,a;if(d){return d}if($(c).attr("type")==="file"){f=f.replace(/\*/g,".*");if(c.files&&c.files.length){for(b=0;b 1280 && $('body').hasClass('page-boxed') === false) { + $(".responsive").each(function () { + var forTablet = $(this).attr('data-tablet'); + var forDesktop = $(this).attr('data-desktop'); + if (forTablet) { + $(this).removeClass(forTablet); + $(this).addClass(forDesktop); + } + }); + } + } + + var handleSidebarState = function () { + // remove sidebar toggler if window width smaller than 900(for table and phone mode) + if ($(window).width() < 980) { + $('body').removeClass("page-sidebar-closed"); + } + } + + var runResponsiveHandlers = function () { + // reinitialize other subscribed elements + for (var i in responsiveHandlers) { + var each = responsiveHandlers[i]; + each.call(); + } + } + + var handleResponsive = function () { + handleTooltips(); + handleSidebarState(); + handleDesktopTabletContents(); + handleSidebarAndContentHeight(); + handleChoosenSelect(); + handleFixedSidebar(); + runResponsiveHandlers(); + } + + var handleResponsiveOnInit = function () { + handleSidebarState(); + handleDesktopTabletContents(); + handleSidebarAndContentHeight(); + } + + var handleResponsiveOnResize = function () { + var resize; + if (isIE8) { + var currheight; + $(window).resize(function() { + if(currheight == document.documentElement.clientHeight) { + return; //quite event since only body resized not window. + } + if (resize) { + clearTimeout(resize); + } + resize = setTimeout(function() { + handleResponsive(); + }, 50); // wait 50ms until window resize finishes. + currheight = document.documentElement.clientHeight; // store last body client height + }); + } else { + $(window).resize(function() { + if (resize) { + clearTimeout(resize); + } + resize = setTimeout(function() { + console.log('resize'); + handleResponsive(); + }, 50); // wait 50ms until window resize finishes. + }); + } + } + + //* BEGIN:CORE HANDLERS *// + // this function handles responsive layout on screen size resize or mobile device rotate. + + var handleSidebarAndContentHeight = function () { + var content = $('.page-content'); + var sidebar = $('.page-sidebar'); + var body = $('body'); + var height; + //alert($(window).height()); + if (body.hasClass("page-footer-fixed") === true && body.hasClass("page-sidebar-fixed") === false) { + var available_height = $(window).height() - $('.footer').height()-13; + if (content.height() < available_height) { + content.attr('style', 'min-height:' + available_height + 'px !important'); + } + } else { + if (body.hasClass('page-sidebar-fixed')) { + height = _calculateFixedSidebarViewportHeight(); + + } else { + height = sidebar.height() + 20; + } + if (height >= content.height()) { + content.attr('style', 'min-height:' + height + 'px !important'); + //$("#content").attr('style', 'height:100%;width:100%;');; + + } + } + } + + var handleSidebarMenu = function () { + jQuery('.page-sidebar').on('click', 'li > a', function (e) { + if ($(this).next().hasClass('sub-menu') == false) { + if ($('.btn-navbar').hasClass('collapsed') == false) { + $('.btn-navbar').click(); + } + return; + } + + var parent = $(this).parent().parent(); + + parent.children('li.open').children('a').children('.arrow').removeClass('open'); + parent.children('li.open').children('.sub-menu').slideUp(200); + parent.children('li.open').removeClass('open'); + + var sub = jQuery(this).next(); + if (sub.is(":visible")) { + jQuery('.arrow', jQuery(this)).removeClass("open"); + jQuery(this).parent().removeClass("open"); + sub.slideUp(200, function () { + handleSidebarAndContentHeight(); + }); + } else { + jQuery('.arrow', jQuery(this)).addClass("open"); + jQuery(this).parent().addClass("open"); + sub.slideDown(200, function () { + handleSidebarAndContentHeight(); + }); + } + + e.preventDefault(); + }); + + // handle ajax links + jQuery('.page-sidebar').on('click', ' li > a.ajaxify', function (e) { + e.preventDefault(); + App.scrollTop(); + + var url = $(this).attr("href"); + var menuContainer = jQuery('.page-sidebar ul'); + var pageContent = $('.page-content'); + var pageContentBody = $('.page-content .page-content-body'); + + menuContainer.children('li.active').removeClass('active'); + menuContainer.children('arrow.open').removeClass('open'); + + $(this).parents('li').each(function () { + $(this).addClass('active'); + $(this).children('a > span.arrow').addClass('open'); + }); + $(this).parents('li').addClass('active'); + + App.blockUI(pageContent, false); + + $.post(url, {}, function (res) { + App.unblockUI(pageContent); + pageContentBody.html(res); + App.fixContentHeight(); // fix content height + App.initUniform(); // initialize uniform elements + }); + }); + } + + var _calculateFixedSidebarViewportHeight = function () { + var sidebarHeight = $(window).height() - $('.header').height(); + if ($('body').hasClass("page-footer-fixed")) { + sidebarHeight = sidebarHeight - $('.footer').height()-13; + } + + return sidebarHeight; + } + + var handleFixedSidebar = function () { + var menu = $('.page-sidebar-menu'); + + if (menu.parent('.slimScrollDiv').size() === 1) { // destroy existing instance before updating the height + menu.slimScroll({ + destroy: true + }); + menu.removeAttr('style'); + $('.page-sidebar').removeAttr('style'); + } + + if ($('.page-sidebar-fixed').size() === 0) { + handleSidebarAndContentHeight(); + return; + } + + if ($(window).width() >= 980) { + var sidebarHeight = _calculateFixedSidebarViewportHeight(); + + menu.slimScroll({ + size: '7px', + color: '#a1b2bd', + opacity: .3, + position: isRTL ? 'left' : ($('.page-sidebar-on-right').size() === 1 ? 'left' : 'right'), + height: sidebarHeight, + allowPageScroll: false, + disableFadeOut: false + }); + handleSidebarAndContentHeight(); + } + } + + var handleFixedSidebarHoverable = function () { + if ($('body').hasClass('page-sidebar-fixed') === false) { + return; + } + + $('.page-sidebar').off('mouseenter').on('mouseenter', function () { + var body = $('body'); + + if ((body.hasClass('page-sidebar-closed') === false || body.hasClass('page-sidebar-fixed') === false) || $(this).hasClass('page-sidebar-hovering')) { + return; + } + + body.removeClass('page-sidebar-closed').addClass('page-sidebar-hover-on'); + $(this).addClass('page-sidebar-hovering'); + $(this).animate({ + width: sidebarWidth + }, 400, '', function () { + $(this).removeClass('page-sidebar-hovering'); + }); + }); + + $('.page-sidebar').off('mouseleave').on('mouseleave', function () { + var body = $('body'); + + if ((body.hasClass('page-sidebar-hover-on') === false || body.hasClass('page-sidebar-fixed') === false) || $(this).hasClass('page-sidebar-hovering')) { + return; + } + + $(this).addClass('page-sidebar-hovering'); + $(this).animate({ + width: sidebarCollapsedWidth + }, 400, '', function () { + $('body').addClass('page-sidebar-closed').removeClass('page-sidebar-hover-on'); + $(this).removeClass('page-sidebar-hovering'); + }); + }); + } + + var handleSidebarToggler = function () { + // handle sidebar show/hide + $('.page-sidebar').on('click', '.sidebar-toggler', function (e) { + var body = $('body'); + var sidebar = $('.page-sidebar'); + + if ((body.hasClass("page-sidebar-hover-on") && body.hasClass('page-sidebar-fixed')) || sidebar.hasClass('page-sidebar-hovering')) { + body.removeClass('page-sidebar-hover-on'); + sidebar.css('width', '').hide().show(); + e.stopPropagation(); + runResponsiveHandlers(); + return; + } + + $(".sidebar-search", sidebar).removeClass("open"); + + if (body.hasClass("page-sidebar-closed")) { + body.removeClass("page-sidebar-closed"); + if (body.hasClass('page-sidebar-fixed')) { + sidebar.css('width', ''); + } + } else { + body.addClass("page-sidebar-closed"); + } + runResponsiveHandlers(); + }); + + // handle the search bar close + $('.page-sidebar').on('click', '.sidebar-search .remove', function (e) { + e.preventDefault(); + $('.sidebar-search').removeClass("open"); + }); + + // handle the search query submit on enter press + $('.page-sidebar').on('keypress', '.sidebar-search input', function (e) { + if (e.which == 13) { + window.location.href = "extra_search.html"; + return false; //<---- Add this line + } + }); + + // handle the search submit + $('.sidebar-search .submit').on('click', function (e) { + e.preventDefault(); + + if ($('body').hasClass("page-sidebar-closed")) { + if ($('.sidebar-search').hasClass('open') == false) { + if ($('.page-sidebar-fixed').size() === 1) { + $('.page-sidebar .sidebar-toggler').click(); //trigger sidebar toggle button + } + $('.sidebar-search').addClass("open"); + } else { + window.location.href = "extra_search.html"; + } + } else { + window.location.href = "extra_search.html"; + } + }); + } + + var handleHorizontalMenu = function () { + //handle hor menu search form toggler click + $('.header').on('click', '.hor-menu .hor-menu-search-form-toggler', function (e) { + if ($(this).hasClass('hide')) { + $(this).removeClass('hide'); + $('.header .hor-menu .search-form').hide(); + } else { + $(this).addClass('hide'); + $('.header .hor-menu .search-form').show(); + } + e.preventDefault(); + }); + + //handle hor menu search button click + $('.header').on('click', '.hor-menu .search-form .btn', function (e) { + window.location.href = "extra_search.html"; + e.preventDefault(); + }); + + //handle hor menu search form on enter press + $('.header').on('keypress', '.hor-menu .search-form input', function (e) { + if (e.which == 13) { + window.location.href = "extra_search.html"; + return false; + } + }); + } + + var handleGoTop = function () { + /* set variables locally for increased performance */ + jQuery('.footer').on('click', '.go-top', function (e) { + App.scrollTo(); + e.preventDefault(); + }); + } + + var handlePortletTools = function () { + jQuery('body').on('click', '.portlet .tools a.remove', function (e) { + e.preventDefault(); + var removable = jQuery(this).parents(".portlet"); + if (removable.next().hasClass('portlet') || removable.prev().hasClass('portlet')) { + jQuery(this).parents(".portlet").remove(); + } else { + jQuery(this).parents(".portlet").parent().remove(); + } + }); + + jQuery('body').on('click', '.portlet .tools a.reload', function (e) { + e.preventDefault(); + var el = jQuery(this).parents(".portlet"); + App.blockUI(el); + window.setTimeout(function () { + App.unblockUI(el); + }, 1000); + }); + + jQuery('body').on('click', '.portlet .tools .collapse, .portlet .tools .expand', function (e) { + e.preventDefault(); + var el = jQuery(this).closest(".portlet").children(".portlet-body"); + if (jQuery(this).hasClass("collapse")) { + jQuery(this).removeClass("collapse").addClass("expand"); + el.slideUp(200); + } else { + jQuery(this).removeClass("expand").addClass("collapse"); + el.slideDown(200); + } + }); + } + + var handleUniform = function () { + if (!jQuery().uniform) { + return; + } + var test = $("input[type=checkbox]:not(.toggle), input[type=radio]:not(.toggle, .star)"); + if (test.size() > 0) { + test.each(function () { + if ($(this).parents(".checker").size() == 0) { + $(this).show(); + $(this).uniform(); + } + }); + } + } + + var handleAccordions = function () { + $(".accordion").collapse().height('auto'); + + var lastClicked; + + //add scrollable class name if you need scrollable panes + jQuery('body').on('click', '.accordion.scrollable .accordion-toggle', function () { + lastClicked = jQuery(this); + }); //move to faq section + + jQuery('body').on('shown', '.accordion.scrollable', function () { + jQuery('html,body').animate({ + scrollTop: lastClicked.offset().top - 150 + }, 'slow'); + }); + } + + var handleTabs = function () { + + // function to fix left/right tab contents + var fixTabHeight = function(tab) { + $(tab).each(function() { + var content = $($($(this).attr("href"))); + var tab = $(this).parent().parent(); + if (tab.height() > content.height()) { + content.css('min-height', tab.height()); + } + }); + } + + // fix tab content on tab shown + $('body').on('shown', '.nav.nav-tabs.tabs-left a[data-toggle="tab"], .nav.nav-tabs.tabs-right a[data-toggle="tab"]', function(){ + fixTabHeight($(this)); + }); + + $('body').on('shown', '.nav.nav-tabs', function(){ + handleSidebarAndContentHeight(); + }); + + //fix tab contents for left/right tabs + fixTabHeight('.nav.nav-tabs.tabs-left > li.active > a[data-toggle="tab"], .nav.nav-tabs.tabs-right > li.active > a[data-toggle="tab"]'); + + //activate tab if tab id provided in the URL + if(location.hash) { + var tabid = location.hash.substr(1); + $('a[href="#'+tabid+'"]').click(); + } + } + + var handleScrollers = function () { + $('.scroller').each(function () { + $(this).slimScroll({ + size: '7px', + color: '#a1b2bd', + position: isRTL ? 'left' : 'right', + height: $(this).attr("data-height"), + alwaysVisible: ($(this).attr("data-always-visible") == "1" ? true : false), + railVisible: ($(this).attr("data-rail-visible") == "1" ? true : false), + disableFadeOut: true + }); + }); + } + + var handleTooltips = function () { + if (App.isTouchDevice()) { // if touch device, some tooltips can be skipped in order to not conflict with click events + jQuery('.tooltips:not(.no-tooltip-on-touch-device)').tooltip(); + } else { + jQuery('.tooltips').tooltip(); + } + } + + var handleDropdowns = function () { + $('body').on('click', '.dropdown-menu.hold-on-click', function(e){ + e.stopPropagation(); + }) + } + + var handlePopovers = function () { + jQuery('.popovers').popover(); + } + + var handleChoosenSelect = function () { + if (!jQuery().chosen) { + return; + } + + $(".chosen").each(function () { + $(this).chosen({ + allow_single_deselect: $(this).attr("data-with-diselect") === "1" ? true : false + }); + }); + } + + var handleFancybox = function () { + if (!jQuery.fancybox) { + return; + } + + if (jQuery(".fancybox-button").size() > 0) { + jQuery(".fancybox-button").fancybox({ + groupAttr: 'data-rel', + prevEffect: 'none', + nextEffect: 'none', + closeBtn: true, + helpers: { + title: { + type: 'inside' + } + } + }); + } + } + + var handleTheme = function () { + + var panel = $('.color-panel'); + + if ($('body').hasClass('page-boxed') == false) { + $('.layout-option', panel).val("fluid"); + } + + $('.sidebar-option', panel).val("default"); + $('.header-option', panel).val("fixed"); + $('.footer-option', panel).val("default"); + + //handle theme layout + var resetLayout = function () { + $("body"). + removeClass("page-boxed"). + removeClass("page-footer-fixed"). + removeClass("page-sidebar-fixed"). + removeClass("page-header-fixed"); + + $('.header > .navbar-inner > .container').removeClass("container").addClass("container-fluid"); + + if ($('.page-container').parent(".container").size() === 1) { + $('.page-container').insertAfter('.header'); + } + + if ($('.footer > .container').size() === 1) { + $('.footer').html($('.footer > .container').html()); + } else if ($('.footer').parent(".container").size() === 1) { + $('.footer').insertAfter('.page-container'); + } + + $('body > .container').remove(); + } + + var lastSelectedLayout = ''; + + var setLayout = function () { + + var layoutOption = $('.layout-option', panel).val(); + var sidebarOption = $('.sidebar-option', panel).val(); + var headerOption = $('.header-option', panel).val(); + var footerOption = $('.footer-option', panel).val(); + + if (sidebarOption == "fixed" && headerOption == "default") { + alert('Default Header with Fixed Sidebar option is not supported. Proceed with Default Header with Default Sidebar.'); + $('.sidebar-option', panel).val("default"); + sidebarOption = 'default'; + } + + resetLayout(); // reset layout to default state + + if (layoutOption === "boxed") { + $("body").addClass("page-boxed"); + + // set header + $('.header > .navbar-inner > .container-fluid').removeClass("container-fluid").addClass("container"); + var cont = $('.header').after('
'); + + // set content + $('.page-container').appendTo('body > .container'); + + // set footer + if (footerOption === 'fixed' || sidebarOption === 'default') { + $('.footer').html('
'+$('.footer').html()+'
'); + } else { + $('.footer').appendTo('body > .container'); + } + } + + if (lastSelectedLayout != layoutOption) { + //layout changed, run responsive handler: + runResponsiveHandlers(); + } + lastSelectedLayout = layoutOption; + + //header + if (headerOption === 'fixed') { + $("body").addClass("page-header-fixed"); + $(".header").removeClass("navbar-static-top").addClass("navbar-fixed-top"); + } else { + $("body").removeClass("page-header-fixed"); + $(".header").removeClass("navbar-fixed-top").addClass("navbar-static-top"); + } + + //sidebar + if (sidebarOption === 'fixed') { + $("body").addClass("page-sidebar-fixed"); + } else { + $("body").removeClass("page-sidebar-fixed"); + } + + //footer + if (footerOption === 'fixed') { + $("body").addClass("page-footer-fixed"); + } else { + $("body").removeClass("page-footer-fixed"); + } + + handleSidebarAndContentHeight(); // fix content height + handleFixedSidebar(); // reinitialize fixed sidebar + handleFixedSidebarHoverable(); // reinitialize fixed sidebar hover effect + } + + // handle theme colors + var setColor = function (color) { + $('#style_color').attr("href", "assets/css/themes/" + color + ".css"); + $.cookie('style_color', color); + } + + $('.icon-color', panel).click(function () { + $('.color-mode').show(); + $('.icon-color-close').show(); + }); + + $('.icon-color-close', panel).click(function () { + $('.color-mode').hide(); + $('.icon-color-close').hide(); + }); + + $('li', panel).click(function () { + var color = $(this).attr("data-style"); + setColor(color); + $('.inline li', panel).removeClass("current"); + $(this).addClass("current"); + }); + + $('.layout-option, .header-option, .sidebar-option, .footer-option', panel).change(setLayout); + } + + var handleFixInputPlaceholderForIE = function () { + //fix html5 placeholder attribute for ie7 & ie8 + if (isIE8 || isIE9) { // ie7&ie8 + // this is html5 placeholder fix for inputs, inputs with placeholder-no-fix class will be skipped(e.g: we need this for password fields) + jQuery('input[placeholder]:not(.placeholder-no-fix), textarea[placeholder]:not(.placeholder-no-fix)').each(function () { + + var input = jQuery(this); + + if(input.val()=='' && input.attr("placeholder") != '') { + input.addClass("placeholder").val(input.attr('placeholder')); + } + + input.focus(function () { + if (input.val() == input.attr('placeholder')) { + input.val(''); + } + }); + + input.blur(function () { + if (input.val() == '' || input.val() == input.attr('placeholder')) { + input.val(input.attr('placeholder')); + } + }); + }); + } + } + + //* END:CORE HANDLERS *// + + return { + + //main function to initiate template pages + init: function () { + + //IMPORTANT!!!: Do not modify the core handlers call order. + + //core handlers + handleInit(); + handleResponsiveOnResize(); // set and handle responsive + handleUniform(); + handleScrollers(); // handles slim scrolling contents + handleResponsiveOnInit(); // handler responsive elements on page load + + //layout handlers + handleFixedSidebar(); // handles fixed sidebar menu + handleFixedSidebarHoverable(); // handles fixed sidebar on hover effect + handleSidebarMenu(); // handles main menu + handleHorizontalMenu(); // handles horizontal menu + handleSidebarToggler(); // handles sidebar hide/show + handleFixInputPlaceholderForIE(); // fixes/enables html5 placeholder attribute for IE9, IE8 + handleGoTop(); //handles scroll to top functionality in the footer + handleTheme(); // handles style customer tool + + //ui component handlers + handlePortletTools(); // handles portlet action bar functionality(refresh, configure, toggle, remove) + handleDropdowns(); // handle dropdowns + handleTabs(); // handle tabs + handleTooltips(); // handle bootstrap tooltips + handlePopovers(); // handles bootstrap popovers + handleAccordions(); //handles accordions + handleChoosenSelect(); // handles bootstrap chosen dropdowns + + App.addResponsiveHandler(handleChoosenSelect); // reinitiate chosen dropdown on main content resize. disable this line if you don't really use chosen dropdowns. + }, + + fixContentHeight: function () { + handleSidebarAndContentHeight(); + }, + + addResponsiveHandler: function (func) { + responsiveHandlers.push(func); + }, + + // useful function to make equal height for contacts stand side by side + setEqualHeight: function (els) { + var tallestEl = 0; + els = jQuery(els); + els.each(function () { + var currentHeight = $(this).height(); + if (currentHeight > tallestEl) { + tallestColumn = currentHeight; + } + }); + els.height(tallestEl); + }, + + // wrapper function to scroll to an element + scrollTo: function (el, offeset) { + pos = el ? el.offset().top : 0; + jQuery('html,body').animate({ + scrollTop: pos + (offeset ? offeset : 0) + }, 'slow'); + }, + + scrollTop: function () { + App.scrollTo(); + }, + + // wrapper function to block element(indicate loading) + blockUI: function (el, centerY) { + var el = jQuery(el); + el.block({ + message: '', + centerY: centerY != undefined ? centerY : true, + css: { + top: '10%', + border: 'none', + padding: '2px', + backgroundColor: 'none' + }, + overlayCSS: { + backgroundColor: '#000', + opacity: 0.05, + cursor: 'wait' + } + }); + }, + + // wrapper function to un-block element(finish loading) + unblockUI: function (el) { + jQuery(el).unblock({ + onUnblock: function () { + jQuery(el).removeAttr("style"); + } + }); + }, + + // initializes uniform elements + initUniform: function (els) { + + if (els) { + jQuery(els).each(function () { + if ($(this).parents(".checker").size() == 0) { + $(this).show(); + $(this).uniform(); + } + }); + } else { + handleUniform(); + } + + }, + + // initializes choosen dropdowns + initChosenSelect: function (els) { + $(els).chosen({ + allow_single_deselect: true + }); + }, + + initFancybox: function () { + handleFancybox(); + }, + + getActualVal: function (el) { + var el = jQuery(el); + if (el.val() === el.attr("placeholder")) { + return ""; + } + + return el.val(); + }, + + getURLParameter: function (paramName) { + var searchString = window.location.search.substring(1), + i, val, params = searchString.split("&"); + + for (i = 0; i < params.length; i++) { + val = params[i].split("="); + if (val[0] == paramName) { + return unescape(val[1]); + } + } + return null; + }, + + // check for device touch support + isTouchDevice: function () { + try { + document.createEvent("TouchEvent"); + return true; + } catch (e) { + return false; + } + }, + + isIE8: function () { + return isIE8; + }, + + isRTL: function () { + return isRTL; + }, + + getLayoutColorCode: function (name) { + if (layoutColorCodes[name]) { + return layoutColorCodes[name]; + } else { + return ''; + } + } + + }; + +}(); + + +$.fn.serializeJson=function(){ + var serializeObj={}; + var array=this.serializeArray(); + var str=this.serialize(); + $(array).each(function(){ + if(serializeObj[this.name]){ + if($.isArray(serializeObj[this.name])){ + serializeObj[this.name].push(this.value); + }else{ + serializeObj[this.name]=[serializeObj[this.name],this.value]; + } + }else{ + serializeObj[this.name]=this.value; + } + }); + return serializeObj; +}; \ No newline at end of file diff --git a/mall-master/src/main/resources/static/js/bootstrap-colorpicker.js b/mall-master/src/main/resources/static/js/bootstrap-colorpicker.js new file mode 100644 index 0000000..6a0fc8a --- /dev/null +++ b/mall-master/src/main/resources/static/js/bootstrap-colorpicker.js @@ -0,0 +1,540 @@ +/* ========================================================= + * bootstrap-colorpicker.js + * http://www.eyecon.ro/bootstrap-colorpicker + * ========================================================= + * Copyright 2012 Stefan Petre + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================= */ + +!function( $ ) { + + // Color object + + var Color = function(val) { + this.value = { + h: 1, + s: 1, + b: 1, + a: 1 + }; + this.setColor(val); + }; + + Color.prototype = { + constructor: Color, + + //parse a string to HSB + setColor: function(val){ + val = val.toLowerCase(); + var that = this; + $.each( CPGlobal.stringParsers, function( i, parser ) { + var match = parser.re.exec( val ), + values = match && parser.parse( match ), + space = parser.space||'rgba'; + if ( values ) { + if (space === 'hsla') { + that.value = CPGlobal.RGBtoHSB.apply(null, CPGlobal.HSLtoRGB.apply(null, values)); + } else { + that.value = CPGlobal.RGBtoHSB.apply(null, values); + } + return false; + } + }); + }, + + setHue: function(h) { + this.value.h = 1- h; + }, + + setSaturation: function(s) { + this.value.s = s; + }, + + setLightness: function(b) { + this.value.b = 1- b; + }, + + setAlpha: function(a) { + this.value.a = parseInt((1 - a)*100, 10)/100; + }, + + // HSBtoRGB from RaphaelJS + // https://github.com/DmitryBaranovskiy/raphael/ + toRGB: function(h, s, b, a) { + if (!h) { + h = this.value.h; + s = this.value.s; + b = this.value.b; + } + h *= 360; + var R, G, B, X, C; + h = (h % 360) / 60; + C = b * s; + X = C * (1 - Math.abs(h % 2 - 1)); + R = G = B = b - C; + + h = ~~h; + R += [C, X, 0, 0, X, C][h]; + G += [X, C, C, X, 0, 0][h]; + B += [0, 0, X, C, C, X][h]; + return { + r: Math.round(R*255), + g: Math.round(G*255), + b: Math.round(B*255), + a: a||this.value.a + }; + }, + + toHex: function(h, s, b, a){ + var rgb = this.toRGB(h, s, b, a); + return '#'+((1 << 24) | (parseInt(rgb.r) << 16) | (parseInt(rgb.g) << 8) | parseInt(rgb.b)).toString(16).substr(1); + }, + + toHSL: function(h, s, b, a){ + if (!h) { + h = this.value.h; + s = this.value.s; + b = this.value.b; + } + var H = h, + L = (2 - s) * b, + S = s * b; + if (L > 0 && L <= 1) { + S /= L; + } else { + S /= 2 - L; + } + L /= 2; + if (S > 1) { + S = 1; + } + return { + h: H, + s: S, + l: L, + a: a||this.value.a + }; + } + }; + + // Picker object + + var Colorpicker = function(element, options){ + this.element = $(element); + var format = options.format||this.element.data('color-format')||'hex'; + this.format = CPGlobal.translateFormats[format]; + this.isInput = this.element.is('input'); + this.component = this.element.is('.color') ? this.element.find('.add-on') : false; + + this.picker = $(CPGlobal.template) + .appendTo('body') + .on('mousedown', $.proxy(this.mousedown, this)); + + if (this.isInput) { + this.element.on({ + 'focus': $.proxy(this.show, this), + 'keyup': $.proxy(this.update, this) + }); + } else if (this.component){ + this.component.on({ + 'click': $.proxy(this.show, this) + }); + } else { + this.element.on({ + 'click': $.proxy(this.show, this) + }); + } + if (format === 'rgba' || format === 'hsla') { + this.picker.addClass('alpha'); + this.alpha = this.picker.find('.colorpicker-alpha')[0].style; + } + + if (this.component){ + this.picker.find('.colorpicker-color').hide(); + this.preview = this.element.find('i')[0].style; + } else { + this.preview = this.picker.find('div:last')[0].style; + } + + this.base = this.picker.find('div:first')[0].style; + this.update(); + }; + + Colorpicker.prototype = { + constructor: Colorpicker, + + show: function(e) { + this.picker.show(); + this.height = this.component ? this.component.outerHeight() : this.element.outerHeight(); + this.place(); + $(window).on('resize', $.proxy(this.place, this)); + if (!this.isInput) { + if (e) { + e.stopPropagation(); + e.preventDefault(); + } + } + $(document).on({ + 'mousedown': $.proxy(this.hide, this) + }); + this.element.trigger({ + type: 'show', + color: this.color + }); + }, + + update: function(){ + this.color = new Color(this.isInput ? this.element.prop('value') : this.element.data('color')); + this.picker.find('i') + .eq(0).css({left: this.color.value.s*100, top: 100 - this.color.value.b*100}).end() + .eq(1).css('top', 100 * (1 - this.color.value.h)).end() + .eq(2).css('top', 100 * (1 - this.color.value.a)); + this.previewColor(); + }, + + setValue: function(newColor) { + this.color = new Color(newColor); + this.picker.find('i') + .eq(0).css({left: this.color.value.s*100, top: 100 - this.color.value.b*100}).end() + .eq(1).css('top', 100 * (1 - this.color.value.h)).end() + .eq(2).css('top', 100 * (1 - this.color.value.a)); + this.previewColor(); + this.element.trigger({ + type: 'changeColor', + color: this.color + }); + }, + + hide: function(){ + this.picker.hide(); + $(window).off('resize', this.place); + if (!this.isInput) { + $(document).off({ + 'mousedown': this.hide + }); + if (this.component){ + this.element.find('input').prop('value', this.format.call(this)); + } + this.element.data('color', this.format.call(this)); + } else { + this.element.prop('value', this.format.call(this)); + } + this.element.trigger({ + type: 'hide', + color: this.color + }); + }, + + place: function(){ + var offset = this.component ? this.component.offset() : this.element.offset(); + this.picker.css({ + top: offset.top + this.height, + left: offset.left + }); + }, + + //preview color change + previewColor: function(){ + try { + this.preview.backgroundColor = this.format.call(this); + } catch(e) { + this.preview.backgroundColor = this.color.toHex(); + } + //set the color for brightness/saturation slider + this.base.backgroundColor = this.color.toHex(this.color.value.h, 1, 1, 1); + //set te color for alpha slider + if (this.alpha) { + this.alpha.backgroundColor = this.color.toHex(); + } + }, + + pointer: null, + + slider: null, + + mousedown: function(e){ + e.stopPropagation(); + e.preventDefault(); + + var target = $(e.target); + + //detect the slider and set the limits and callbacks + var zone = target.closest('div'); + if (!zone.is('.colorpicker')) { + if (zone.is('.colorpicker-saturation')) { + this.slider = $.extend({}, CPGlobal.sliders.saturation); + } + else if (zone.is('.colorpicker-hue')) { + this.slider = $.extend({}, CPGlobal.sliders.hue); + } + else if (zone.is('.colorpicker-alpha')) { + this.slider = $.extend({}, CPGlobal.sliders.alpha); + } else { + return false; + } + var offset = zone.offset(); + //reference to knob's style + this.slider.knob = zone.find('i')[0].style; + this.slider.left = e.pageX - offset.left; + this.slider.top = e.pageY - offset.top; + this.pointer = { + left: e.pageX, + top: e.pageY + }; + //trigger mousemove to move the knob to the current position + $(document).on({ + mousemove: $.proxy(this.mousemove, this), + mouseup: $.proxy(this.mouseup, this) + }).trigger('mousemove'); + } + return false; + }, + + mousemove: function(e){ + e.stopPropagation(); + e.preventDefault(); + var left = Math.max( + 0, + Math.min( + this.slider.maxLeft, + this.slider.left + ((e.pageX||this.pointer.left) - this.pointer.left) + ) + ); + var top = Math.max( + 0, + Math.min( + this.slider.maxTop, + this.slider.top + ((e.pageY||this.pointer.top) - this.pointer.top) + ) + ); + this.slider.knob.left = left + 'px'; + this.slider.knob.top = top + 'px'; + if (this.slider.callLeft) { + this.color[this.slider.callLeft].call(this.color, left/100); + } + if (this.slider.callTop) { + this.color[this.slider.callTop].call(this.color, top/100); + } + this.previewColor(); + this.element.trigger({ + type: 'changeColor', + color: this.color + }); + return false; + }, + + mouseup: function(e){ + e.stopPropagation(); + e.preventDefault(); + $(document).off({ + mousemove: this.mousemove, + mouseup: this.mouseup + }); + return false; + } + } + + $.fn.colorpicker = function ( option ) { + return this.each(function () { + var $this = $(this), + data = $this.data('colorpicker'), + options = typeof option === 'object' && option; + if (!data) { + $this.data('colorpicker', (data = new Colorpicker(this, $.extend({}, $.fn.colorpicker.defaults,options)))); + } + if (typeof option === 'string') data[option](); + }); + }; + + $.fn.colorpicker.defaults = { + }; + + $.fn.colorpicker.Constructor = Colorpicker; + + var CPGlobal = { + + // translate a format from Color object to a string + translateFormats: { + 'rgb': function(){ + var rgb = this.color.toRGB(); + return 'rgb('+rgb.r+','+rgb.g+','+rgb.b+')'; + }, + + 'rgba': function(){ + var rgb = this.color.toRGB(); + return 'rgba('+rgb.r+','+rgb.g+','+rgb.b+','+rgb.a+')'; + }, + + 'hsl': function(){ + var hsl = this.color.toHSL(); + return 'hsl('+Math.round(hsl.h*360)+','+Math.round(hsl.s*100)+'%,'+Math.round(hsl.l*100)+'%)'; + }, + + 'hsla': function(){ + var hsl = this.color.toHSL(); + return 'hsla('+Math.round(hsl.h*360)+','+Math.round(hsl.s*100)+'%,'+Math.round(hsl.l*100)+'%,'+hsl.a+')'; + }, + + 'hex': function(){ + return this.color.toHex(); + } + }, + + sliders: { + saturation: { + maxLeft: 100, + maxTop: 100, + callLeft: 'setSaturation', + callTop: 'setLightness' + }, + + hue: { + maxLeft: 0, + maxTop: 100, + callLeft: false, + callTop: 'setHue' + }, + + alpha: { + maxLeft: 0, + maxTop: 100, + callLeft: false, + callTop: 'setAlpha' + } + }, + + // HSBtoRGB from RaphaelJS + // https://github.com/DmitryBaranovskiy/raphael/ + RGBtoHSB: function (r, g, b, a){ + r /= 255; + g /= 255; + b /= 255; + + var H, S, V, C; + V = Math.max(r, g, b); + C = V - Math.min(r, g, b); + H = (C === 0 ? null : + V == r ? (g - b) / C : + V == g ? (b - r) / C + 2 : + (r - g) / C + 4 + ); + H = ((H + 360) % 6) * 60 / 360; + S = C === 0 ? 0 : C / V; + return {h: H||1, s: S, b: V, a: a||1}; + }, + + HueToRGB: function (p, q, h) { + if (h < 0) + h += 1; + else if (h > 1) + h -= 1; + + if ((h * 6) < 1) + return p + (q - p) * h * 6; + else if ((h * 2) < 1) + return q; + else if ((h * 3) < 2) + return p + (q - p) * ((2 / 3) - h) * 6; + else + return p; + }, + + HSLtoRGB: function (h, s, l, a) + { + if (s < 0) { + s = 0; + } + var q; + if (l <= 0.5) { + q = l * (1 + s); + } else { + q = l + s - (l * s); + } + + var p = 2 * l - q; + + var tr = h + (1 / 3); + var tg = h; + var tb = h - (1 / 3); + + var r = Math.round(CPGlobal.HueToRGB(p, q, tr) * 255); + var g = Math.round(CPGlobal.HueToRGB(p, q, tg) * 255); + var b = Math.round(CPGlobal.HueToRGB(p, q, tb) * 255); + return [r, g, b, a||1]; + }, + + // a set of RE's that can match strings and generate color tuples. + // from John Resig color plugin + // https://github.com/jquery/jquery-color/ + stringParsers: [ + { + re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/, + parse: function( execResult ) { + return [ + execResult[ 1 ], + execResult[ 2 ], + execResult[ 3 ], + execResult[ 4 ] + ]; + } + }, { + re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/, + parse: function( execResult ) { + return [ + 2.55 * execResult[1], + 2.55 * execResult[2], + 2.55 * execResult[3], + execResult[ 4 ] + ]; + } + }, { + re: /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/, + parse: function( execResult ) { + return [ + parseInt( execResult[ 1 ], 16 ), + parseInt( execResult[ 2 ], 16 ), + parseInt( execResult[ 3 ], 16 ) + ]; + } + }, { + re: /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/, + parse: function( execResult ) { + return [ + parseInt( execResult[ 1 ] + execResult[ 1 ], 16 ), + parseInt( execResult[ 2 ] + execResult[ 2 ], 16 ), + parseInt( execResult[ 3 ] + execResult[ 3 ], 16 ) + ]; + } + }, { + re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/, + space: 'hsla', + parse: function( execResult ) { + return [ + execResult[1]/360, + execResult[2] / 100, + execResult[3] / 100, + execResult[4] + ]; + } + } + ], + template: '