├── src └── main │ ├── resources │ ├── application.yml │ ├── static │ │ ├── img │ │ │ ├── course.png │ │ │ ├── error.png │ │ │ ├── menu.png │ │ │ ├── title.png │ │ │ ├── title2.png │ │ │ ├── title3.png │ │ │ ├── user.png │ │ │ └── course2.png │ │ ├── js │ │ │ ├── style │ │ │ │ ├── dialog.js │ │ │ │ ├── login.js │ │ │ │ └── student │ │ │ │ │ ├── info.js │ │ │ │ │ ├── select.js │ │ │ │ │ ├── course.js │ │ │ │ │ └── menu.js │ │ │ └── ajax │ │ │ │ ├── login.js │ │ │ │ └── student.js │ │ ├── bootstrap │ │ │ ├── fonts │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ └── glyphicons-halflings-regular.woff2 │ │ │ ├── js │ │ │ │ └── npm.js │ │ │ └── css │ │ │ │ ├── bootstrap-modal.css │ │ │ │ ├── bootstrap-theme.min.css │ │ │ │ └── bootstrap-theme.min.css.map │ │ ├── css │ │ │ ├── login.css │ │ │ └── index.css │ │ ├── page │ │ │ └── dialog.html │ │ └── jquery │ │ │ └── jquery.timer.js │ ├── application.properties │ ├── templates │ │ ├── student │ │ │ ├── menu │ │ │ │ ├── user.html │ │ │ │ └── menu.html │ │ │ ├── select.html │ │ │ ├── course.html │ │ │ ├── info.html │ │ │ └── index.html │ │ ├── login │ │ │ └── login.html │ │ ├── admin │ │ │ └── index.html │ │ └── teacher │ │ │ └── index.html │ └── mapper │ │ ├── adminMapper.xml │ │ ├── teacherMapper.xml │ │ ├── courseMapper.xml │ │ ├── studentMapper.xml │ │ └── selectMapper.xml │ ├── java │ └── com │ │ └── zt │ │ ├── service │ │ ├── AdminService.java │ │ ├── TeacherService.java │ │ ├── CourseService.java │ │ ├── StudentService.java │ │ ├── SelectService.java │ │ └── Impl │ │ │ ├── AdminServiceImpl.java │ │ │ ├── TeacherServiceImpl.java │ │ │ ├── CourseServiceImpl.java │ │ │ ├── StudentServiceImpl.java │ │ │ └── SelectServiceImpl.java │ │ ├── dao │ │ ├── AdminDao.java │ │ ├── TeacherDao.java │ │ ├── CourseDao.java │ │ ├── SelectDao.java │ │ └── StudentDao.java │ │ ├── Application.java │ │ ├── pojo │ │ ├── admin.java │ │ ├── select.java │ │ ├── course.java │ │ ├── teacher.java │ │ ├── student.java │ │ └── vcourse.java │ │ └── controller │ │ ├── VisitController.java │ │ ├── VerificationController.java │ │ ├── CreatePageController.java │ │ └── StudentController.java │ └── test │ └── PageTest.java ├── .idea ├── encodings.xml ├── vcs.xml ├── modules.xml ├── misc.xml ├── libraries │ ├── Maven__ognl_ognl_3_0_8.xml │ ├── Maven__junit_junit_4_12.xml │ ├── Maven__org_ow2_asm_asm_5_0_3.xml │ ├── Maven__org_json_json_20140107.xml │ ├── Maven__org_yaml_snakeyaml_1_17.xml │ ├── Maven__redis_clients_jedis_2_8_2.xml │ ├── Maven__org_mybatis_mybatis_3_4_4.xml │ ├── Maven__org_objenesis_objenesis_2_1.xml │ ├── Maven__org_slf4j_slf4j_api_1_7_22.xml │ ├── Maven__com_fasterxml_classmate_1_3_3.xml │ ├── Maven__net_minidev_json_smart_2_2_1.xml │ ├── Maven__org_codehaus_groovy_groovy_2_4_7.xml │ ├── Maven__org_hamcrest_hamcrest_core_1_3.xml │ ├── Maven__org_slf4j_jul_to_slf4j_1_7_22.xml │ ├── Maven__org_assertj_assertj_core_2_5_0.xml │ ├── Maven__net_minidev_accessors_smart_1_1.xml │ ├── Maven__org_skyscreamer_jsonassert_1_3_0.xml │ ├── Maven__ch_qos_logback_logback_core_1_1_8.xml │ ├── Maven__com_jayway_jsonpath_json_path_2_2_0.xml │ ├── Maven__org_javassist_javassist_3_20_0_GA.xml │ ├── Maven__org_mockito_mockito_core_1_10_19.xml │ ├── Maven__org_mybatis_mybatis_spring_1_3_1.xml │ ├── Maven__org_slf4j_jcl_over_slf4j_1_7_22.xml │ ├── Maven__org_apache_tomcat_tomcat_jdbc_8_5_6.xml │ ├── Maven__org_apache_tomcat_tomcat_juli_8_5_6.xml │ ├── Maven__org_hamcrest_hamcrest_library_1_3.xml │ ├── Maven__org_slf4j_log4j_over_slf4j_1_7_22.xml │ ├── Maven__ch_qos_logback_logback_classic_1_1_8.xml │ ├── Maven__mysql_mysql_connector_java_5_1_40.xml │ ├── Maven__org_apache_commons_commons_pool2_2_4_2.xml │ ├── Maven__org_thymeleaf_thymeleaf_2_1_5_RELEASE.xml │ ├── Maven__org_unbescape_unbescape_1_1_0_RELEASE.xml │ ├── Maven__com_fasterxml_jackson_core_jackson_core_2_8_5.xml │ ├── Maven__org_springframework_spring_tx_4_3_5_RELEASE.xml │ ├── Maven__org_apache_tomcat_embed_tomcat_embed_el_8_5_6.xml │ ├── Maven__org_jboss_logging_jboss_logging_3_3_0_Final.xml │ ├── Maven__org_springframework_spring_aop_4_3_5_RELEASE.xml │ ├── Maven__org_springframework_spring_oxm_4_3_5_RELEASE.xml │ ├── Maven__org_springframework_spring_web_4_3_5_RELEASE.xml │ ├── Maven__javax_validation_validation_api_1_1_0_Final.xml │ ├── Maven__org_springframework_spring_core_4_3_5_RELEASE.xml │ ├── Maven__org_springframework_spring_jdbc_4_3_5_RELEASE.xml │ ├── Maven__org_springframework_spring_test_4_3_5_RELEASE.xml │ ├── Maven__org_apache_tomcat_embed_tomcat_embed_core_8_5_6.xml │ ├── Maven__com_fasterxml_jackson_core_jackson_databind_2_8_5.xml │ ├── Maven__org_springframework_spring_beans_4_3_5_RELEASE.xml │ ├── Maven__org_springframework_spring_webmvc_4_3_5_RELEASE.xml │ ├── Maven__org_hibernate_hibernate_validator_5_2_4_Final.xml │ ├── Maven__org_thymeleaf_thymeleaf_spring4_2_1_5_RELEASE.xml │ ├── Maven__org_springframework_boot_spring_boot_1_4_3_RELEASE.xml │ ├── Maven__org_springframework_spring_context_4_3_5_RELEASE.xml │ ├── Maven__com_fasterxml_jackson_core_jackson_annotations_2_8_5.xml │ ├── Maven__org_apache_tomcat_embed_tomcat_embed_websocket_8_5_6.xml │ ├── Maven__org_springframework_spring_expression_4_3_5_RELEASE.xml │ ├── Maven__nz_net_ultraq_thymeleaf_thymeleaf_layout_dialect_1_4_0.xml │ ├── Maven__org_springframework_boot_spring_boot_test_1_4_3_RELEASE.xml │ ├── Maven__org_springframework_data_spring_data_redis_1_7_6_RELEASE.xml │ ├── Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_1_3_0.xml │ ├── Maven__org_springframework_boot_spring_boot_starter_1_4_3_RELEASE.xml │ ├── Maven__org_springframework_spring_context_support_4_3_5_RELEASE.xml │ ├── Maven__org_springframework_data_spring_data_commons_1_12_6_RELEASE.xml │ ├── Maven__org_springframework_data_spring_data_keyvalue_1_1_6_RELEASE.xml │ ├── Maven__org_springframework_boot_spring_boot_starter_web_1_4_3_RELEASE.xml │ ├── Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_1_3_0.xml │ ├── Maven__org_springframework_boot_spring_boot_starter_jdbc_1_4_3_RELEASE.xml │ ├── Maven__org_springframework_boot_spring_boot_starter_test_1_4_3_RELEASE.xml │ ├── Maven__org_springframework_boot_spring_boot_autoconfigure_1_4_3_RELEASE.xml │ ├── Maven__org_springframework_boot_spring_boot_starter_tomcat_1_4_3_RELEASE.xml │ ├── Maven__org_springframework_boot_spring_boot_starter_logging_1_4_3_RELEASE.xml │ ├── Maven__org_springframework_boot_spring_boot_starter_thymeleaf_1_4_3_RELEASE.xml │ ├── Maven__org_springframework_boot_spring_boot_starter_data_redis_1_4_3_RELEASE.xml │ └── Maven__org_springframework_boot_spring_boot_test_autoconfigure_1_4_3_RELEASE.xml ├── compiler.xml └── uiDesigner.xml ├── pom.xml └── CoursesProject.iml /src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/img/course.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KiritoSun/Springboot-Course/HEAD/src/main/resources/static/img/course.png -------------------------------------------------------------------------------- /src/main/resources/static/img/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KiritoSun/Springboot-Course/HEAD/src/main/resources/static/img/error.png -------------------------------------------------------------------------------- /src/main/resources/static/img/menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KiritoSun/Springboot-Course/HEAD/src/main/resources/static/img/menu.png -------------------------------------------------------------------------------- /src/main/resources/static/img/title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KiritoSun/Springboot-Course/HEAD/src/main/resources/static/img/title.png -------------------------------------------------------------------------------- /src/main/resources/static/img/title2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KiritoSun/Springboot-Course/HEAD/src/main/resources/static/img/title2.png -------------------------------------------------------------------------------- /src/main/resources/static/img/title3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KiritoSun/Springboot-Course/HEAD/src/main/resources/static/img/title3.png -------------------------------------------------------------------------------- /src/main/resources/static/img/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KiritoSun/Springboot-Course/HEAD/src/main/resources/static/img/user.png -------------------------------------------------------------------------------- /src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KiritoSun/Springboot-Course/HEAD/src/main/resources/application.properties -------------------------------------------------------------------------------- /src/main/resources/static/img/course2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KiritoSun/Springboot-Course/HEAD/src/main/resources/static/img/course2.png -------------------------------------------------------------------------------- /src/main/resources/static/js/style/dialog.js: -------------------------------------------------------------------------------- 1 | // 显示提示对话框 2 | function dialog(info) { 3 | $("#dialog-info").text(info); 4 | $("#myModal").modal(); 5 | } -------------------------------------------------------------------------------- /src/main/java/com/zt/service/AdminService.java: -------------------------------------------------------------------------------- 1 | package com.zt.service; 2 | 3 | public interface AdminService { 4 | // 处理登录业务 5 | public String loginService(String id,String password); 6 | } 7 | -------------------------------------------------------------------------------- /src/main/java/com/zt/service/TeacherService.java: -------------------------------------------------------------------------------- 1 | package com.zt.service; 2 | 3 | public interface TeacherService { 4 | // 处理登录业务 5 | public String loginService(String id,String password); 6 | } 7 | -------------------------------------------------------------------------------- /.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/main/resources/static/bootstrap/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KiritoSun/Springboot-Course/HEAD/src/main/resources/static/bootstrap/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /src/main/resources/static/bootstrap/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KiritoSun/Springboot-Course/HEAD/src/main/resources/static/bootstrap/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /src/main/resources/static/bootstrap/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KiritoSun/Springboot-Course/HEAD/src/main/resources/static/bootstrap/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /src/main/resources/static/bootstrap/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KiritoSun/Springboot-Course/HEAD/src/main/resources/static/bootstrap/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /src/main/java/com/zt/dao/AdminDao.java: -------------------------------------------------------------------------------- 1 | package com.zt.dao; 2 | 3 | import com.zt.pojo.admin; 4 | import org.apache.ibatis.annotations.Mapper; 5 | 6 | @Mapper 7 | public interface AdminDao { 8 | // 查询指定id的记录 9 | public admin selectById(String a_id); 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/com/zt/dao/TeacherDao.java: -------------------------------------------------------------------------------- 1 | package com.zt.dao; 2 | 3 | import com.zt.pojo.teacher; 4 | import org.apache.ibatis.annotations.Mapper; 5 | 6 | @Mapper 7 | public interface TeacherDao { 8 | // 查询指定id记录 9 | public teacher selectById(String t_id); 10 | } 11 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/main/java/com/zt/service/CourseService.java: -------------------------------------------------------------------------------- 1 | package com.zt.service; 2 | 3 | import com.zt.pojo.course; 4 | 5 | import java.util.List; 6 | 7 | public interface CourseService { 8 | // 处理课程分页业务 9 | public List sortPage(int page); 10 | // 获取页数 11 | public int getNumber(); 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/zt/dao/CourseDao.java: -------------------------------------------------------------------------------- 1 | package com.zt.dao; 2 | 3 | import com.zt.pojo.course; 4 | import org.apache.ibatis.annotations.Mapper; 5 | 6 | import java.util.List; 7 | 8 | @Mapper 9 | public interface CourseDao { 10 | // 查询所有记录 11 | public List selectAll(); 12 | // 根据id查询记录 13 | public course selectById(String c_id); 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/zt/Application.java: -------------------------------------------------------------------------------- 1 | package com.zt; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class Application { 8 | public static void main(String[] args){ 9 | SpringApplication.run(Application.class,args); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/resources/templates/student/menu/user.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 |
6 | 7 | 8 | 9 |
10 |
11 | -------------------------------------------------------------------------------- /src/main/java/com/zt/service/StudentService.java: -------------------------------------------------------------------------------- 1 | package com.zt.service; 2 | 3 | import com.zt.pojo.student; 4 | 5 | public interface StudentService { 6 | // 处理登录判断业务 7 | public String loginService(String id,String password); 8 | // 根据id获取student业务 9 | public student getStudent(String id); 10 | // 修改学生信息业务 11 | public boolean updateService(String id,String name,String sex,String password,String major); 12 | } 13 | -------------------------------------------------------------------------------- /src/main/resources/mapper/adminMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | -------------------------------------------------------------------------------- /src/main/resources/mapper/teacherMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/main/resources/static/js/style/login.js: -------------------------------------------------------------------------------- 1 | $(function () { 2 | // 加载dialog页面 3 | $(".dialog").load("page/dialog.html"); 4 | // 登录按钮绑定事件 5 | $("input[name='submit']").click(function () { 6 | var id = $("input[name='id']").val(); 7 | var password = $("input[name='password']").val(); 8 | if(id==""||password==""){ 9 | dialog("输入框不能为空!"); 10 | return; 11 | } 12 | var data = {"id":id,"password":password}; 13 | login(data); 14 | }); 15 | }) -------------------------------------------------------------------------------- /src/main/resources/mapper/courseMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__ognl_ognl_3_0_8.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/main/java/com/zt/service/SelectService.java: -------------------------------------------------------------------------------- 1 | package com.zt.service; 2 | 3 | import com.zt.pojo.course; 4 | import com.zt.pojo.select; 5 | import com.zt.pojo.vcourse; 6 | 7 | import java.util.List; 8 | 9 | public interface SelectService { 10 | // 处理选课业务 11 | public String selectCourse(select select); 12 | // 处理课程查询业务 13 | public List selectCourse2(String s_id); 14 | // 修改积分业务 15 | public boolean updatePoint(select select); 16 | // 退课业务 17 | public boolean removeCourse(String s_id,String c_id); 18 | } 19 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__junit_junit_4_12.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_ow2_asm_asm_5_0_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/main/resources/static/bootstrap/js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_json_json_20140107.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_yaml_snakeyaml_1_17.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__redis_clients_jedis_2_8_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_mybatis_mybatis_3_4_4.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_objenesis_objenesis_2_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_22.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/main/resources/static/css/login.css: -------------------------------------------------------------------------------- 1 | body{ 2 | padding: 0; 3 | margin: 0; 4 | background-color: #f7f7f7; 5 | } 6 | .course-login{ 7 | position: relative; 8 | width: 350px; 9 | height: 265px; 10 | margin: 0 auto; 11 | margin-top: 100px; 12 | color: #8692a1; 13 | } 14 | input[type="text"]{ 15 | position: relative; 16 | width: 240px; 17 | margin: 0 auto; 18 | } 19 | input[type="password"]{ 20 | position: relative; 21 | width: 240px; 22 | margin: 0 auto; 23 | } 24 | input[type="button"]{ 25 | position: relative; 26 | width: 240px; 27 | margin-left: 40px; 28 | } -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_fasterxml_classmate_1_3_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__net_minidev_json_smart_2_2_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_codehaus_groovy_groovy_2_4_7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_22.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_assertj_assertj_core_2_5_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__net_minidev_accessors_smart_1_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_skyscreamer_jsonassert_1_3_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__ch_qos_logback_logback_core_1_1_8.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_2_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_javassist_javassist_3_20_0_GA.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_mockito_mockito_core_1_10_19.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_mybatis_mybatis_spring_1_3_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_slf4j_jcl_over_slf4j_1_7_22.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_apache_tomcat_tomcat_jdbc_8_5_6.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_apache_tomcat_tomcat_juli_8_5_6.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_hamcrest_hamcrest_library_1_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_slf4j_log4j_over_slf4j_1_7_22.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__ch_qos_logback_logback_classic_1_1_8.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__mysql_mysql_connector_java_5_1_40.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_apache_commons_commons_pool2_2_4_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/main/java/com/zt/dao/SelectDao.java: -------------------------------------------------------------------------------- 1 | package com.zt.dao; 2 | 3 | import com.zt.pojo.select; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.apache.ibatis.annotations.Param; 6 | 7 | import java.util.List; 8 | 9 | @Mapper 10 | public interface SelectDao { 11 | // 插入一条记录 12 | public void insert(select select); 13 | // 查询操作 14 | public select selects(@Param("s_id") String s_id,@Param("c_id") String c_id); 15 | // 根据学生id查询 16 | public List 7 | SELECT * FROM student WHERE s_id=#{s_id} 8 | 9 | 10 | UPDATE student SET s_name=#{s_name},s_password=#{s_password},s_sex=#{s_sex},s_major=#{s_major} WHERE s_id=#{s_id} 11 | 12 | 13 | UPDATE student SET s_point=s_point-#{s_point} WHERE s_id=#{s_id} 14 | 15 | 16 | UPDATE student SET s_point=s_point+#{s_point} WHERE s_id=#{s_id} 17 | 18 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_1_4_3_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/main/java/com/zt/service/Impl/AdminServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.zt.service.Impl; 2 | 3 | import com.zt.dao.AdminDao; 4 | import com.zt.pojo.admin; 5 | import com.zt.service.AdminService; 6 | import org.springframework.stereotype.Service; 7 | 8 | import javax.annotation.Resource; 9 | 10 | @Service 11 | public class AdminServiceImpl implements AdminService { 12 | @Resource 13 | private AdminDao adminDao; 14 | 15 | @Override 16 | public String loginService(String id, String password) { 17 | admin admin = null; 18 | try{ 19 | admin = adminDao.selectById(id); 20 | }catch (Exception e){ 21 | e.printStackTrace(); 22 | return "error"; 23 | } 24 | if(admin==null) return "ino"; 25 | if(admin.getA_password().equals(password)) return "a_success"; 26 | else return "pno"; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_thymeleaf_1_4_3_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_redis_1_4_3_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_1_4_3_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/main/java/com/zt/service/Impl/TeacherServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.zt.service.Impl; 2 | 3 | import com.zt.dao.TeacherDao; 4 | import com.zt.pojo.teacher; 5 | import com.zt.service.TeacherService; 6 | import org.springframework.stereotype.Service; 7 | 8 | import javax.annotation.Resource; 9 | 10 | @Service 11 | public class TeacherServiceImpl implements TeacherService { 12 | @Resource 13 | private TeacherDao teacherDao; 14 | 15 | @Override 16 | public String loginService(String id, String password) { 17 | teacher teacher = null; 18 | try{ 19 | teacher = teacherDao.selectById(id); 20 | }catch (Exception e){ 21 | e.printStackTrace(); 22 | return "error"; 23 | } 24 | if(teacher==null) return "ino"; 25 | if(teacher.getT_password().equals(password)) return "t_success"; 26 | else return "pno"; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/resources/static/page/dialog.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/main/java/com/zt/pojo/admin.java: -------------------------------------------------------------------------------- 1 | package com.zt.pojo; 2 | 3 | import java.io.Serializable; 4 | 5 | public class admin implements Serializable{ 6 | private String a_id; 7 | private String a_password; 8 | 9 | public admin(){} 10 | 11 | public admin(String a_id, String a_password) { 12 | this.a_id = a_id; 13 | this.a_password = a_password; 14 | } 15 | 16 | public String getA_id() { 17 | return a_id; 18 | } 19 | 20 | public void setA_id(String a_id) { 21 | this.a_id = a_id; 22 | } 23 | 24 | public String getA_password() { 25 | return a_password; 26 | } 27 | 28 | public void setA_password(String a_password) { 29 | this.a_password = a_password; 30 | } 31 | 32 | @Override 33 | public String toString() { 34 | return "admin{" + 35 | "a_id='" + a_id + '\'' + 36 | ", a_password='" + a_password + '\'' + 37 | '}'; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/main/resources/mapper/selectMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | INSERT INTO `select` VALUES (#{s_id},#{c_id},#{point}) 8 | 9 | 12 | 15 | 16 | UPDATE `select` SET point=#{point} WHERE s_id=#{s_id} and c_id=#{c_id} 17 | 18 | 19 | DELETE FROM `select` WHERE s_id=#{s_id} and c_id=#{c_id} 20 | 21 | -------------------------------------------------------------------------------- /src/main/java/com/zt/pojo/select.java: -------------------------------------------------------------------------------- 1 | package com.zt.pojo; 2 | 3 | import java.io.Serializable; 4 | 5 | public class select implements Serializable { 6 | private String s_id; 7 | private String c_id; 8 | private int point; 9 | 10 | public select(){} 11 | 12 | public select(String s_id, String c_id, int point) { 13 | this.s_id = s_id; 14 | this.c_id = c_id; 15 | this.point = point; 16 | } 17 | 18 | public String getS_id() { 19 | return s_id; 20 | } 21 | 22 | public void setS_id(String s_id) { 23 | this.s_id = s_id; 24 | } 25 | 26 | public String getC_id() { 27 | return c_id; 28 | } 29 | 30 | public void setC_id(String c_id) { 31 | this.c_id = c_id; 32 | } 33 | 34 | public int getPoint() { 35 | return point; 36 | } 37 | 38 | public void setPoint(int point) { 39 | this.point = point; 40 | } 41 | 42 | @Override 43 | public String toString() { 44 | return "select{" + 45 | "s_id='" + s_id + '\'' + 46 | ", c_id='" + c_id + '\'' + 47 | ", point=" + point + 48 | '}'; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /src/main/resources/static/js/ajax/login.js: -------------------------------------------------------------------------------- 1 | // 登录验证 2 | function login(data) { 3 | $.ajax({ 4 | method:"POST", 5 | type:"POST", 6 | url:"/login.action", 7 | data:data, 8 | success:function (msg) { 9 | switch (msg){ 10 | case "s_success":{ 11 | window.location.href="/student"; 12 | break; 13 | } 14 | case "t_success":{ 15 | window.location.href="/teacher"; 16 | break; 17 | } 18 | case "a_success":{ 19 | window.location.href="/admin"; 20 | break; 21 | } 22 | case "ino":{ 23 | dialog("账户id不存在!"); 24 | break; 25 | } 26 | case "pno":{ 27 | dialog("密码不正确!"); 28 | break; 29 | } 30 | case "error":{ 31 | dialog("后台出错!"); 32 | break; 33 | } 34 | default:break; 35 | } 36 | } 37 | ,error:function () { 38 | dialog("ajax出错!"); 39 | } 40 | }); 41 | } -------------------------------------------------------------------------------- /src/main/resources/static/js/style/student/course.js: -------------------------------------------------------------------------------- 1 | $(function () { 2 | // 加载dialog页面 3 | $(".dialog").load("page/dialog.html"); 4 | // 上一页 5 | $(".pagination li a[name='font']").click(function () { 6 | var url = location.search; 7 | var page = url.split("=")[1]; 8 | if(page==1) window.location.href="/course?page=1"; 9 | else{ 10 | page--; 11 | window.location.href="/course?page="+page; 12 | } 13 | }); 14 | 15 | // 下一页 16 | $(".pagination li a[name='next']").click(function () { 17 | var url = location.search; 18 | var page = url.split("=")[1]; 19 | var number = $(this).parent("li").parent("ul").attr("name"); 20 | number++; 21 | if(page==number) window.location.href="/course?page="+number; 22 | else{ 23 | page++; 24 | window.location.href="/course?page="+page; 25 | } 26 | }); 27 | 28 | // 点击选课 29 | $("input[name='select']").click(function () { 30 | var id = $(this).parent("td").parent("tr").children("td[name='id']").text(); 31 | var point = $(this).parent("td").parent("tr").children("td[name='text']").children("input").val(); 32 | if(point==""){ 33 | dialog("积分不能为空!"); 34 | return; 35 | } 36 | var data = {"id":id,"point":point}; 37 | select_studentCourse(data); 38 | }); 39 | }) -------------------------------------------------------------------------------- /src/main/resources/templates/student/menu/menu.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 |
6 |
7 |   8 | 选课系统 9 |
10 |
11 | 学生菜单 12 |
13 |
    14 |
  • 15 | 16 |   首页 17 |
  • 18 |
  • 19 | 20 |   信息修改 21 |
  • 22 |
  • 23 | 24 |   选课中心 25 |
  • 26 |
  • 27 | 28 |   已选课程 29 |
  • 30 |
  • 31 | 32 |   生成课表 33 |
  • 34 |
  • 35 | 36 |   退出登录 37 |
  • 38 |
39 |
40 |
41 | -------------------------------------------------------------------------------- /src/main/java/com/zt/service/Impl/CourseServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.zt.service.Impl; 2 | 3 | import com.zt.dao.CourseDao; 4 | import com.zt.pojo.course; 5 | import com.zt.service.CourseService; 6 | import org.springframework.stereotype.Service; 7 | 8 | import javax.annotation.Resource; 9 | import java.io.IOException; 10 | import java.util.ArrayList; 11 | import java.util.List; 12 | 13 | @Service 14 | public class CourseServiceImpl implements CourseService { 15 | @Resource 16 | private CourseDao courseDao; 17 | 18 | @Override 19 | public List sortPage(int page) { 20 | List list = null; 21 | List newlist = new ArrayList<>(); 22 | try{ 23 | list = courseDao.selectAll(); 24 | int start = (page-1)*5; 25 | for(int i=start;i=list.size()) break; 27 | newlist.add(list.get(i)); 28 | } 29 | }catch (Exception e){ 30 | e.printStackTrace(); 31 | return null; 32 | }finally {} 33 | return newlist; 34 | } 35 | 36 | @Override 37 | public int getNumber() { 38 | List list = null; 39 | try{ 40 | list = courseDao.selectAll(); 41 | }catch (Exception e){ 42 | e.printStackTrace(); 43 | return 0; 44 | } 45 | return (list.size()/5); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/main/resources/templates/login/login.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 登录界面 - 学生选课系统 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 29 | 30 |
31 | 32 | -------------------------------------------------------------------------------- /src/main/java/com/zt/service/Impl/StudentServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.zt.service.Impl; 2 | 3 | import com.zt.dao.StudentDao; 4 | import com.zt.pojo.student; 5 | import com.zt.service.StudentService; 6 | import org.springframework.stereotype.Service; 7 | 8 | import javax.annotation.Resource; 9 | 10 | @Service 11 | public class StudentServiceImpl implements StudentService { 12 | @Resource 13 | private StudentDao studentDao; 14 | 15 | @Override 16 | public String loginService(String id, String password) { 17 | student student = null; 18 | try{ 19 | student = studentDao.selectById(id); 20 | }catch (Exception e){ 21 | e.printStackTrace(); 22 | return "error"; 23 | } 24 | if (student==null) return "ino"; 25 | if(student.getS_password().equals(password)) return "s_success"; 26 | else return "pno"; 27 | } 28 | 29 | @Override 30 | public student getStudent(String id) { 31 | student student = null; 32 | try{ 33 | student = studentDao.selectById(id); 34 | }catch (Exception e){ 35 | e.printStackTrace(); 36 | return null; 37 | } 38 | return student; 39 | } 40 | 41 | @Override 42 | public boolean updateService(String id, String name, String sex, String password, String major) { 43 | try{ 44 | studentDao.updateById(name,password,sex,major,id); 45 | }catch (Exception e){ 46 | e.printStackTrace(); 47 | return false; 48 | } 49 | return true; 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /src/main/resources/static/js/style/student/menu.js: -------------------------------------------------------------------------------- 1 | $(function () { 2 | // 菜单栏击中效果 3 | var menu = get(); 4 | console.log(menu); 5 | if(menu==null) $(".course-menu li[name='index']").addClass("menu-focus"); 6 | else $(".course-menu li[name='"+menu+"']").addClass("menu-focus"); 7 | // 菜单栏点击 8 | $(".course-menu li").click(function () { 9 | var menu = $(this).attr("name"); 10 | switch (menu){ 11 | case "index":{ 12 | save("index"); 13 | window.location.href="/studentIndex"; 14 | break; 15 | } 16 | case "info":{ 17 | save("info"); 18 | window.location.href="/studentInfo"; 19 | break; 20 | } 21 | case "course":{ 22 | save("course"); 23 | window.location.href="/course?page=1"; 24 | break; 25 | } 26 | case "select":{ 27 | save("select"); 28 | window.location.href="/select"; 29 | break; 30 | } 31 | case "table":{ 32 | alert("生成课表"); 33 | break; 34 | } 35 | case "exit":{ 36 | clear(); 37 | window.location.href="/exit"; 38 | break; 39 | } 40 | default:break; 41 | } 42 | }); 43 | 44 | // 存储到session缓存 45 | function save(data) { 46 | sessionStorage.setItem("menu",data); 47 | } 48 | 49 | // 取出session缓存 50 | function get() { 51 | return sessionStorage.getItem("menu"); 52 | } 53 | 54 | // 清除class操作 55 | function clear() { 56 | sessionStorage.removeItem("menu"); 57 | } 58 | }) -------------------------------------------------------------------------------- /src/main/java/com/zt/pojo/course.java: -------------------------------------------------------------------------------- 1 | package com.zt.pojo; 2 | 3 | import java.io.Serializable; 4 | 5 | public class course implements Serializable { 6 | private String c_id; 7 | private String c_name; 8 | private String c_room; 9 | private String c_time; 10 | private int c_point; 11 | 12 | public course(){} 13 | 14 | public course(String c_id, String c_name, String c_room, String c_time, int c_point) { 15 | this.c_id = c_id; 16 | this.c_name = c_name; 17 | this.c_room = c_room; 18 | this.c_time = c_time; 19 | this.c_point = c_point; 20 | } 21 | 22 | public String getC_id() { 23 | return c_id; 24 | } 25 | 26 | public void setC_id(String c_id) { 27 | this.c_id = c_id; 28 | } 29 | 30 | public String getC_name() { 31 | return c_name; 32 | } 33 | 34 | public void setC_name(String c_name) { 35 | this.c_name = c_name; 36 | } 37 | 38 | public String getC_room() { 39 | return c_room; 40 | } 41 | 42 | public void setC_room(String c_room) { 43 | this.c_room = c_room; 44 | } 45 | 46 | public String getC_time() { 47 | return c_time; 48 | } 49 | 50 | public void setC_time(String c_time) { 51 | this.c_time = c_time; 52 | } 53 | 54 | public int getC_point() { 55 | return c_point; 56 | } 57 | 58 | public void setC_point(int c_point) { 59 | this.c_point = c_point; 60 | } 61 | 62 | @Override 63 | public String toString() { 64 | return "course{" + 65 | "c_id='" + c_id + '\'' + 66 | ", c_name='" + c_name + '\'' + 67 | ", c_room='" + c_room + '\'' + 68 | ", c_time='" + c_time + '\'' + 69 | ", c_point=" + c_point + 70 | '}'; 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /src/main/java/com/zt/pojo/teacher.java: -------------------------------------------------------------------------------- 1 | package com.zt.pojo; 2 | 3 | import java.io.Serializable; 4 | 5 | public class teacher implements Serializable { 6 | private String t_id; 7 | private String t_name; 8 | private String t_password; 9 | private String t_sex; 10 | private String t_major; 11 | 12 | public teacher(){} 13 | 14 | public teacher(String t_id, String t_name, String t_password, String t_sex, String t_major) { 15 | this.t_id = t_id; 16 | this.t_name = t_name; 17 | this.t_password = t_password; 18 | this.t_sex = t_sex; 19 | this.t_major = t_major; 20 | } 21 | 22 | public String getT_id() { 23 | return t_id; 24 | } 25 | 26 | public void setT_id(String t_id) { 27 | this.t_id = t_id; 28 | } 29 | 30 | public String getT_name() { 31 | return t_name; 32 | } 33 | 34 | public void setT_name(String t_name) { 35 | this.t_name = t_name; 36 | } 37 | 38 | public String getT_password() { 39 | return t_password; 40 | } 41 | 42 | public void setT_password(String t_password) { 43 | this.t_password = t_password; 44 | } 45 | 46 | public String getT_sex() { 47 | return t_sex; 48 | } 49 | 50 | public void setT_sex(String t_sex) { 51 | this.t_sex = t_sex; 52 | } 53 | 54 | public String getT_major() { 55 | return t_major; 56 | } 57 | 58 | public void setT_major(String t_major) { 59 | this.t_major = t_major; 60 | } 61 | 62 | @Override 63 | public String toString() { 64 | return "teacher{" + 65 | "t_id='" + t_id + '\'' + 66 | ", t_name='" + t_name + '\'' + 67 | ", t_password='" + t_password + '\'' + 68 | ", t_sex='" + t_sex + '\'' + 69 | ", t_major='" + t_major + '\'' + 70 | '}'; 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /src/main/resources/templates/admin/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 学生选课系统 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 选课系统 18 |
19 |
20 | 管理菜单 21 |
22 |
    23 | 27 |
  • 28 | 29 |   选课中心 30 |
  • 31 |
  • 32 | 33 |   已选课程 34 |
  • 35 |
  • 36 | 37 |   生成课表 38 |
  • 39 |
  • 40 | 41 |   退出登录 42 |
  • 43 |
44 |
45 | 46 |
47 | 48 |
49 | 50 | 51 | name 52 |
53 | 54 |
55 |
56 | 选课部分 57 |
58 | 59 | 60 |
61 |
62 | 63 | -------------------------------------------------------------------------------- /src/main/resources/templates/teacher/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 学生选课系统 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 选课系统 18 |
19 |
20 | 老师菜单 21 |
22 |
    23 | 27 |
  • 28 | 29 |   选课中心 30 |
  • 31 |
  • 32 | 33 |   已选课程 34 |
  • 35 |
  • 36 | 37 |   生成课表 38 |
  • 39 |
  • 40 | 41 |   退出登录 42 |
  • 43 |
44 |
45 | 46 |
47 | 48 |
49 | 50 | 51 | name 52 |
53 | 54 |
55 |
56 | 选课部分 57 |
58 | 59 | 60 |
61 |
62 | 63 | -------------------------------------------------------------------------------- /src/main/resources/static/jquery/jquery.timer.js: -------------------------------------------------------------------------------- 1 | /** 2 | * jQuery Timer Plugin (jquery.timer.js) 3 | * @version 1.0.1 4 | * @author James Brooks 5 | * @website http://james.brooks.so 6 | * @license MIT - http://jbrooksuk.mit-license.org 7 | */ 8 | 9 | (function($) { 10 | jQuery.timer = function(interval, callback, options) { 11 | // Create options for the default reset value 12 | var options = jQuery.extend({ reset: 500 }, options); 13 | var interval = interval || options.reset; 14 | 15 | if(!callback) { return false; } 16 | 17 | var Timer = function(interval, callback, disabled) { 18 | // Only used by internal code to call the callback 19 | this.internalCallback = function() { callback(self); }; 20 | 21 | // Clears any timers 22 | this.stop = function() { 23 | if(this.state === 1 && this.id) { 24 | clearInterval(self.id); 25 | this.state = 0; 26 | return true; 27 | } 28 | return false; 29 | }; 30 | // Resets timers to a new time 31 | this.reset = function(time) { 32 | if(self.id) { clearInterval(self.id); } 33 | var time = time || options.reset; 34 | this.id = setInterval($.proxy(this.internalCallback, this), time); 35 | this.state = 1; 36 | return true; 37 | }; 38 | // Pause a timer. 39 | this.pause = function() { 40 | if(self.id && this.state === 1) { 41 | clearInterval(this.id); 42 | this.state = 2; 43 | return true; 44 | } 45 | return false; 46 | }; 47 | // Resumes a paused timer. 48 | this.resume = function() { 49 | if(this.state === 2) { 50 | this.state = 1; 51 | this.id = setInterval($.proxy(this.internalCallback, this), this.interval); 52 | return true; 53 | } 54 | return false; 55 | }; 56 | 57 | // Set the interval time again 58 | this.interval = interval; 59 | 60 | // Set the timer, if enabled 61 | if (!disabled) { 62 | this.id = setInterval($.proxy(this.internalCallback, this), this.interval); 63 | this.state = 1; 64 | } 65 | 66 | var self = this; 67 | }; 68 | 69 | // Create a new timer object 70 | return new Timer(interval, callback, options.disabled); 71 | }; 72 | })(jQuery); 73 | -------------------------------------------------------------------------------- /src/main/java/com/zt/pojo/student.java: -------------------------------------------------------------------------------- 1 | package com.zt.pojo; 2 | 3 | import java.io.Serializable; 4 | 5 | public class student implements Serializable { 6 | private String s_id; 7 | private String s_name; 8 | private String s_password; 9 | private String s_sex; 10 | private String s_major; 11 | private int s_point; 12 | 13 | public student(){} 14 | 15 | public student(String s_id, String s_name, String s_password, String s_sex, String s_major, int s_point) { 16 | this.s_id = s_id; 17 | this.s_name = s_name; 18 | this.s_password = s_password; 19 | this.s_sex = s_sex; 20 | this.s_major = s_major; 21 | this.s_point = s_point; 22 | } 23 | 24 | public String getS_id() { 25 | return s_id; 26 | } 27 | 28 | public void setS_id(String s_id) { 29 | this.s_id = s_id; 30 | } 31 | 32 | public String getS_name() { 33 | return s_name; 34 | } 35 | 36 | public void setS_name(String s_name) { 37 | this.s_name = s_name; 38 | } 39 | 40 | public String getS_password() { 41 | return s_password; 42 | } 43 | 44 | public void setS_password(String s_password) { 45 | this.s_password = s_password; 46 | } 47 | 48 | public String getS_sex() { 49 | return s_sex; 50 | } 51 | 52 | public void setS_sex(String s_sex) { 53 | this.s_sex = s_sex; 54 | } 55 | 56 | public String getS_major() { 57 | return s_major; 58 | } 59 | 60 | public void setS_major(String s_major) { 61 | this.s_major = s_major; 62 | } 63 | 64 | public int getS_point() { 65 | return s_point; 66 | } 67 | 68 | public void setS_point(int s_point) { 69 | this.s_point = s_point; 70 | } 71 | 72 | @Override 73 | public String toString() { 74 | return "student{" + 75 | "s_id='" + s_id + '\'' + 76 | ", s_name='" + s_name + '\'' + 77 | ", s_password='" + s_password + '\'' + 78 | ", s_sex='" + s_sex + '\'' + 79 | ", s_major='" + s_major + '\'' + 80 | ", s_point=" + s_point + 81 | '}'; 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /src/main/java/com/zt/pojo/vcourse.java: -------------------------------------------------------------------------------- 1 | package com.zt.pojo; 2 | 3 | public class vcourse { 4 | private String c_id; 5 | private String c_name; 6 | private String c_room; 7 | private String c_time; 8 | private int c_point; 9 | private int point; 10 | 11 | public vcourse(){} 12 | 13 | public vcourse(course course,int point){ 14 | this.c_id = course.getC_id(); 15 | this.c_name = course.getC_name(); 16 | this.c_room = course.getC_room(); 17 | this.c_time = course.getC_time(); 18 | this.c_point = course.getC_point(); 19 | this.point = point; 20 | } 21 | 22 | public vcourse(String c_id, String c_name, String c_room, String c_time, int c_point, int point) { 23 | this.c_id = c_id; 24 | this.c_name = c_name; 25 | this.c_room = c_room; 26 | this.c_time = c_time; 27 | this.c_point = c_point; 28 | this.point = point; 29 | } 30 | 31 | public String getC_id() { 32 | return c_id; 33 | } 34 | 35 | public void setC_id(String c_id) { 36 | this.c_id = c_id; 37 | } 38 | 39 | public String getC_name() { 40 | return c_name; 41 | } 42 | 43 | public void setC_name(String c_name) { 44 | this.c_name = c_name; 45 | } 46 | 47 | public String getC_room() { 48 | return c_room; 49 | } 50 | 51 | public void setC_room(String c_room) { 52 | this.c_room = c_room; 53 | } 54 | 55 | public String getC_time() { 56 | return c_time; 57 | } 58 | 59 | public void setC_time(String c_time) { 60 | this.c_time = c_time; 61 | } 62 | 63 | public int getC_point() { 64 | return c_point; 65 | } 66 | 67 | public void setC_point(int c_point) { 68 | this.c_point = c_point; 69 | } 70 | 71 | public int getPoint() { 72 | return point; 73 | } 74 | 75 | public void setPoint(int point) { 76 | this.point = point; 77 | } 78 | 79 | @Override 80 | public String toString() { 81 | return "vcourse{" + 82 | "c_id='" + c_id + '\'' + 83 | ", c_name='" + c_name + '\'' + 84 | ", c_room='" + c_room + '\'' + 85 | ", c_time='" + c_time + '\'' + 86 | ", c_point=" + c_point + 87 | ", point=" + point + 88 | '}'; 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /src/main/resources/static/js/ajax/student.js: -------------------------------------------------------------------------------- 1 | // 修改学生信息 2 | function update_studentInfo(data) { 3 | $.ajax({ 4 | method:"POST", 5 | type:"POST", 6 | url:"/updateStudentInfo", 7 | data:data, 8 | success:function (msg) { 9 | if(msg=="success"){ 10 | dialog("修改信息成功!"); 11 | }else{ 12 | dialog("修改信息失败!"); 13 | } 14 | },error:function () { 15 | dialog("ajax出错!"); 16 | } 17 | }); 18 | } 19 | 20 | // 学生选课操作 21 | function select_studentCourse(data) { 22 | $.ajax({ 23 | method:"POST", 24 | type:"POST", 25 | url:"/selectCourse", 26 | data:data, 27 | success:function (msg) { 28 | switch (msg){ 29 | case "success":{ 30 | dialog("选课成功!"); 31 | break; 32 | } 33 | case "npoint":{ 34 | dialog("积分不够!"); 35 | break; 36 | } 37 | case "no":{ 38 | dialog("该课程已选!"); 39 | break; 40 | } 41 | case "error":{ 42 | dialog("选课失败!"); 43 | break; 44 | } 45 | default:break; 46 | } 47 | },error:function () { 48 | dialog("ajax出错!"); 49 | } 50 | }); 51 | } 52 | 53 | // 修改选课积分 54 | function update_point(data) { 55 | $.ajax({ 56 | method:"POST", 57 | type:"POST", 58 | url:"/updatePoint", 59 | data:data, 60 | success:function (msg) { 61 | if(msg=="success"){ 62 | dialog("修改积分成功!"); 63 | }else{ 64 | dialog("修改积分失败!"); 65 | } 66 | },error:function () { 67 | dialog("ajax出错!"); 68 | } 69 | }); 70 | } 71 | 72 | // 退课 73 | function remove_course(data) { 74 | $.ajax({ 75 | method:"POST", 76 | type:"POST", 77 | url:"/removeSelect", 78 | data:data, 79 | success:function (msg) { 80 | if(msg=="success"){ 81 | $("#"+data['id']).parent("tr").remove(); 82 | dialog("退课成功!"); 83 | }else{ 84 | dialog("退课失败!"); 85 | } 86 | },error:function () { 87 | dialog("ajax出错!"); 88 | } 89 | }); 90 | } -------------------------------------------------------------------------------- /src/main/java/com/zt/controller/VisitController.java: -------------------------------------------------------------------------------- 1 | package com.zt.controller; 2 | 3 | import org.springframework.stereotype.Controller; 4 | import org.springframework.web.bind.annotation.RequestMapping; 5 | import org.springframework.web.bind.annotation.RequestParam; 6 | 7 | import javax.servlet.http.HttpServletRequest; 8 | import javax.servlet.http.HttpSession; 9 | 10 | @Controller 11 | public class VisitController { 12 | 13 | // 请求访问学生 14 | @RequestMapping("/student") 15 | public String student(HttpServletRequest request){ 16 | HttpSession session = null; 17 | try{ 18 | session = request.getSession(); 19 | session.setAttribute("user","student"); 20 | session.setAttribute("menu","index"); 21 | }catch (Exception e){ 22 | e.printStackTrace(); 23 | }finally {} 24 | if(session.getAttribute("student")==null) return "login/login"; 25 | else return "student/index"; 26 | } 27 | 28 | // 请求访问老师 29 | @RequestMapping("/teacher") 30 | public String teacher(HttpServletRequest request){ 31 | HttpSession session = null; 32 | try{ 33 | session = request.getSession(); 34 | session.setAttribute("user","teacher"); 35 | }catch (Exception e){ 36 | e.printStackTrace(); 37 | }finally {} 38 | if(session.getAttribute("t_id")==null) return "login/login"; 39 | else return "teacher/index"; 40 | } 41 | 42 | // 请求访问管理员 43 | @RequestMapping("/admin") 44 | public String admin(HttpServletRequest request){ 45 | HttpSession session = null; 46 | try{ 47 | session = request.getSession(); 48 | session.setAttribute("user","admin"); 49 | }catch (Exception e){ 50 | e.printStackTrace(); 51 | }finally {} 52 | if(session.getAttribute("a_id")==null) return "login/login"; 53 | else return "admin/index"; 54 | } 55 | 56 | // 退出登录 57 | @RequestMapping("/exit") 58 | public String exit(HttpServletRequest request){ 59 | HttpSession session = null; 60 | try{ 61 | session = request.getSession(); 62 | String user = session.getAttribute("user").toString(); 63 | session.removeAttribute(user); 64 | }catch (Exception e){ 65 | e.printStackTrace(); 66 | }finally {} 67 | return "login/login"; 68 | } 69 | 70 | } 71 | -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | com.zt 8 | CoursesProject 9 | 1.0-SNAPSHOT 10 | 11 | 12 | org.springframework.boot 13 | spring-boot-starter-parent 14 | 1.4.3.RELEASE 15 | 16 | 17 | 18 | 19 | UTF-8 20 | UTF-8 21 | 1.8 22 | 23 | 24 | 25 | 26 | org.springframework.boot 27 | spring-boot-starter-data-redis 28 | 29 | 30 | org.mybatis.spring.boot 31 | mybatis-spring-boot-starter 32 | 1.3.0 33 | 34 | 35 | org.springframework.boot 36 | spring-boot-starter-web 37 | 38 | 39 | org.springframework.boot 40 | spring-boot-starter-thymeleaf 41 | 42 | 43 | mysql 44 | mysql-connector-java 45 | runtime 46 | 47 | 48 | org.springframework.boot 49 | spring-boot-starter-test 50 | test 51 | 52 | 53 | 54 | 55 | springboot 56 | 57 | 58 | 59 | org.springframework.boot 60 | spring-boot-maven-plugin 61 | 62 | 63 | 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /src/main/java/com/zt/controller/VerificationController.java: -------------------------------------------------------------------------------- 1 | package com.zt.controller; 2 | 3 | import com.zt.pojo.student; 4 | import com.zt.service.AdminService; 5 | import com.zt.service.StudentService; 6 | import com.zt.service.TeacherService; 7 | import org.springframework.stereotype.Controller; 8 | import org.springframework.web.bind.annotation.RequestMapping; 9 | import org.springframework.web.bind.annotation.RequestMethod; 10 | import org.springframework.web.bind.annotation.RequestParam; 11 | 12 | import javax.annotation.Resource; 13 | import javax.servlet.http.HttpServletRequest; 14 | import javax.servlet.http.HttpServletResponse; 15 | import javax.servlet.http.HttpSession; 16 | import java.io.IOException; 17 | import java.io.PrintWriter; 18 | 19 | @Controller 20 | public class VerificationController { 21 | @Resource 22 | private StudentService studentService; 23 | @Resource 24 | private TeacherService teacherService; 25 | @Resource 26 | private AdminService adminService; 27 | 28 | // 拦截登录请求 29 | @RequestMapping(value = "/login.action",method = RequestMethod.POST) 30 | public void login(@RequestParam(value = "id") String id, 31 | @RequestParam(value = "password") String password, 32 | HttpServletResponse response, HttpServletRequest request){ 33 | PrintWriter out = null; 34 | HttpSession session = null; 35 | try{ 36 | out = response.getWriter(); 37 | session = request.getSession(); 38 | String user = session.getAttribute("user").toString(); 39 | String result = ""; 40 | switch (user){ 41 | case "student":{ 42 | result = studentService.loginService(id,password); 43 | if(result.equals("s_success")){ 44 | student student = studentService.getStudent(id); 45 | session.setAttribute("student",student); 46 | } 47 | break; 48 | } 49 | case "teacher":{ 50 | result = teacherService.loginService(id,password); 51 | if(result.equals("t_success")){ 52 | session.setAttribute("t_id",id); 53 | } 54 | break; 55 | } 56 | case "admin":{ 57 | result = adminService.loginService(id,password); 58 | if(result.equals("a_success")){ 59 | session.setAttribute("a_id",id); 60 | } 61 | break; 62 | } 63 | default:break; 64 | } 65 | out.print(result); 66 | out.flush(); 67 | }catch (IOException e){ 68 | e.printStackTrace(); 69 | }finally {} 70 | out.close(); 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /src/main/resources/templates/student/select.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 已选课程 - 学生选课系统 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 |
21 | 22 |
23 | 24 |
25 |
26 | 27 | 28 |   已选课程 29 | 30 |
31 |
32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 56 | 57 | 58 |
课程编号课程名上课地点上课时间学分积分操作
53 |   54 | 55 |
59 |
60 |
61 |
62 | 63 |
64 | 65 | -------------------------------------------------------------------------------- /src/main/java/com/zt/controller/CreatePageController.java: -------------------------------------------------------------------------------- 1 | package com.zt.controller; 2 | 3 | import com.zt.pojo.course; 4 | import com.zt.pojo.student; 5 | import com.zt.pojo.vcourse; 6 | import com.zt.service.CourseService; 7 | import com.zt.service.SelectService; 8 | import com.zt.service.StudentService; 9 | import org.springframework.stereotype.Controller; 10 | import org.springframework.stereotype.Service; 11 | import org.springframework.web.bind.annotation.RequestMapping; 12 | import org.springframework.web.bind.annotation.RequestParam; 13 | 14 | import javax.annotation.Resource; 15 | import javax.servlet.http.HttpServletRequest; 16 | import javax.servlet.http.HttpSession; 17 | import java.util.List; 18 | 19 | @Controller 20 | public class CreatePageController { 21 | @Resource 22 | private StudentService studentService; 23 | @Resource 24 | private CourseService courseService; 25 | @Resource 26 | private SelectService selectService; 27 | 28 | // 请求访问学生首页 29 | @RequestMapping("/studentIndex") 30 | public String studentIndex(HttpServletRequest request){ 31 | updatePageInfo(request); 32 | return "student/index"; 33 | } 34 | 35 | // 请求访问学生个人中心 36 | @RequestMapping("/studentInfo") 37 | public String studentInfo(HttpServletRequest request){ 38 | updatePageInfo(request); 39 | return "student/info"; 40 | } 41 | 42 | // 请求课程分页显示 43 | @RequestMapping("/course") 44 | public String course(@RequestParam("page") int page, HttpServletRequest request){ 45 | HttpSession session = null; 46 | try{ 47 | session = request.getSession(); 48 | List list = courseService.sortPage(page); 49 | int number = courseService.getNumber(); 50 | session.setAttribute("course",list); 51 | session.setAttribute("number",number); 52 | }catch (Exception e){ 53 | e.printStackTrace(); 54 | }finally {} 55 | return "student/course"; 56 | } 57 | 58 | // 请求显示已选课程 59 | @RequestMapping("/select") 60 | public String select(HttpServletRequest request){ 61 | try{ 62 | HttpSession session = request.getSession(); 63 | student student = (student) session.getAttribute("student"); 64 | List list = selectService.selectCourse2(student.getS_id()); 65 | session.setAttribute("select",list); 66 | }catch (Exception e){ 67 | e.printStackTrace(); 68 | }finally {} 69 | return "student/select"; 70 | } 71 | 72 | // 请求更新页面信息 73 | public void updatePageInfo(HttpServletRequest request){ 74 | try{ 75 | HttpSession session = request.getSession(); 76 | String id = ((student)session.getAttribute("student")).getS_id(); 77 | student student = studentService.getStudent(id); 78 | session.setAttribute("student",student); 79 | }catch (Exception e){ 80 | e.printStackTrace(); 81 | }finally {} 82 | } 83 | 84 | } 85 | -------------------------------------------------------------------------------- /src/main/java/com/zt/service/Impl/SelectServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.zt.service.Impl; 2 | 3 | import com.zt.dao.CourseDao; 4 | import com.zt.dao.SelectDao; 5 | import com.zt.dao.StudentDao; 6 | import com.zt.pojo.course; 7 | import com.zt.pojo.select; 8 | import com.zt.pojo.student; 9 | import com.zt.pojo.vcourse; 10 | import com.zt.service.SelectService; 11 | import com.zt.service.StudentService; 12 | import org.springframework.stereotype.Service; 13 | 14 | import javax.annotation.Resource; 15 | import java.util.ArrayList; 16 | import java.util.List; 17 | 18 | @Service 19 | public class SelectServiceImpl implements SelectService { 20 | @Resource 21 | private CourseDao courseDao; 22 | @Resource 23 | private StudentDao studentDao; 24 | @Resource 25 | private SelectDao selectDao; 26 | 27 | @Override 28 | public String selectCourse(select select) { 29 | try{ 30 | student student = studentDao.selectById(select.getS_id()); 31 | if(select.getPoint()>student.getS_point()) return "npoint"; 32 | if(selectDao.selects(select.getS_id(),select.getC_id())!=null) return "no"; 33 | studentDao.reducePoint(select.getS_id(),select.getPoint()); 34 | selectDao.insert(select); 35 | }catch (Exception e){ 36 | e.printStackTrace(); 37 | return "error"; 38 | } 39 | return "success"; 40 | } 41 | 42 | @Override 43 | public List selectCourse2(String s_id) { 44 | List 51 | 52 | 53 | 54 | 55 |
    56 |
  • «
  • 57 |
58 |
    59 |
  • 60 |
61 |
    62 |
  • »
  • 63 |
64 | 65 | 66 | 67 | 68 |
69 | 70 | -------------------------------------------------------------------------------- /src/main/resources/templates/student/info.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 个人信息 - 学生选课系统 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 |
21 | 22 |
23 | 24 |
25 |
26 | 27 |   信息修改 28 | 29 |
30 | 31 |
32 |
33 |
34 |      35 | 36 |

37 |
38 |      39 | 40 |

41 |
42 |      43 | 44 |

45 |
46 |      47 | 48 |

49 |
50 |      51 | 52 |

53 |
54 |      55 | 56 |

57 |
58 | 59 |    60 | 61 |
62 |
63 |
64 |
65 |
66 | 67 |
68 | 69 | -------------------------------------------------------------------------------- /src/main/resources/templates/student/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 首页 - 学生选课系统 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 |
18 | 19 |
20 | 21 |
22 |
23 | 24 |   首页 25 | 26 |
27 |
28 |
29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 39 | 40 | 41 | 43 | 44 | 45 | 47 | 48 | 49 | 51 | 52 | 53 | 55 | 56 | 57 |
个人信息
学生编号: 38 |
学生姓名: 42 |
学生性别: 46 |
学生专业: 50 |
学生积分: 54 |
58 |
59 |
60 |
61 |   选课说明: 62 |
63 |
    64 |
  • 点击信息修改更改学生基本信息
  • 65 |
  • 在选课中心进行选课操作
  • 66 |
  • 点击已选课程能查看所选课程以及退课操作
  • 67 |
  • 点击生成课表来查看课程表
  • 68 |
69 |
70 |
71 |
72 |   选课开发情况: 73 |
74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 |
选课模式:正选选课策略:可选可退
开始时间:2018/7/1结束时间:2018/8/1
84 |
85 |
86 |
87 |
88 | 89 | -------------------------------------------------------------------------------- /src/main/resources/static/css/index.css: -------------------------------------------------------------------------------- 1 | body{ 2 | margin: 0; 3 | padding: 0; 4 | width: 100%; 5 | height: 100%; 6 | } 7 | .course-left{ 8 | position: relative; 9 | width: 17%; 10 | height: 588px; 11 | background-color: #2a3f54; 12 | float: left; 13 | color: #e6e6e6; 14 | } 15 | .course-title{ 16 | position: relative; 17 | font-weight: 700; 18 | font-size: 18px; 19 | left: 0; 20 | top: 20px; 21 | } 22 | .course-subtitle{ 23 | position: relative; 24 | font-weight: 600; 25 | font-size: 12px; 26 | left: 10px; 27 | top: 40px; 28 | } 29 | .course-menu{ 30 | position: relative; 31 | top: 60px; 32 | padding: 0; 33 | } 34 | .course-menu li{ 35 | width: 100%; 36 | height: 40px; 37 | line-height: 40px; 38 | margin-top: 10px; 39 | padding-left: 10px; 40 | font-size: 12px; 41 | font-weight: 600; 42 | cursor: pointer; 43 | } 44 | .menu-focus{ 45 | border-top: 1px solid #495a69; 46 | border-bottom: 1px solid #233546; 47 | border-right: 5px solid #1abb9c; 48 | border-top-right-radius: 5px; 49 | border-bottom-right-radius: 5px; 50 | background-color: #314456; 51 | } 52 | .course-menu li:hover{ 53 | border-top: 1px solid #495a69; 54 | border-bottom: 1px solid #233546; 55 | border-right: 5px solid #1abb9c; 56 | border-top-right-radius: 5px; 57 | border-bottom-right-radius: 5px; 58 | background-color: #314456; 59 | } 60 | .course-right{ 61 | position: relative; 62 | width: 83%; 63 | height: 588px; 64 | background-color: #f7f7f7; 65 | float: left; 66 | } 67 | .course-user{ 68 | position: relative; 69 | width: 100%; 70 | height: 60px; 71 | background-color: #ededed; 72 | border-bottom: 2px solid #e0e4e8; 73 | } 74 | .course-user img[name="user"]{ 75 | position: absolute; 76 | width: 40px; 77 | height: 40px; 78 | border-radius: 50%; 79 | right: 120px; 80 | top: 10px; 81 | } 82 | .course-user img[name="menu"]{ 83 | position: absolute; 84 | width: 30px; 85 | height: 40px; 86 | border-radius: 50%; 87 | left: 15px; 88 | top: 10px; 89 | } 90 | .course-user span{ 91 | position: absolute; 92 | right: 70px; 93 | top: 18px; 94 | color: #8692a1; 95 | font-weight: 600; 96 | } 97 | .course-show{ 98 | position: relative; 99 | width: 95%; 100 | margin: 0 auto; 101 | top: 25px; 102 | background-color: #fff; 103 | border: 1px solid #e0e4e8; 104 | padding-bottom: 20px; 105 | } 106 | .course-show-title{ 107 | position: relative; 108 | width: 95%; 109 | height: 50px; 110 | margin: 0 auto; 111 | line-height: 50px; 112 | padding-left: 5px; 113 | border-bottom: 2px solid #e0e4e8; 114 | } 115 | .course-show-title span{ 116 | position: relative; 117 | color: #8692a1; 118 | font-size: 18px; 119 | font-weight: 400; 120 | } 121 | div[name="fragment"]{ 122 | position: relative; 123 | width: 95%; 124 | height: 360px; 125 | margin-top: 20px; 126 | margin-left: 30px; 127 | border: none; 128 | color: #8692a1; 129 | } 130 | div[name="fragment"] ul{ 131 | margin-top: 0px; 132 | } 133 | .course-userInfo{ 134 | position: relative; 135 | margin-top: 10px; 136 | margin-left: 0px; 137 | width: 250px; 138 | height: 238px; 139 | float: left; 140 | border: 2px solid #e0e4e8; 141 | border-radius: 15px; 142 | background-color: #f7f7f7; 143 | 144 | } 145 | .course-indexInfo{ 146 | position: relative; 147 | margin-top: 20px; 148 | margin-left: 100px; 149 | padding-left: 10px; 150 | width: 520px; 151 | height: 160px; 152 | float: left; 153 | border-top: 2px dashed #e0e4e8; 154 | } 155 | .course-indexInfo-title{ 156 | position: relative; 157 | font-size: 18px; 158 | margin-top: 10px; 159 | } 160 | .course-indexInfo ul{ 161 | margin-top: 20px; 162 | } 163 | .course-indexInfo ul li{ 164 | margin-top: 5px; 165 | } 166 | .course-indexInfo table{ 167 | margin-top: 20px; 168 | } -------------------------------------------------------------------------------- /src/main/java/com/zt/controller/StudentController.java: -------------------------------------------------------------------------------- 1 | package com.zt.controller; 2 | 3 | import com.zt.pojo.select; 4 | import com.zt.pojo.student; 5 | import com.zt.service.SelectService; 6 | import com.zt.service.StudentService; 7 | import org.springframework.stereotype.Controller; 8 | import org.springframework.web.bind.annotation.RequestMapping; 9 | import org.springframework.web.bind.annotation.RequestMethod; 10 | import org.springframework.web.bind.annotation.RequestParam; 11 | 12 | import javax.annotation.Resource; 13 | import javax.servlet.http.HttpServletRequest; 14 | import javax.servlet.http.HttpServletResponse; 15 | import javax.servlet.http.HttpSession; 16 | import java.io.IOException; 17 | import java.io.PrintWriter; 18 | 19 | @Controller 20 | public class StudentController { 21 | @Resource 22 | private StudentService studentService; 23 | @Resource 24 | private SelectService selectService; 25 | 26 | // 修改个人信息 27 | @RequestMapping(value = "/updateStudentInfo",method = RequestMethod.POST) 28 | public void updateStudentInfo(@RequestParam(value = "name") String name, 29 | @RequestParam(value = "password") String password, 30 | @RequestParam(value = "sex") String sex, 31 | @RequestParam(value = "major") String major, 32 | HttpServletRequest request, HttpServletResponse response){ 33 | HttpSession session = null; 34 | PrintWriter out = null; 35 | try{ 36 | out = response.getWriter(); 37 | session = request.getSession(); 38 | String id = ((student)session.getAttribute("student")).getS_id(); 39 | boolean ch = studentService.updateService(id,name,sex,password,major); 40 | if(ch) out.print("success"); 41 | else out.print("error"); 42 | out.flush(); 43 | }catch (IOException e){ 44 | e.printStackTrace(); 45 | }finally {} 46 | out.close(); 47 | } 48 | 49 | // 选课操作 50 | @RequestMapping(value = "/selectCourse",method = RequestMethod.POST) 51 | public void selectCourse(@RequestParam(value = "id") String c_id, 52 | @RequestParam(value = "point") int point, 53 | HttpServletRequest request,HttpServletResponse response){ 54 | PrintWriter out = null; 55 | try{ 56 | out = response.getWriter(); 57 | HttpSession session = request.getSession(); 58 | String s_id = ((student)session.getAttribute("student")).getS_id(); 59 | String result = selectService.selectCourse(new select(s_id,c_id,point)); 60 | out.print(result); 61 | out.flush(); 62 | }catch (IOException e){ 63 | e.printStackTrace(); 64 | }finally {} 65 | out.close(); 66 | } 67 | 68 | // 修改积分操作 69 | @RequestMapping(value = "/updatePoint",method = RequestMethod.POST) 70 | public void updatePoint(@RequestParam(value = "id") String c_id, 71 | @RequestParam(value = "point") int point, 72 | HttpServletRequest request,HttpServletResponse response){ 73 | PrintWriter out = null; 74 | try{ 75 | out = response.getWriter(); 76 | HttpSession session = request.getSession(); 77 | String s_id = ((student)session.getAttribute("student")).getS_id(); 78 | select select = new select(s_id,c_id,point); 79 | selectService.updatePoint(select); 80 | out.print("success"); 81 | out.flush(); 82 | }catch (IOException e){ 83 | e.printStackTrace(); 84 | }finally {} 85 | out.close(); 86 | } 87 | 88 | // 退课操作 89 | @RequestMapping(value = "/removeSelect",method = RequestMethod.POST) 90 | public void removeSelect(@RequestParam(value = "id") String c_id, 91 | HttpServletRequest request,HttpServletResponse response){ 92 | PrintWriter out = null; 93 | try{ 94 | out = response.getWriter(); 95 | HttpSession session = request.getSession(); 96 | String s_id = ((student)session.getAttribute("student")).getS_id(); 97 | selectService.removeCourse(s_id,c_id); 98 | out.print("success"); 99 | out.flush(); 100 | }catch (IOException e){ 101 | e.printStackTrace(); 102 | }finally {} 103 | 104 | } 105 | 106 | } 107 | -------------------------------------------------------------------------------- /.idea/uiDesigner.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | -------------------------------------------------------------------------------- /CoursesProject.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | -------------------------------------------------------------------------------- /src/main/resources/static/bootstrap/css/bootstrap-modal.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v3.3.7 (http://getbootstrap.com) 3 | * Copyright 2011-2018 Twitter, Inc. 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 5 | */ 6 | 7 | /*! 8 | * Generated using the Bootstrap Customizer () 9 | * Config saved to config.json and 10 | */ 11 | /*! 12 | * Bootstrap v3.3.7 (http://getbootstrap.com) 13 | * Copyright 2011-2016 Twitter, Inc. 14 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 15 | */ 16 | /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ 17 | html { 18 | font-family: sans-serif; 19 | -ms-text-size-adjust: 100%; 20 | -webkit-text-size-adjust: 100%; 21 | } 22 | body { 23 | margin: 0; 24 | } 25 | article, 26 | aside, 27 | details, 28 | figcaption, 29 | figure, 30 | footer, 31 | header, 32 | hgroup, 33 | main, 34 | menu, 35 | nav, 36 | section, 37 | summary { 38 | display: block; 39 | } 40 | audio, 41 | canvas, 42 | progress, 43 | video { 44 | display: inline-block; 45 | vertical-align: baseline; 46 | } 47 | audio:not([controls]) { 48 | display: none; 49 | height: 0; 50 | } 51 | [hidden], 52 | template { 53 | display: none; 54 | } 55 | a { 56 | background-color: transparent; 57 | } 58 | a:active, 59 | a:hover { 60 | outline: 0; 61 | } 62 | abbr[title] { 63 | border-bottom: 1px dotted; 64 | } 65 | b, 66 | strong { 67 | font-weight: bold; 68 | } 69 | dfn { 70 | font-style: italic; 71 | } 72 | h1 { 73 | font-size: 2em; 74 | margin: 0.67em 0; 75 | } 76 | mark { 77 | background: #ff0; 78 | color: #000; 79 | } 80 | small { 81 | font-size: 80%; 82 | } 83 | sub, 84 | sup { 85 | font-size: 75%; 86 | line-height: 0; 87 | position: relative; 88 | vertical-align: baseline; 89 | } 90 | sup { 91 | top: -0.5em; 92 | } 93 | sub { 94 | bottom: -0.25em; 95 | } 96 | img { 97 | border: 0; 98 | } 99 | svg:not(:root) { 100 | overflow: hidden; 101 | } 102 | figure { 103 | margin: 1em 40px; 104 | } 105 | hr { 106 | -webkit-box-sizing: content-box; 107 | -moz-box-sizing: content-box; 108 | box-sizing: content-box; 109 | height: 0; 110 | } 111 | pre { 112 | overflow: auto; 113 | } 114 | code, 115 | kbd, 116 | pre, 117 | samp { 118 | font-family: monospace, monospace; 119 | font-size: 1em; 120 | } 121 | button, 122 | input, 123 | optgroup, 124 | select, 125 | textarea { 126 | color: inherit; 127 | font: inherit; 128 | margin: 0; 129 | } 130 | button { 131 | overflow: visible; 132 | } 133 | button, 134 | select { 135 | text-transform: none; 136 | } 137 | button, 138 | html input[type="button"], 139 | input[type="reset"], 140 | input[type="submit"] { 141 | -webkit-appearance: button; 142 | cursor: pointer; 143 | } 144 | button[disabled], 145 | html input[disabled] { 146 | cursor: default; 147 | } 148 | button::-moz-focus-inner, 149 | input::-moz-focus-inner { 150 | border: 0; 151 | padding: 0; 152 | } 153 | input { 154 | line-height: normal; 155 | } 156 | input[type="checkbox"], 157 | input[type="radio"] { 158 | -webkit-box-sizing: border-box; 159 | -moz-box-sizing: border-box; 160 | box-sizing: border-box; 161 | padding: 0; 162 | } 163 | input[type="number"]::-webkit-inner-spin-button, 164 | input[type="number"]::-webkit-outer-spin-button { 165 | height: auto; 166 | } 167 | input[type="search"] { 168 | -webkit-appearance: textfield; 169 | -webkit-box-sizing: content-box; 170 | -moz-box-sizing: content-box; 171 | box-sizing: content-box; 172 | } 173 | input[type="search"]::-webkit-search-cancel-button, 174 | input[type="search"]::-webkit-search-decoration { 175 | -webkit-appearance: none; 176 | } 177 | fieldset { 178 | border: 1px solid #c0c0c0; 179 | margin: 0 2px; 180 | padding: 0.35em 0.625em 0.75em; 181 | } 182 | legend { 183 | border: 0; 184 | padding: 0; 185 | } 186 | textarea { 187 | overflow: auto; 188 | } 189 | optgroup { 190 | font-weight: bold; 191 | } 192 | table { 193 | border-collapse: collapse; 194 | border-spacing: 0; 195 | } 196 | td, 197 | th { 198 | padding: 0; 199 | } 200 | * { 201 | -webkit-box-sizing: border-box; 202 | -moz-box-sizing: border-box; 203 | box-sizing: border-box; 204 | } 205 | *:before, 206 | *:after { 207 | -webkit-box-sizing: border-box; 208 | -moz-box-sizing: border-box; 209 | box-sizing: border-box; 210 | } 211 | html { 212 | font-size: 10px; 213 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0); 214 | } 215 | body { 216 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 217 | font-size: 14px; 218 | line-height: 1.42857143; 219 | color: #333333; 220 | background-color: #ffffff; 221 | } 222 | input, 223 | button, 224 | select, 225 | textarea { 226 | font-family: inherit; 227 | font-size: inherit; 228 | line-height: inherit; 229 | } 230 | a { 231 | color: #337ab7; 232 | text-decoration: none; 233 | } 234 | a:hover, 235 | a:focus { 236 | color: #23527c; 237 | text-decoration: underline; 238 | } 239 | a:focus { 240 | outline: 5px auto -webkit-focus-ring-color; 241 | outline-offset: -2px; 242 | } 243 | figure { 244 | margin: 0; 245 | } 246 | img { 247 | vertical-align: middle; 248 | } 249 | .img-responsive { 250 | display: block; 251 | max-width: 100%; 252 | height: auto; 253 | } 254 | .img-rounded { 255 | border-radius: 6px; 256 | } 257 | .img-thumbnail { 258 | padding: 4px; 259 | line-height: 1.42857143; 260 | background-color: #ffffff; 261 | border: 1px solid #dddddd; 262 | border-radius: 4px; 263 | -webkit-transition: all 0.2s ease-in-out; 264 | -o-transition: all 0.2s ease-in-out; 265 | transition: all 0.2s ease-in-out; 266 | display: inline-block; 267 | max-width: 100%; 268 | height: auto; 269 | } 270 | .img-circle { 271 | border-radius: 50%; 272 | } 273 | hr { 274 | margin-top: 20px; 275 | margin-bottom: 20px; 276 | border: 0; 277 | border-top: 1px solid #eeeeee; 278 | } 279 | .sr-only { 280 | position: absolute; 281 | width: 1px; 282 | height: 1px; 283 | margin: -1px; 284 | padding: 0; 285 | overflow: hidden; 286 | clip: rect(0, 0, 0, 0); 287 | border: 0; 288 | } 289 | .sr-only-focusable:active, 290 | .sr-only-focusable:focus { 291 | position: static; 292 | width: auto; 293 | height: auto; 294 | margin: 0; 295 | overflow: visible; 296 | clip: auto; 297 | } 298 | [role="button"] { 299 | cursor: pointer; 300 | } 301 | .modal-open { 302 | overflow: hidden; 303 | } 304 | .modal { 305 | display: none; 306 | overflow: hidden; 307 | position: fixed; 308 | top: 0; 309 | right: 0; 310 | bottom: 0; 311 | left: 0; 312 | z-index: 1050; 313 | -webkit-overflow-scrolling: touch; 314 | outline: 0; 315 | } 316 | .modal.fade .modal-dialog { 317 | -webkit-transform: translate(0, -25%); 318 | -ms-transform: translate(0, -25%); 319 | -o-transform: translate(0, -25%); 320 | transform: translate(0, -25%); 321 | -webkit-transition: -webkit-transform 0.3s ease-out; 322 | -o-transition: -o-transform 0.3s ease-out; 323 | transition: transform 0.3s ease-out; 324 | } 325 | .modal.in .modal-dialog { 326 | -webkit-transform: translate(0, 0); 327 | -ms-transform: translate(0, 0); 328 | -o-transform: translate(0, 0); 329 | transform: translate(0, 0); 330 | } 331 | .modal-open .modal { 332 | overflow-x: hidden; 333 | overflow-y: auto; 334 | } 335 | .modal-dialog { 336 | position: relative; 337 | width: auto; 338 | margin: 10px; 339 | } 340 | .modal-content { 341 | position: relative; 342 | background-color: #ffffff; 343 | border: 1px solid #999999; 344 | border: 1px solid rgba(0, 0, 0, 0.2); 345 | border-radius: 6px; 346 | -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); 347 | box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); 348 | -webkit-background-clip: padding-box; 349 | background-clip: padding-box; 350 | outline: 0; 351 | } 352 | .modal-backdrop { 353 | position: fixed; 354 | top: 0; 355 | right: 0; 356 | bottom: 0; 357 | left: 0; 358 | z-index: 1040; 359 | background-color: #000000; 360 | } 361 | .modal-backdrop.fade { 362 | opacity: 0; 363 | filter: alpha(opacity=0); 364 | } 365 | .modal-backdrop.in { 366 | opacity: 0.5; 367 | filter: alpha(opacity=50); 368 | } 369 | .modal-header { 370 | padding: 15px; 371 | border-bottom: 1px solid #e5e5e5; 372 | } 373 | .modal-header .close { 374 | margin-top: -2px; 375 | } 376 | .modal-title { 377 | margin: 0; 378 | line-height: 1.42857143; 379 | } 380 | .modal-body { 381 | position: relative; 382 | padding: 15px; 383 | } 384 | .modal-footer { 385 | padding: 15px; 386 | text-align: right; 387 | border-top: 1px solid #e5e5e5; 388 | } 389 | .modal-footer .btn + .btn { 390 | margin-left: 5px; 391 | margin-bottom: 0; 392 | } 393 | .modal-footer .btn-group .btn + .btn { 394 | margin-left: -1px; 395 | } 396 | .modal-footer .btn-block + .btn-block { 397 | margin-left: 0; 398 | } 399 | .modal-scrollbar-measure { 400 | position: absolute; 401 | top: -9999px; 402 | width: 50px; 403 | height: 50px; 404 | overflow: scroll; 405 | } 406 | @media (min-width: 768px) { 407 | .modal-dialog { 408 | width: 600px; 409 | margin: 30px auto; 410 | } 411 | .modal-content { 412 | -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); 413 | box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); 414 | } 415 | .modal-sm { 416 | width: 300px; 417 | } 418 | } 419 | @media (min-width: 992px) { 420 | .modal-lg { 421 | width: 900px; 422 | } 423 | } 424 | .clearfix:before, 425 | .clearfix:after, 426 | .modal-header:before, 427 | .modal-header:after, 428 | .modal-footer:before, 429 | .modal-footer:after { 430 | content: " "; 431 | display: table; 432 | } 433 | .clearfix:after, 434 | .modal-header:after, 435 | .modal-footer:after { 436 | clear: both; 437 | } 438 | .center-block { 439 | display: block; 440 | margin-left: auto; 441 | margin-right: auto; 442 | } 443 | .pull-right { 444 | float: right !important; 445 | } 446 | .pull-left { 447 | float: left !important; 448 | } 449 | .hide { 450 | display: none !important; 451 | } 452 | .show { 453 | display: block !important; 454 | } 455 | .invisible { 456 | visibility: hidden; 457 | } 458 | .text-hide { 459 | font: 0/0 a; 460 | color: transparent; 461 | text-shadow: none; 462 | background-color: transparent; 463 | border: 0; 464 | } 465 | .hidden { 466 | display: none !important; 467 | } 468 | .affix { 469 | position: fixed; 470 | } 471 | -------------------------------------------------------------------------------- /src/main/resources/static/bootstrap/css/bootstrap-theme.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v3.3.7 (http://getbootstrap.com) 3 | * Copyright 2011-2016 Twitter, Inc. 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 5 | */.btn-danger,.btn-default,.btn-info,.btn-primary,.btn-success,.btn-warning{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-success.active,.btn-success:active,.btn-warning.active,.btn-warning:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-danger.disabled,.btn-danger[disabled],.btn-default.disabled,.btn-default[disabled],.btn-info.disabled,.btn-info[disabled],.btn-primary.disabled,.btn-primary[disabled],.btn-success.disabled,.btn-success[disabled],.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-danger,fieldset[disabled] .btn-default,fieldset[disabled] .btn-info,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-success,fieldset[disabled] .btn-warning{-webkit-box-shadow:none;box-shadow:none}.btn-danger .badge,.btn-default .badge,.btn-info .badge,.btn-primary .badge,.btn-success .badge,.btn-warning .badge{text-shadow:none}.btn.active,.btn:active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-o-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e0e0e0));background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;border-color:#ccc}.btn-default:focus,.btn-default:hover{background-color:#e0e0e0;background-position:0 -15px}.btn-default.active,.btn-default:active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-o-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#265a88));background-image:linear-gradient(to bottom,#337ab7 0,#265a88 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#245580}.btn-primary:focus,.btn-primary:hover{background-color:#265a88;background-position:0 -15px}.btn-primary.active,.btn-primary:active{background-color:#265a88;border-color:#245580}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#265a88;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#419641));background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:focus,.btn-success:hover{background-color:#419641;background-position:0 -15px}.btn-success.active,.btn-success:active{background-color:#419641;border-color:#3e8f3e}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:focus,.btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.btn-info.active,.btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#eb9316));background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:focus,.btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.btn-warning.active,.btn-warning:active{background-color:#eb9316;border-color:#e38d13}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c12e2a));background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:focus,.btn-danger:hover{background-color:#c12e2a;background-position:0 -15px}.btn-danger.active,.btn-danger:active{background-color:#c12e2a;border-color:#b92c28}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#c12e2a;background-image:none}.img-thumbnail,.thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{background-color:#2e6da4;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-o-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f8f8f8));background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-o-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dbdbdb),to(#e2e2e2));background-image:linear-gradient(to bottom,#dbdbdb 0,#e2e2e2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-o-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#222));background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-o-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#080808),to(#0f0f0f));background-image:linear-gradient(to bottom,#080808 0,#0f0f0f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}@media (max-width:767px){.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);background-repeat:repeat-x;border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#b9def0));background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);background-repeat:repeat-x;border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#f8efc0));background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);background-repeat:repeat-x;border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-o-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#e7c3c3));background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);background-repeat:repeat-x;border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#f5f5f5));background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x}.progress-bar{background-image:-webkit-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-o-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#286090));background-image:linear-gradient(to bottom,#337ab7 0,#286090 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);background-repeat:repeat-x}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#449d44));background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);background-repeat:repeat-x}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#31b0d5));background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);background-repeat:repeat-x}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#ec971f));background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);background-repeat:repeat-x}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c9302c));background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);background-repeat:repeat-x}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{text-shadow:0 -1px 0 #286090;background-image:-webkit-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2b669a));background-image:linear-gradient(to bottom,#337ab7 0,#2b669a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);background-repeat:repeat-x;border-color:#2b669a}.list-group-item.active .badge,.list-group-item.active:focus .badge,.list-group-item.active:hover .badge{text-shadow:none}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#d0e9c6));background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);background-repeat:repeat-x}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#c4e3f3));background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);background-repeat:repeat-x}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#faf2cc));background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);background-repeat:repeat-x}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-o-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#ebcccc));background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);background-repeat:repeat-x}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#e8e8e8),to(#f5f5f5));background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x;border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)} 6 | /*# sourceMappingURL=bootstrap-theme.min.css.map */ -------------------------------------------------------------------------------- /src/main/resources/static/bootstrap/css/bootstrap-theme.min.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["less/theme.less","less/mixins/vendor-prefixes.less","less/mixins/gradients.less","less/mixins/reset-filter.less"],"names":[],"mappings":";;;;AAmBA,YAAA,aAAA,UAAA,aAAA,aAAA,aAME,YAAA,EAAA,KAAA,EAAA,eC2CA,mBAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,iBDvCR,mBAAA,mBAAA,oBAAA,oBAAA,iBAAA,iBAAA,oBAAA,oBAAA,oBAAA,oBAAA,oBAAA,oBCsCA,mBAAA,MAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,iBDlCR,qBAAA,sBAAA,sBAAA,uBAAA,mBAAA,oBAAA,sBAAA,uBAAA,sBAAA,uBAAA,sBAAA,uBAAA,+BAAA,gCAAA,6BAAA,gCAAA,gCAAA,gCCiCA,mBAAA,KACQ,WAAA,KDlDV,mBAAA,oBAAA,iBAAA,oBAAA,oBAAA,oBAuBI,YAAA,KAyCF,YAAA,YAEE,iBAAA,KAKJ,aErEI,YAAA,EAAA,IAAA,EAAA,KACA,iBAAA,iDACA,iBAAA,4CAAA,iBAAA,qEAEA,iBAAA,+CCnBF,OAAA,+GH4CA,OAAA,0DACA,kBAAA,SAuC2C,aAAA,QAA2B,aAAA,KArCtE,mBAAA,mBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,oBAAA,oBAEE,iBAAA,QACA,aAAA,QAMA,sBAAA,6BAAA,4BAAA,6BAAA,4BAAA,4BAAA,uBAAA,8BAAA,6BAAA,8BAAA,6BAAA,6BAAA,gCAAA,uCAAA,sCAAA,uCAAA,sCAAA,sCAME,iBAAA,QACA,iBAAA,KAgBN,aEtEI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDAEA,OAAA,+GCnBF,OAAA,0DH4CA,kBAAA,SACA,aAAA,QAEA,mBAAA,mBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,oBAAA,oBAEE,iBAAA,QACA,aAAA,QAMA,sBAAA,6BAAA,4BAAA,6BAAA,4BAAA,4BAAA,uBAAA,8BAAA,6BAAA,8BAAA,6BAAA,6BAAA,gCAAA,uCAAA,sCAAA,uCAAA,sCAAA,sCAME,iBAAA,QACA,iBAAA,KAiBN,aEvEI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDAEA,OAAA,+GCnBF,OAAA,0DH4CA,kBAAA,SACA,aAAA,QAEA,mBAAA,mBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,oBAAA,oBAEE,iBAAA,QACA,aAAA,QAMA,sBAAA,6BAAA,4BAAA,6BAAA,4BAAA,4BAAA,uBAAA,8BAAA,6BAAA,8BAAA,6BAAA,6BAAA,gCAAA,uCAAA,sCAAA,uCAAA,sCAAA,sCAME,iBAAA,QACA,iBAAA,KAkBN,UExEI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDAEA,OAAA,+GCnBF,OAAA,0DH4CA,kBAAA,SACA,aAAA,QAEA,gBAAA,gBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,iBAAA,iBAEE,iBAAA,QACA,aAAA,QAMA,mBAAA,0BAAA,yBAAA,0BAAA,yBAAA,yBAAA,oBAAA,2BAAA,0BAAA,2BAAA,0BAAA,0BAAA,6BAAA,oCAAA,mCAAA,oCAAA,mCAAA,mCAME,iBAAA,QACA,iBAAA,KAmBN,aEzEI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDAEA,OAAA,+GCnBF,OAAA,0DH4CA,kBAAA,SACA,aAAA,QAEA,mBAAA,mBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,oBAAA,oBAEE,iBAAA,QACA,aAAA,QAMA,sBAAA,6BAAA,4BAAA,6BAAA,4BAAA,4BAAA,uBAAA,8BAAA,6BAAA,8BAAA,6BAAA,6BAAA,gCAAA,uCAAA,sCAAA,uCAAA,sCAAA,sCAME,iBAAA,QACA,iBAAA,KAoBN,YE1EI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDAEA,OAAA,+GCnBF,OAAA,0DH4CA,kBAAA,SACA,aAAA,QAEA,kBAAA,kBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,mBAAA,mBAEE,iBAAA,QACA,aAAA,QAMA,qBAAA,4BAAA,2BAAA,4BAAA,2BAAA,2BAAA,sBAAA,6BAAA,4BAAA,6BAAA,4BAAA,4BAAA,+BAAA,sCAAA,qCAAA,sCAAA,qCAAA,qCAME,iBAAA,QACA,iBAAA,KA2BN,eAAA,WClCE,mBAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,EAAA,IAAA,IAAA,iBD2CV,0BAAA,0BE3FI,iBAAA,QACA,iBAAA,oDACA,iBAAA,+CAAA,iBAAA,wEACA,iBAAA,kDACA,OAAA,+GF0FF,kBAAA,SAEF,yBAAA,+BAAA,+BEhGI,iBAAA,QACA,iBAAA,oDACA,iBAAA,+CAAA,iBAAA,wEACA,iBAAA,kDACA,OAAA,+GFgGF,kBAAA,SASF,gBE7GI,iBAAA,iDACA,iBAAA,4CACA,iBAAA,qEAAA,iBAAA,+CACA,OAAA,+GACA,OAAA,0DCnBF,kBAAA,SH+HA,cAAA,ICjEA,mBAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,iBD6DV,sCAAA,oCE7GI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SD2CF,mBAAA,MAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,iBD0EV,cAAA,iBAEE,YAAA,EAAA,IAAA,EAAA,sBAIF,gBEhII,iBAAA,iDACA,iBAAA,4CACA,iBAAA,qEAAA,iBAAA,+CACA,OAAA,+GACA,OAAA,0DCnBF,kBAAA,SHkJA,cAAA,IAHF,sCAAA,oCEhII,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SD2CF,mBAAA,MAAA,EAAA,IAAA,IAAA,gBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,gBDgFV,8BAAA,iCAYI,YAAA,EAAA,KAAA,EAAA,gBAKJ,qBAAA,kBAAA,mBAGE,cAAA,EAqBF,yBAfI,mDAAA,yDAAA,yDAGE,MAAA,KE7JF,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,UFqKJ,OACE,YAAA,EAAA,IAAA,EAAA,qBC3HA,mBAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,gBACQ,WAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,gBDsIV,eEtLI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF8KF,aAAA,QAKF,YEvLI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF8KF,aAAA,QAMF,eExLI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF8KF,aAAA,QAOF,cEzLI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF8KF,aAAA,QAeF,UEjMI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFuMJ,cE3MI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFwMJ,sBE5MI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFyMJ,mBE7MI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF0MJ,sBE9MI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF2MJ,qBE/MI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF+MJ,sBElLI,iBAAA,yKACA,iBAAA,oKACA,iBAAA,iKFyLJ,YACE,cAAA,IC9KA,mBAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,EAAA,IAAA,IAAA,iBDgLV,wBAAA,8BAAA,8BAGE,YAAA,EAAA,KAAA,EAAA,QEnOE,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFiOF,aAAA,QALF,+BAAA,qCAAA,qCAQI,YAAA,KAUJ,OCnME,mBAAA,EAAA,IAAA,IAAA,gBACQ,WAAA,EAAA,IAAA,IAAA,gBD4MV,8BE5PI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFyPJ,8BE7PI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF0PJ,8BE9PI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF2PJ,2BE/PI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF4PJ,8BEhQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF6PJ,6BEjQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFoQJ,MExQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFsQF,aAAA,QC3NA,mBAAA,MAAA,EAAA,IAAA,IAAA,gBAAA,EAAA,IAAA,EAAA,qBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,gBAAA,EAAA,IAAA,EAAA","sourcesContent":["/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n//\n// Load core variables and mixins\n// --------------------------------------------------\n\n@import \"variables.less\";\n@import \"mixins.less\";\n\n\n//\n// Buttons\n// --------------------------------------------------\n\n// Common styles\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0,0,0,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n // Reset the shadow\n &:active,\n &.active {\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n .box-shadow(none);\n }\n\n .badge {\n text-shadow: none;\n }\n}\n\n// Mixin for generating new styles\n.btn-styles(@btn-color: #555) {\n #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));\n .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620\n background-repeat: repeat-x;\n border-color: darken(@btn-color, 14%);\n\n &:hover,\n &:focus {\n background-color: darken(@btn-color, 12%);\n background-position: 0 -15px;\n }\n\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n border-color: darken(@btn-color, 14%);\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &,\n &:hover,\n &:focus,\n &.focus,\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n background-image: none;\n }\n }\n}\n\n// Common styles\n.btn {\n // Remove the gradient for the pressed/active state\n &:active,\n &.active {\n background-image: none;\n }\n}\n\n// Apply the mixin to the buttons\n.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }\n.btn-primary { .btn-styles(@btn-primary-bg); }\n.btn-success { .btn-styles(@btn-success-bg); }\n.btn-info { .btn-styles(@btn-info-bg); }\n.btn-warning { .btn-styles(@btn-warning-bg); }\n.btn-danger { .btn-styles(@btn-danger-bg); }\n\n\n//\n// Images\n// --------------------------------------------------\n\n.thumbnail,\n.img-thumbnail {\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n\n\n//\n// Dropdowns\n// --------------------------------------------------\n\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));\n background-color: darken(@dropdown-link-hover-bg, 5%);\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n background-color: darken(@dropdown-link-active-bg, 5%);\n}\n\n\n//\n// Navbar\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n border-radius: @navbar-border-radius;\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.075));\n }\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255,255,255,.25);\n}\n\n// Inverted navbar\n.navbar-inverse {\n #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257\n border-radius: @navbar-border-radius;\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.25));\n }\n\n .navbar-brand,\n .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0,0,0,.25);\n }\n}\n\n// Undo rounded corners in static and fixed navbars\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n\n// Fix active state of dropdown items in collapsed mode\n@media (max-width: @grid-float-breakpoint-max) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a {\n &,\n &:hover,\n &:focus {\n color: #fff;\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n }\n }\n}\n\n\n//\n// Alerts\n// --------------------------------------------------\n\n// Common styles\n.alert {\n text-shadow: 0 1px 0 rgba(255,255,255,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);\n .box-shadow(@shadow);\n}\n\n// Mixin for generating new styles\n.alert-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));\n border-color: darken(@color, 15%);\n}\n\n// Apply the mixin to the alerts\n.alert-success { .alert-styles(@alert-success-bg); }\n.alert-info { .alert-styles(@alert-info-bg); }\n.alert-warning { .alert-styles(@alert-warning-bg); }\n.alert-danger { .alert-styles(@alert-danger-bg); }\n\n\n//\n// Progress bars\n// --------------------------------------------------\n\n// Give the progress background some depth\n.progress {\n #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)\n}\n\n// Mixin for generating new styles\n.progress-bar-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));\n}\n\n// Apply the mixin to the progress bars\n.progress-bar { .progress-bar-styles(@progress-bar-bg); }\n.progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); }\n.progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); }\n.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); }\n.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); }\n\n// Reset the striped class because our mixins don't do multiple gradients and\n// the above custom styles override the new `.progress-bar-striped` in v3.2.0.\n.progress-bar-striped {\n #gradient > .striped();\n}\n\n\n//\n// List groups\n// --------------------------------------------------\n\n.list-group {\n border-radius: @border-radius-base;\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%);\n #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));\n border-color: darken(@list-group-active-border, 7.5%);\n\n .badge {\n text-shadow: none;\n }\n}\n\n\n//\n// Panels\n// --------------------------------------------------\n\n// Common styles\n.panel {\n .box-shadow(0 1px 2px rgba(0,0,0,.05));\n}\n\n// Mixin for generating new styles\n.panel-heading-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));\n}\n\n// Apply the mixin to the panel headings only\n.panel-default > .panel-heading { .panel-heading-styles(@panel-default-heading-bg); }\n.panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); }\n.panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); }\n.panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); }\n.panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); }\n.panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); }\n\n\n//\n// Wells\n// --------------------------------------------------\n\n.well {\n #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);\n border-color: darken(@well-bg, 10%);\n @shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);\n .box-shadow(@shadow);\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They have been removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility) {\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n","// Gradients\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-repeat: repeat-x;\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n"]} --------------------------------------------------------------------------------