diff --git a/app/controllers/account_controller.rb b/app/controllers/account_controller.rb index c18cbfefd..6de270b5b 100644 --- a/app/controllers/account_controller.rb +++ b/app/controllers/account_controller.rb @@ -426,6 +426,10 @@ class AccountController < ApplicationController render :json => req end + def security_settings + + end + def bind_email_or_phone @user = User.current if params[:type] == 1 diff --git a/app/controllers/blog_comments_controller.rb b/app/controllers/blog_comments_controller.rb index 88d4c4d53..6605170f1 100644 --- a/app/controllers/blog_comments_controller.rb +++ b/app/controllers/blog_comments_controller.rb @@ -43,6 +43,7 @@ class BlogCommentsController < ApplicationController update_messsages_to_viewed("BlogMessage", params[:blog_id]) @article = BlogComment.find(params[:id]) + update_visiti_count @article @replies = BlogComment.where("root_id = #{@article.id}").reorder("created_on desc") @reply_count = @replies.count @replies = get_no_children_comments_all @replies diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 79f4d83ee..7de524f11 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -2097,147 +2097,161 @@ class UsersController < ApplicationController end def show - if User.current == @user - # 点击小铃铛,更新点击时间 - update_onclick_time if params[:click_user_message] == 'true' - # 全部设为已读 - # 自己的主页显示消息 - messages_all = MessageAll.where(:user_id => @user.id) - @message_count = messages_all.count - # REDO:已删除的内容应该在页面中显示不点击 - @message_all_pages = Paginator.new @message_count, per_page_option, params['page'] - @message_alls = messages_all.includes(:message). - limit(@message_all_pages.per_page). - offset(@message_all_pages.offset). - reorder("#{MessageAll.table_name}.created_at desc") - - @unsolved_issues_count = Issue.where(:assigned_to_id => @user.id, :status_id => [1, 2, 4, 6]).includes(:author, :project).count - - my_course_ids = StudentsForCourse.includes(:course).where("student_id = #{@user.id} and courses.is_delete = 0").blank? ? "(-1)" : "(" + StudentsForCourse.includes(:course). - where("student_id = #{@user.id} and courses.is_delete = 0").map{|sc| sc.course_id}.join(",") + ")" - # 用户待完成的作业 - homeworks = HomeworkCommon.where("course_id in #{my_course_ids} and publish_time <= '#{Time.now}'") - homework_ids = homeworks.blank? ? "(-1)" : "(" + homeworks.map{|homework| homework.id}.join(",") + ")" - student_works = StudentWork.where("user_id = #{@user.id} and homework_common_id in #{homework_ids} and work_status != 0") - @unfinished_homework_count = homeworks.count - student_works.count - # 用户待完成的测验 - exercises = Exercise.where("course_id in #{my_course_ids} and exercise_status = 2") - exercise_users = ExerciseUser.where(:user_id => @user.id, :exercise_id => exercises.map{|ex| ex.id}) - @unfinished_test_count = exercises.count - exercise_users.count - # 用户待完成的问卷 - polls = Poll.where("polls_type = 'Course' and polls_group_id in #{my_course_ids} and polls_status = 2") - poll_users = PollUser.where(:user_id => @user.id, :poll_id => polls.map{|poll| poll.id}) - @unfinished_poll_count = polls.count - poll_users.count - # 用户待匿评的作品 - homeworks = HomeworkCommon.includes(:homework_detail_manual).where("homework_commons.course_id in #{my_course_ids} and homework_detail_manuals.comment_status = 2") - student_work_scores = @user.student_works_scores.where("reviewer_role = 3") - anonymous_evaluation_ids = student_work_scores.blank? ? "(-1)" : "(" + student_work_scores.map{|st| st.student_work_id}.join(",") + ")" - unfinished_evaluations = @user.student_works_evaluation_distributions.where("student_work_id not in #{anonymous_evaluation_ids}") - @anonymous_evaluation_count = StudentWork.where(:id => unfinished_evaluations.map{|ev| ev.student_work_id}, :homework_common_id => homeworks.map{|hw| hw.id}).count - # 待评阅的作业 暂不做 - # @unreview_homework = 1 - - # 待审批的申请 - #applied_message_count = AppliedMessage.where(:applied_type => ["Organization", "AppliedContest", "StudentWorksScoresAppeal", "AppliedProject", "ApplyAddSchools"], :user_id => User.current.id, :status => 0).count - #applied_course_message_count = CourseMessage.where(:user_id => User.current.id, :course_message_type => "JoinCourseRequest", :status => 0).count - # applied_pull_request_message_count = ForgeMessage.where(:user_id => User.current.id, :forge_message_type => "PullRequest", :status => [1,3]).count - # @applied_message_alls_count = applied_message_count + applied_course_message_count + applied_pull_request_message_count - user_id = User.current.id - sql = "SELECT * FROM `message_alls` ma left join `forge_messages` fm on ma.message_id=fm.id - left join `course_messages` cm on ma.message_id=cm.id left join `applied_messages` apm on ma.message_id=apm.id - where (ma.user_id =#{user_id} and ma.message_type = 'ForgeMessage' and fm.forge_message_type='PullRequest' and fm.status=0 and fm.user_id=#{user_id} ) or - (ma.user_id=#{user_id} and ma.message_type='AppliedMessage' and apm.applied_type in ('Organization', 'AppliedContest', 'StudentWorksScoresAppeal', 'AppliedProject', 'ApplyAddSchools') and apm.user_id =#{user_id} and apm.status =0 ) or - (ma.user_id=#{user_id} and ma.message_type='CourseMessage' and cm.course_message_type='JoinCourseRequest' and cm.status=0 and cm.user_id=#{user_id} );" - message_alls = MessageAll.find_by_sql(sql) - @applied_message_alls_count = message_alls.count - else - # 看别人的主页显示动态 - #更新用户申请成为课程老师或教辅消息的状态 - if params[:course_id] != nil - join_course_messages = CourseMessage.where("course_id =? and course_message_type =? and user_id =? and course_message_id =? and viewed =?", - params[:course_id], 'JoinCourseRequest', User.current.id, @user.id, false) - join_course_messages.update_all(:viewed => true) - end - shield_project_ids = ShieldActivity.select("shield_id").where("container_type='User' and container_id=#{@user.id} and shield_type='Project'").map(&:shield_id) - shield_course_ids = ShieldActivity.select("shield_id").where("container_type='User' and container_id=#{@user.id} and shield_type='Course'").map(&:shield_id) - @page = params[:page] ? params[:page].to_i + 1 : 0 - user_project_ids = (@user.favorite_projects.visible.map{|project| project.id}-shield_project_ids).empty? ? "(-1)" : "(" + (@user.favorite_projects.visible.map{|project| project.id}-shield_project_ids).join(",") + ")" - user_course_ids = (@user.favorite_courses.visible.where("is_delete = 0").map{|course| course.id}-shield_course_ids).empty? ? "(-1)" : "(" + (@user.favorite_courses.visible.where("is_delete = 0").map{|course| course.id}-shield_course_ids).join(",") + ")" - course_types = "('Message','News','HomeworkCommon','Poll','Course','JournalsForMessage')" - project_types = "('Message','Issue','Project')" - principal_types = "JournalsForMessage" - container_type = '' - act_type = '' - # 他的动态 - sql = "user_id = #{@user.id} and ((container_type = 'Project' and container_id in #{user_project_ids} and act_type in #{project_types}) or (container_type = 'Course' and container_id in #{user_course_ids} and act_type in #{course_types}))" - if params[:type].present? - case params[:type] - when "course_homework" - container_type = 'Course' - act_type = 'HomeworkCommon' - when "course_news" - container_type = 'Course' - act_type = 'News' - when "course_message" - container_type = 'Course' - act_type = 'Message' - when "course_poll" - container_type = 'Course' - act_type = 'Poll' - when "course_journals" - container_type = 'Course' - act_type = 'JournalsForMessage' - when "project_issue" - container_type = 'Project' - act_type = 'Issue' - when "project_message" - container_type = 'Project' - act_type = 'Message' - when "user_journals" - container_type = 'Principal' - act_type = 'JournalsForMessage' - when "current_user" - container_type = 'Principal' - act_type = 'Principal' - when "all" - container_type = 'all' - act_type = 'all' - end - end - if container_type != '' && container_type != 'all' - if container_type == 'Course' - sql = "container_type = '#{container_type}' and container_id in #{user_course_ids} and act_type = '#{act_type}'" - elsif container_type == 'Project' - sql = "container_type = '#{container_type}' and container_id in #{user_project_ids} and act_type = '#{act_type}'" - elsif container_type == 'Principal' && act_type == 'JournalsForMessage' - sql = "container_type = '#{container_type}' and act_type= '#{act_type}' and container_id = #{@user.id}" - elsif container_type == 'Principal' && act_type == 'Principal' - sql = "user_id = #{@user.id} and ((container_type = 'Project' and container_id in #{user_project_ids} and act_type in #{project_types}) or (container_type = 'Course' and container_id in #{user_course_ids} and act_type in #{course_types}))" - end - if User.current != @user - sql += " and user_id = #{@user.id}" - end - else - if User.current != @user - blog_ids = "("+@user.blog.id.to_s+")" - else - blog_ids = "("+@user.blog.id.to_s+","+((User.watched_by(@user.id).count == 0 )? '0' :User.watched_by(@user.id).map{|u| u.blog.id}.join(','))+")" - end - sql = "(container_type = 'Project' and container_id in #{user_project_ids} and act_type in #{project_types})" + - "or (container_type = 'Course' and container_id in #{user_course_ids} and act_type in #{course_types}) "+ - "or (container_type = 'Principal' and act_type= '#{principal_types}' and container_id = #{@user.id}) " + - "or (container_type = 'Blog' and act_type= 'BlogComment' and container_id in #{blog_ids})" - if container_type != 'all' && User.current != @user - sql = "user_id = #{@user.id} and(" + sql + ")" - end - end - @user_activities_count = UserActivity.where("#{sql}").order('updated_at desc').count - @user_activities = UserActivity.where("#{sql}").order('updated_at desc').limit(10).offset(@page * 10) - @type = params[:type] - end + @blog_list = @user.blog.articles.reorder("#{BlogComment.table_name}.sticky desc,#{BlogComment.table_name}.created_at desc") + @blog_count = @blog_list.count + @blog_list = @blog_list.limit(3) + watch_query = User.watched_by(@user.id); + @user_watchlist_count = watch_query.count(); + @user_watchlist = watch_query.order("#{Watcher.table_name}.id desc").limit(12); + fan_query = @user.watcher_users; + @user_fanlist_count = fan_query.count(); + @user_fanlist = fan_query.order("#{Watcher.table_name}.id desc").limit(12); + @courses = @user.courses.visible.not_deleted + @courses_count = @courses.count + @courses = @courses.select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS updatetime").order("updatetime desc").limit(8) + @shixuns = [] + @shixuns_count = 0 + # if User.current == @user + # # 点击小铃铛,更新点击时间 + # update_onclick_time if params[:click_user_message] == 'true' + # # 全部设为已读 + # # 自己的主页显示消息 + # messages_all = MessageAll.where(:user_id => @user.id) + # @message_count = messages_all.count + # # REDO:已删除的内容应该在页面中显示不点击 + # @message_all_pages = Paginator.new @message_count, per_page_option, params['page'] + # @message_alls = messages_all.includes(:message). + # limit(@message_all_pages.per_page). + # offset(@message_all_pages.offset). + # reorder("#{MessageAll.table_name}.created_at desc") + # + # @unsolved_issues_count = Issue.where(:assigned_to_id => @user.id, :status_id => [1, 2, 4, 6]).includes(:author, :project).count + # + # my_course_ids = StudentsForCourse.includes(:course).where("student_id = #{@user.id} and courses.is_delete = 0").blank? ? "(-1)" : "(" + StudentsForCourse.includes(:course). + # where("student_id = #{@user.id} and courses.is_delete = 0").map{|sc| sc.course_id}.join(",") + ")" + # # 用户待完成的作业 + # homeworks = HomeworkCommon.where("course_id in #{my_course_ids} and publish_time <= '#{Time.now}'") + # homework_ids = homeworks.blank? ? "(-1)" : "(" + homeworks.map{|homework| homework.id}.join(",") + ")" + # student_works = StudentWork.where("user_id = #{@user.id} and homework_common_id in #{homework_ids} and work_status != 0") + # @unfinished_homework_count = homeworks.count - student_works.count + # # 用户待完成的测验 + # exercises = Exercise.where("course_id in #{my_course_ids} and exercise_status = 2") + # exercise_users = ExerciseUser.where(:user_id => @user.id, :exercise_id => exercises.map{|ex| ex.id}) + # @unfinished_test_count = exercises.count - exercise_users.count + # # 用户待完成的问卷 + # polls = Poll.where("polls_type = 'Course' and polls_group_id in #{my_course_ids} and polls_status = 2") + # poll_users = PollUser.where(:user_id => @user.id, :poll_id => polls.map{|poll| poll.id}) + # @unfinished_poll_count = polls.count - poll_users.count + # # 用户待匿评的作品 + # homeworks = HomeworkCommon.includes(:homework_detail_manual).where("homework_commons.course_id in #{my_course_ids} and homework_detail_manuals.comment_status = 2") + # student_work_scores = @user.student_works_scores.where("reviewer_role = 3") + # anonymous_evaluation_ids = student_work_scores.blank? ? "(-1)" : "(" + student_work_scores.map{|st| st.student_work_id}.join(",") + ")" + # unfinished_evaluations = @user.student_works_evaluation_distributions.where("student_work_id not in #{anonymous_evaluation_ids}") + # @anonymous_evaluation_count = StudentWork.where(:id => unfinished_evaluations.map{|ev| ev.student_work_id}, :homework_common_id => homeworks.map{|hw| hw.id}).count + # # 待评阅的作业 暂不做 + # # @unreview_homework = 1 + # + # # 待审批的申请 + # #applied_message_count = AppliedMessage.where(:applied_type => ["Organization", "AppliedContest", "StudentWorksScoresAppeal", "AppliedProject", "ApplyAddSchools"], :user_id => User.current.id, :status => 0).count + # #applied_course_message_count = CourseMessage.where(:user_id => User.current.id, :course_message_type => "JoinCourseRequest", :status => 0).count + # # applied_pull_request_message_count = ForgeMessage.where(:user_id => User.current.id, :forge_message_type => "PullRequest", :status => [1,3]).count + # # @applied_message_alls_count = applied_message_count + applied_course_message_count + applied_pull_request_message_count + # user_id = User.current.id + # sql = "SELECT * FROM `message_alls` ma left join `forge_messages` fm on ma.message_id=fm.id + # left join `course_messages` cm on ma.message_id=cm.id left join `applied_messages` apm on ma.message_id=apm.id + # where (ma.user_id =#{user_id} and ma.message_type = 'ForgeMessage' and fm.forge_message_type='PullRequest' and fm.status=0 and fm.user_id=#{user_id} ) or + # (ma.user_id=#{user_id} and ma.message_type='AppliedMessage' and apm.applied_type in ('Organization', 'AppliedContest', 'StudentWorksScoresAppeal', 'AppliedProject', 'ApplyAddSchools') and apm.user_id =#{user_id} and apm.status =0 ) or + # (ma.user_id=#{user_id} and ma.message_type='CourseMessage' and cm.course_message_type='JoinCourseRequest' and cm.status=0 and cm.user_id=#{user_id} );" + # message_alls = MessageAll.find_by_sql(sql) + # @applied_message_alls_count = message_alls.count + # else + # # 看别人的主页显示动态 + # #更新用户申请成为课程老师或教辅消息的状态 + # if params[:course_id] != nil + # join_course_messages = CourseMessage.where("course_id =? and course_message_type =? and user_id =? and course_message_id =? and viewed =?", + # params[:course_id], 'JoinCourseRequest', User.current.id, @user.id, false) + # join_course_messages.update_all(:viewed => true) + # end + # shield_project_ids = ShieldActivity.select("shield_id").where("container_type='User' and container_id=#{@user.id} and shield_type='Project'").map(&:shield_id) + # shield_course_ids = ShieldActivity.select("shield_id").where("container_type='User' and container_id=#{@user.id} and shield_type='Course'").map(&:shield_id) + # @page = params[:page] ? params[:page].to_i + 1 : 0 + # user_project_ids = (@user.favorite_projects.visible.map{|project| project.id}-shield_project_ids).empty? ? "(-1)" : "(" + (@user.favorite_projects.visible.map{|project| project.id}-shield_project_ids).join(",") + ")" + # user_course_ids = (@user.favorite_courses.visible.where("is_delete = 0").map{|course| course.id}-shield_course_ids).empty? ? "(-1)" : "(" + (@user.favorite_courses.visible.where("is_delete = 0").map{|course| course.id}-shield_course_ids).join(",") + ")" + # course_types = "('Message','News','HomeworkCommon','Poll','Course','JournalsForMessage')" + # project_types = "('Message','Issue','Project')" + # principal_types = "JournalsForMessage" + # container_type = '' + # act_type = '' + # # 他的动态 + # sql = "user_id = #{@user.id} and ((container_type = 'Project' and container_id in #{user_project_ids} and act_type in #{project_types}) or (container_type = 'Course' and container_id in #{user_course_ids} and act_type in #{course_types}))" + # if params[:type].present? + # case params[:type] + # when "course_homework" + # container_type = 'Course' + # act_type = 'HomeworkCommon' + # when "course_news" + # container_type = 'Course' + # act_type = 'News' + # when "course_message" + # container_type = 'Course' + # act_type = 'Message' + # when "course_poll" + # container_type = 'Course' + # act_type = 'Poll' + # when "course_journals" + # container_type = 'Course' + # act_type = 'JournalsForMessage' + # when "project_issue" + # container_type = 'Project' + # act_type = 'Issue' + # when "project_message" + # container_type = 'Project' + # act_type = 'Message' + # when "user_journals" + # container_type = 'Principal' + # act_type = 'JournalsForMessage' + # when "current_user" + # container_type = 'Principal' + # act_type = 'Principal' + # when "all" + # container_type = 'all' + # act_type = 'all' + # end + # end + # if container_type != '' && container_type != 'all' + # if container_type == 'Course' + # sql = "container_type = '#{container_type}' and container_id in #{user_course_ids} and act_type = '#{act_type}'" + # elsif container_type == 'Project' + # sql = "container_type = '#{container_type}' and container_id in #{user_project_ids} and act_type = '#{act_type}'" + # elsif container_type == 'Principal' && act_type == 'JournalsForMessage' + # sql = "container_type = '#{container_type}' and act_type= '#{act_type}' and container_id = #{@user.id}" + # elsif container_type == 'Principal' && act_type == 'Principal' + # sql = "user_id = #{@user.id} and ((container_type = 'Project' and container_id in #{user_project_ids} and act_type in #{project_types}) or (container_type = 'Course' and container_id in #{user_course_ids} and act_type in #{course_types}))" + # end + # if User.current != @user + # sql += " and user_id = #{@user.id}" + # end + # else + # if User.current != @user + # blog_ids = "("+@user.blog.id.to_s+")" + # else + # blog_ids = "("+@user.blog.id.to_s+","+((User.watched_by(@user.id).count == 0 )? '0' :User.watched_by(@user.id).map{|u| u.blog.id}.join(','))+")" + # end + # sql = "(container_type = 'Project' and container_id in #{user_project_ids} and act_type in #{project_types})" + + # "or (container_type = 'Course' and container_id in #{user_course_ids} and act_type in #{course_types}) "+ + # "or (container_type = 'Principal' and act_type= '#{principal_types}' and container_id = #{@user.id}) " + + # "or (container_type = 'Blog' and act_type= 'BlogComment' and container_id in #{blog_ids})" + # if container_type != 'all' && User.current != @user + # sql = "user_id = #{@user.id} and(" + sql + ")" + # end + # end + # @user_activities_count = UserActivity.where("#{sql}").order('updated_at desc').count + # @user_activities = UserActivity.where("#{sql}").order('updated_at desc').limit(10).offset(@page * 10) + # @type = params[:type] + # end respond_to do |format| format.js - format.html {render :layout => 'new_base_user'} + format.html {render :layout => 'base_edu_user'} end end diff --git a/app/controllers/watchers_controller.rb b/app/controllers/watchers_controller.rb index 6f0d96dfa..292a64f28 100644 --- a/app/controllers/watchers_controller.rb +++ b/app/controllers/watchers_controller.rb @@ -39,6 +39,12 @@ class WatchersController < ApplicationController else if params[:target_id] @user = User.find(params[:target_id]) + watch_query = User.watched_by(@user.id); + @user_watchlist_count = watch_query.count(); + @user_watchlist = watch_query.order("#{Watcher.table_name}.id desc").limit(12); + fan_query = @user.watcher_users; + @user_fanlist_count = fan_query.count(); + @user_fanlist = fan_query.order("#{Watcher.table_name}.id desc").limit(12); end end @@ -82,6 +88,12 @@ class WatchersController < ApplicationController else if params[:target_id] @user = User.find(params[:target_id]) + watch_query = User.watched_by(@user.id); + @user_watchlist_count = watch_query.count(); + @user_watchlist = watch_query.order("#{Watcher.table_name}.id desc").limit(12); + fan_query = @user.watcher_users; + @user_fanlist_count = fan_query.count(); + @user_fanlist = fan_query.order("#{Watcher.table_name}.id desc").limit(12); end end if params[:object_type] == 'project' diff --git a/app/helpers/watchers_helper.rb b/app/helpers/watchers_helper.rb index 8f6d6a8e5..ff25f6bab 100644 --- a/app/helpers/watchers_helper.rb +++ b/app/helpers/watchers_helper.rb @@ -262,11 +262,25 @@ module WatchersHelper content.present? ? content_tag('ul', content, :class => 'watchers') : content end - - - - - +#用户关注、取消关注 + def watcher_link_for_user(target, user) + return '' unless user && user.logged? + watched = target.watched_by?(user) + text = watched ? '已关注' : '添加关注' + url = watch_path(:object_type => 'user', + :object_id => target.id, + :target_id => target.id) + method = watched ? 'delete' : 'post' + id = watched ? 'cancel_watch' : '' + title = watched ? '取消关注' : '添加关注' + if target != user + link_to text, url, :remote => true, :method => method, :remote => true, + :class => "fl font-14 user_watch",:id => id, :title => title + else + link_to "关注", "javascript:void(0)", :remote => true, :method => method, + :class => "fl font-14 user_watch", :id => id, :title => title + end + end # 缺陷跟踪者列表复选框生成 def watchers_checkboxes(object, users, checked=nil) diff --git a/app/models/blog.rb b/app/models/blog.rb index bd338cdad..7c54b2be7 100644 --- a/app/models/blog.rb +++ b/app/models/blog.rb @@ -2,8 +2,8 @@ class Blog < ActiveRecord::Base # attr_accessible :title, :body include Redmine::SafeAttributes belongs_to :user - has_many :articles, :class_name => 'BlogComment', :conditions => "#{BlogComment.table_name}.parent_id IS NULL ", :order => "#{BlogComment.table_name}.created_on DESC" - has_many :blog_comments, :dependent => :destroy, :order => "#{BlogComment.table_name}.created_on DESC" + has_many :articles, :class_name => 'BlogComment', :conditions => "#{BlogComment.table_name}.parent_id IS NULL ", :order => "#{BlogComment.table_name}.created_at DESC" + has_many :blog_comments, :dependent => :destroy, :order => "#{BlogComment.table_name}.created_at DESC" belongs_to :last_comment, :class_name => 'BlogComment', :foreign_key => :last_comment_id acts_as_tree :dependent => :nullify #acts_as_list :scope => '(user_id = #{user_id} AND parent_id #{user_id ? = "#{parent_id}" : "IS NULL"})' diff --git a/app/models/blog_comment.rb b/app/models/blog_comment.rb index cf241ce3b..a04c7d208 100644 --- a/app/models/blog_comment.rb +++ b/app/models/blog_comment.rb @@ -20,7 +20,7 @@ class BlogComment < ActiveRecord::Base validates_presence_of :title, :content validates_length_of :title, :maximum => 255 #validate :cannot_reply_to_locked_comment, :on => :create - safe_attributes 'title', 'content',"sticky", "locked", "root_id" + safe_attributes 'title', 'content',"sticky", "locked", "root_id", 'visits' after_save :add_user_activity after_update :update_activity diff --git a/app/models/user.rb b/app/models/user.rb index f023fde4b..496b2fd0c 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -1198,7 +1198,9 @@ class User < Principal 'language', 'custom_field_values', 'custom_fields', - 'identity_url' + 'identity_url', + 'phone', + 'authentication' safe_attributes 'status', 'auth_source_id', diff --git a/app/views/courses/_join_private_course.html.erb b/app/views/courses/_join_private_course.html.erb index 7558a24e3..bed68d90a 100644 --- a/app/views/courses/_join_private_course.html.erb +++ b/app/views/courses/_join_private_course.html.erb @@ -1,35 +1,33 @@ -
-
-

欢迎加入班级

- -
+
+
+

欢迎加入班级

+
-
- <%= form_tag({:controller => 'courses', :action => 'join_course_multi_role'}, :remote => true, :method => :post, :id => 'new-watcher-form') do %> -
    -
  • - - -
    -
  • -
  • - - 教师 - 助教 - 学生 -
    -
  • -

    请至少选择一个身份

    -
  • - - 确  定 - 取  消 -
    -
  • -
- <% end %> +
+
+ <%= form_tag({:controller => 'courses', :action => 'join_course_multi_role'}, :remote => true, :method => :post, :id => 'new-watcher-form') do %> +
    +
  • + + +
  • +
  • + + 教师 + 助教 + 学生 +
  • +

    请至少选择一个身份

    +
  • + 确定 + 取消 +
  • +
+ <% end %> +
+ + \ No newline at end of file diff --git a/app/views/layouts/base_course_community.html.erb b/app/views/layouts/base_course_community.html.erb index 0b4f8fd03..4fb1aa327 100644 --- a/app/views/layouts/base_course_community.html.erb +++ b/app/views/layouts/base_course_community.html.erb @@ -7,7 +7,7 @@ <%= csrf_meta_tag %> <%= favicon %> - <%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2','css/common', 'css/structure','css/public', 'prettify','css/project','css/courses','css/popup','css/syllabus','css/moduel', 'css/user', 'css/font-awesome', :media => 'all' %> + <%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2','css/bigdata-popup','css/bigdata-common', "css/bigdata-public",'css/common', 'css/structure','css/public', 'prettify','css/project','css/courses','css/popup','css/syllabus','css/moduel', 'css/user', 'css/font-awesome', :media => 'all' %> <%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %> <%= javascript_heads %> <%= javascript_include_tag "bootstrap","avatars","new_user",'attachments','prettify'%> diff --git a/app/views/layouts/base_courses.html.erb b/app/views/layouts/base_courses.html.erb index adb03112c..9495adfaa 100644 --- a/app/views/layouts/base_courses.html.erb +++ b/app/views/layouts/base_courses.html.erb @@ -19,7 +19,7 @@ <%= javascript_heads %> <%= heads_for_theme %> <%= call_hook :view_layouts_base_html_head %> - <%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2','css/common','css/public', 'css/structure','prettify', 'css/courses','css/popup','sy_public','css/syllabus', 'css/moduel', 'css/font-awesome','css/contest' %> + <%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2','css/bigdata-popup','css/bigdata-common', "css/bigdata-public",'css/common','css/public', 'css/structure','prettify', 'css/courses','css/popup','sy_public','css/syllabus', 'css/moduel', 'css/font-awesome','css/contest' %> <%= javascript_include_tag "course","avatars","header","attachments",'prettify' %> <%= yield :header_tags -%> diff --git a/app/views/layouts/base_edu_user.html.erb b/app/views/layouts/base_edu_user.html.erb new file mode 100644 index 000000000..b6db17f5b --- /dev/null +++ b/app/views/layouts/base_edu_user.html.erb @@ -0,0 +1,51 @@ + + + + + <%= h html_title %> + + + <%= csrf_meta_tag %> + <%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2','css/font-awesome', 'css/bigdata-common', "css/bigdata-public", "css/bigdata-user", 'css/bigdata-popup', :media => 'all' %> + <%= javascript_heads %> + <%= javascript_include_tag "bigdata/application","bigdata/user"%> + <%= yield :header_tags -%> + + + + + + +
+ <% if User.current.logged? %> + <%= render :partial => 'layouts/logined_header' %> + <% else%> + <%= render :partial => 'layouts/unlogin_header' %> + <% end%> +
+
+
+ <%= yield %> +
+
+<%= render :partial => 'layouts/footer' %> +
+ + + + + + \ No newline at end of file diff --git a/app/views/layouts/base_syllabus.html.erb b/app/views/layouts/base_syllabus.html.erb index f4ef4966e..25ab1fc88 100644 --- a/app/views/layouts/base_syllabus.html.erb +++ b/app/views/layouts/base_syllabus.html.erb @@ -7,7 +7,7 @@ <%= csrf_meta_tag %> <%= favicon %> - <%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2','css/common','css/public','css/structure','css/courses','css/popup','prettify','css/syllabus','sy_public','css/moduel', 'css/font-awesome',:media => 'all'%> + <%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2','css/bigdata-popup','css/bigdata-common', "css/bigdata-public",'css/common','css/public','css/structure','css/courses','css/popup','prettify','css/syllabus','css/sy_public','css/moduel', 'css/font-awesome',:media => 'all'%> <%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %> <%= javascript_heads %> <%= javascript_include_tag "bootstrap","avatars","course",'attachments','prettify','syllabus','cookie'%> diff --git a/app/views/layouts/new_base_user.html.erb b/app/views/layouts/new_base_user.html.erb index de89aae53..d143b38b5 100644 --- a/app/views/layouts/new_base_user.html.erb +++ b/app/views/layouts/new_base_user.html.erb @@ -7,7 +7,7 @@ <%= csrf_meta_tag %> <%= favicon %> - <%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2','css/common', 'css/structure','css/public', 'prettify','css/project','css/courses','css/popup','css/syllabus','css/moduel', 'css/user','css/font-awesome', :media => 'all' %> + <%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2','css/bigdata-popup','css/bigdata-common', "css/bigdata-public",'css/common', 'css/structure','css/public', 'prettify','css/project','css/courses','css/popup','css/syllabus','css/moduel', 'css/user','css/font-awesome', :media => 'all' %> <%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %> <%= javascript_heads %> <%= javascript_include_tag "bootstrap","avatars","new_user",'attachments','prettify'%> diff --git a/app/views/users/_edu_user_watch_fan_list.html.erb b/app/views/users/_edu_user_watch_fan_list.html.erb new file mode 100644 index 000000000..7cb00b3e6 --- /dev/null +++ b/app/views/users/_edu_user_watch_fan_list.html.erb @@ -0,0 +1,61 @@ +<% str = current_user ? '我' : 'TA' %> + +

+ + <%= str %>的关注 + <%= @user_watchlist_count %> + + + <%= str %>的粉丝 + <%= @user_fanlist_count %> + +

+ +
+ <% if @user_watchlist_count == 0 %> +

+ <% if current_user %> + 你还没有关注任何人, + 去找找感兴趣的用户 + <% else %> + TA还没有关注任何人 + <% end %> +

+ <% else %> +
+ <% @user_watchlist.each do |user| %> +
+
<%= link_to image_tag(url_to_avatar(user), width: "56", height: "56", :alt => "头像"), user_path(user), :target => '_blank' %>
+
<%= link_to user.show_name, user_path(user), :target => '_blank' %>
+
+ <% end %> + <% if @user_watchlist_count > 12 %> + <%= link_to '查看更多', user_watchlist_user_path(@user), :target => '_blank', :class => 'color-grey' %> + <% end %> +
+ <% end %> +
+
+ <% if @user_fanlist_count == 0 %> +

+ <% if current_user %> + 还没有人关注你, + 去让大家认识下你吧 + <% else %> + TA还没有粉丝 + <% end %> +

+ <% else %> +
+ <% @user_fanlist.each do |user| %> +
+
<%= link_to image_tag(url_to_avatar(user), width: "56", height: "56", :alt => "头像"), user_path(user), :target => '_blank' %>
+
<%= link_to user.show_name, user_path(user), :target => '_blank' %>
+
+ <% end %> + <% if @user_fanlist_count > 12 %> + <%= link_to '查看更多', user_fanslist_user_path(@user), :target => '_blank', :class => 'color-grey' %> + <% end %> +
+ <% end %> +
\ No newline at end of file diff --git a/app/views/users/edit_brief_introduction.js.erb b/app/views/users/edit_brief_introduction.js.erb index eeaec4e6d..8b1378917 100644 --- a/app/views/users/edit_brief_introduction.js.erb +++ b/app/views/users/edit_brief_introduction.js.erb @@ -1,4 +1 @@ -$("#user_brief_introduction_show").html("<%= escape_javascript render(:partial => "layouts/user_brief_introduction", :locals => {:user => @user}) %>"); -$("#user_brief_introduction_show").show(); -$("#user_brief_introduction_edit").hide(); -autoUrl("user_brief_introduction_show"); + diff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erb index 9a6ec18d4..e8a8c0749 100644 --- a/app/views/users/show.html.erb +++ b/app/views/users/show.html.erb @@ -1,48 +1,234 @@ - - - -<% if is_current_user %> - <% if task_count(@unsolved_issues_count, @unfinished_homework_count, @unfinished_test_count, @unfinished_poll_count, @anonymous_evaluation_count, @applied_message_alls_count) > 0 %> -
-
- <%= render :partial => "users/task_tip" %> +<% current_user = @user == User.current %> +<% str = current_user ? '我' : 'TA' %> +
+
+
+ <%= image_tag(url_to_avatar(@user), :class => "person", :alt => "头像") %> + <% if current_user %> +
更换头像
+ <% end %> +
+
+
+
+

+ <%= @user.login %> + +

+ +

+ + <%= @user.show_name %> + <% if @user.user_extensions && @user.user_extensions.identity %> + (<%= get_user_roll @user %>) + <% end %> + + + <% if !@user.user_extensions.school_id.blank? && @user.user_extensions.school %> + <%= @user.user_extensions.school.name %> + <% end %> + + <% if @user.authentication %> + + + 已认证 + + <% else %> + + + 未认证 + + <% end %> +

+
+
+ <% if current_user %> +
+

+ <%= link_to '编辑我的资料', my_account_path %> +

+ +

+ + <% update_visiti_count @user %> + <%= @user.visits.to_i %> 次访问 +

+ +

帐户安全: + + + + + + + +

+
+ <% else %> +
+

+ + <%= @user.visits.to_i %> 次访问 +

+ +

+ <% if(@user.watched_by?(User.current)) %> + <%= link_to "已关注", + watch_path(:object_type => 'user', :object_id => @user.id, :target_id => @user.id), + :class => "fl font-14 user_watch", + :id => "cancel_watch", + :method => "delete", + :remote => "true", + :title => "取消关注" %> + <% else %> + <%= link_to "添加关注", + watch_path(:object_type => 'user', :object_id => @user.id, :target_id => @user.id), + :class => "fl font-14 user_watch", + :method => "post", + :remote => "true", + :title => "添加关注" %> + <% end %> + 给ta留言 +

+ + + + +
+ <% end %> +
+
+
+ <% if current_user %> + + + <% else %> +

"> + <%= @user.user_extensions.brief_introduction.blank? ? "这家伙很懒,什么都没留下~" : @user.user_extensions.brief_introduction %> +

+ <% end %> +
+
+
+
+
+

<%= str %>的博客 + <%= @blog_count %> +

+ <% if @blog_count == 0 %> +

+ <% if current_user %> + 你一篇博客也没写过, + 现在写博客 + <% else %> + <%= @user.show_name %>很懒,一篇博客也没写过 + <% end %> +

+ <% else %> +
+ <% if @blog_count > 3 %> + <%= link_to '查看更多', user_blogs_path(:user_id => @user), :target => '_blank', :class => 'check color-grey' %> + <% end %> + <% @blog_list.each_with_index do |blog, index| %> +
+ <%= link_to blog.title.to_s.html_safe, user_blog_blog_comment_path(:user_id => blog.author, :blog_id => blog.blog.id, :id => blog), :class => "font-14" %> +

+ <%= format_time blog.created_at %> 发布 + + <%= blog.visits %> +

+
+ <% end %> +
+ <% end %> +
+
+ <%= render :partial => 'edu_user_watch_fan_list', :locals => {:current_user => current_user} %> +
+
+
+
+ 开始 +
+
    +
  • <%= link_to '创建课程', new_syllabus_path(:host => Setting.host_course), :target => "_blank" %>
  • +
  • <%= link_to '创建班级', new_course_path(:host => Setting.host_course), :target => "_blank" %>
  • +
  • <%= link_to "加入班级", join_private_courses_courses_path, :remote => true, :method => "post" %>
  • +
  • <%= link_to "发现实训", '', :target => "_blank" %>
  • +
  • <%= link_to '发起求助', new_forum_memo_path(:forum_id => Forum.first.id, :forum_index => true), :target => "_blank" %>
  • +
+
+ <% if @courses_count == 0 && @shixuns_count == 0 %> +
+

+ 快速入口 +

+ +
+ + +

显示你常用的课堂社区、实训社区列表

+ +

你还没有参与任何社区

+
+
+ <% else %> +
+

+ <% if @courses_count == 0 %> + 实训<%= @shixuns_count %> + <% elsif @shixuns_count == 0 %> + 课堂<%= @courses_count %> + <% else %> + 课堂<%= @courses_count %> + 实训<%= @shixuns_count %> + <% end %> +

+ +
+ <% @courses.each do |course| %> +

+   <%= course.name %> + 课程:<%= course.syllabus.title %> + 更新时间:<%= format_time course.updatetime %> + 分享 +

+ <% end %> + <% if @courses_count > 8 %> + 点击查看全部 + <% end %> +
+ +
+ <% @shixuns.each do |shixun| %> +

+   胡莎莎/Helloword:java实训入门 + 已解锁第2关/共8 + 上次离开时间:2017-02-09 15:21 +

+ <% end %> + + <% if @shixuns_count > 8 %> + 点击查看全部 + <% end %>
<% end %> - -
- <%= render :partial => 'users/user_message_list'%> -
-<% else %> -
-
Ta的动态
-
- - <% if @user_activities_count > 0 %> - <%= render :partial => 'users/user_activities', :locals => {:user_activities => @user_activities, :page => 0, :type => @type, :user_id => (@user.type == "AnonymousUser" ? User.current.id : @user.id), :action => "user_activities"} %> - <% else %> -
- <%= render :partial => 'users/no_data' %> -
- <% end %> -<% end %> +
+
+
+ +
+ +
+ +
+
+ +
+
+ +
+
\ No newline at end of file diff --git a/app/views/watchers/_set_watcher.js.erb b/app/views/watchers/_set_watcher.js.erb index 9c777ece5..156158c8a 100644 --- a/app/views/watchers/_set_watcher.js.erb +++ b/app/views/watchers/_set_watcher.js.erb @@ -2,7 +2,8 @@ //点击头像下面的添加关注按钮 <% if( params[:target_id] == params[:object_id] ) %> <% if @user %> - $("#watch_user_btn_div").html("<%= escape_javascript render(:partial => "layouts/user_watch_btn", :locals => {:target => watched.first}) %>"); + $(".user_watch").replaceWith("<%= escape_javascript watcher_link_for_user(@user, User.current)%>"); + $("#watcher_fan_list").html("<%= escape_javascript(render :partial => 'users/edu_user_watch_fan_list', :locals => {:current_user => (@user == User.current)}) %>"); <% end %> $("#user_fans_number").html("<%= watched.first.watcher_users.count.to_s%>"); $(".add_cancel_watch_<%= watched.first.id %>").html("<%= escape_javascript (render :partial => 'users/watch_btn_for_picture', :locals => {:user => watched.first}) %>"); diff --git a/app/views/watchers/watch.js.erb b/app/views/watchers/watch.js.erb index e39165008..a4f55d87d 100644 --- a/app/views/watchers/watch.js.erb +++ b/app/views/watchers/watch.js.erb @@ -3,5 +3,6 @@ // $('#project-'+'<%=@project.id%>'+'-watcher').html('取消关注'); $('#project-'+'<%=@project.id%>'+'-watcher').replaceWith("<%= escape_javascript watcher_link_for_project(@project, User.current)%>"); <% else %> - $('#fans_num').html('<%= j(@user.watcher_users.count) %>'); + $(".user_watch").replaceWith("<%= escape_javascript watcher_link_for_user(@users, User.current)%>"); + $("#watcher_fan_list").html("<%= escape_javascript(render :partial => 'edu_user_watch_fan_list', :locals => {:current_user => (@user == User.current)}) %>"); <% end %> diff --git a/config/routes.rb b/config/routes.rb index 41be4bedf..e40b659cf 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -604,6 +604,7 @@ RedmineApp::Application.routes.draw do match 'account/reset_psd', :via => [:get, :post] match 'account/email_valid', :to => 'account#email_valid', :via => :get match 'account/resendmail', :to => 'account#resendmail', :via=> :get, :as => 'resendmail' + match 'account/security_settings', :to => 'account#security_settings', :via => :get, :as => "security_settings" match 'projects/:id/wiki', :to => 'wikis#edit', :via => :post match 'projects/:id/wiki/destroy', :to => 'wikis#destroy', :via => [:get, :post] @@ -825,7 +826,7 @@ RedmineApp::Application.routes.draw do match 'sort_syllabus_list', :to => 'users#sort_syllabus_list', :via => :get, :as => "sort_syllabus_list" match 'sort_project_list', :to => 'users#sort_project_list', :via => :get, :as => "sort_project_list" - get 'edit_brief_introduction' + post 'edit_brief_introduction' get "user_resource" match "user_issues", :to => 'users#user_issues', :via => [:get, :post], :as => "user_issues" match "user_manage_issues", :to => 'users#user_manage_issues', :via => [:get, :post], :as => "user_manage_issues" diff --git a/db/migrate/20170419070551_add_column_to_users.rb b/db/migrate/20170419070551_add_column_to_users.rb new file mode 100644 index 000000000..bd025b4dd --- /dev/null +++ b/db/migrate/20170419070551_add_column_to_users.rb @@ -0,0 +1,6 @@ +class AddColumnToUsers < ActiveRecord::Migration + def change + add_column :users, :authentication, :boolean, :default => 0 + add_column :blog_comments, :visits, :integer, :default => 0 + end +end diff --git a/public/images/edu_user/img1.jpg b/public/images/edu_user/img1.jpg new file mode 100644 index 000000000..16b791d69 Binary files /dev/null and b/public/images/edu_user/img1.jpg differ diff --git a/public/images/edu_user/img2.jpg b/public/images/edu_user/img2.jpg new file mode 100644 index 000000000..845d23ac1 Binary files /dev/null and b/public/images/edu_user/img2.jpg differ diff --git a/public/images/edu_user/jt.png b/public/images/edu_user/jt.png new file mode 100644 index 000000000..9a451f5ae Binary files /dev/null and b/public/images/edu_user/jt.png differ diff --git a/public/images/edu_user/logo1.jpg b/public/images/edu_user/logo1.jpg new file mode 100644 index 000000000..598500e93 Binary files /dev/null and b/public/images/edu_user/logo1.jpg differ diff --git a/public/images/edu_user/male.jpg b/public/images/edu_user/male.jpg new file mode 100644 index 000000000..bd2597dd2 Binary files /dev/null and b/public/images/edu_user/male.jpg differ diff --git a/public/images/edu_user/user-renzheng.jpg b/public/images/edu_user/user-renzheng.jpg new file mode 100644 index 000000000..6157ed7de Binary files /dev/null and b/public/images/edu_user/user-renzheng.jpg differ diff --git a/public/javascripts/bigdata/application.js b/public/javascripts/bigdata/application.js new file mode 100644 index 000000000..0226fea46 --- /dev/null +++ b/public/javascripts/bigdata/application.js @@ -0,0 +1,182 @@ +/** + * Created by cxt on 2017/4/18. + */ +//---------------侧边固定提示功能---------------// +$(function(){ + var $desc = $("
").appendTo("body"); + $(".-task-sidebar>div").hover(function(){ + var $tool = $(this).attr("tooltips"); + $desc.html($tool+"
"); + $desc.css({ + left:$(this).offset().left - $desc.width()-30, + opacity:0, + top:$(this).offset().top + }).stop().animate({ + left:$(this).offset().left - $desc.width()-5, + opacity:1 + },400); + },function(){ + $desc.stop().animate({ + left:$(this).offset().left - $desc.width()-30, + opacity:0 + },200); + }); + $(".gotop").click(function(){ + $("html,body").scrollTop(0); + }); +}); + +//------------------弹框相关--------------------// +function hideModal(el) { + if($("#popupWrap").length > 0){ + $("#popupWrap").remove(); + } + else{ + var modal; + if (el) { + modal = $(el).parents('.ui-dialog-content'); + } else { + modal = $('#ajax-modal'); + } + modal.dialog("close"); + } +} + +// 公共弹框样式 +// 建议左右栏的:Width:460,Height:190 +// 建议宽屏对应值:Width:760,Height:500 +function pop_box_new(value, Width, Height){ + w = ($(window).width() - Width)/2; + h = ($(window).height() - Height)/2; + var container =$('
'); + container.attr('id','popupWrap'); + $(document.body).append(container); + $("#popupWrap").html(value); + $("#popupWrap").show(); + $('#popupWrap').css({"top": h+"px","left": w+"px","padding":"0","border":"none","position":"fixed","z-index":"99999","background-color":"#fff"}); + $('#popupWrap').find("a[class*='close']").click(function(){ + $("#popupWrap").hide(); + }); +// w = ($(window).width() - Width)/2; +// h = ($(window).height() - Height)/2; +// $("#ajax-modal").html(value); +// showModal('ajax-modal', Width + 'px'); +// $('#ajax-modal').siblings().remove(); +// $('#ajax-modal').parent().css({"top": h+"px","left": w+"px","padding":"0","border":"none","position":"fixed"}); +// $('#ajax-modal').parent().removeClass("resourceUploadPopup popbox_polls popbox"); +// $('#ajax-modal').css({"padding":"0","overflow":"hidden"}); +// $('#ajax-modal').parent().attr("id","popupWrap"); + + //拖拽 + function Drag(id) { + this.div = document.getElementById(id); + if (this.div) { + this.div.style.cursor = "move"; + this.div.style.position = "fixed"; + } + this.disX = 0; + this.disY = 0; + var _this = this; + this.div.onmousedown = function (evt) { + _this.getDistance(evt); + document.onmousemove = function (evt) { + _this.setPosition(evt); + }; + _this.div.onmouseup = function () { + _this.clearEvent(); + } + } + } + Drag.prototype.getDistance = function (evt) { + var oEvent = evt || event; + this.disX = oEvent.clientX - this.div.offsetLeft; + this.disY = oEvent.clientY - this.div.offsetTop; + }; + Drag.prototype.setPosition = function (evt) { + var oEvent = evt || event; + var l = oEvent.clientX - this.disX; + var t = oEvent.clientY - this.disY; + if (l <= 0) { + l = 0; + } + else if (l >= document.documentElement.clientWidth - this.div.offsetWidth) { + l = document.documentElement.clientWidth - this.div.offsetWidth; + } + if (t <= 0) { + t = 0; + } + else if (t >= document.documentElement.clientHeight - this.div.offsetHeight) { + t = document.documentElement.clientHeight - this.div.offsetHeight; + } + this.div.style.left = l + "px"; + this.div.style.top = t + "px"; + }; + Drag.prototype.clearEvent = function () { + this.div.onmouseup = null; + document.onmousemove = null; + }; + + new Drag("popupWrap"); + + $("#popupWrap input, #popupWrap textarea, #popupWrap ul, #popupWrap a").mousedown(function(event){ + event.stopPropagation(); + new Drag("popupWrap"); + }); +} + +//点击删除时的确认弹框: 不走destroy方法 +function delete_confirm_box(url, str){ + var htmlvalue = '

提示

'+ + '

' + str + '

'; + pop_box_new(htmlvalue, 300, 140); +} + +//点击删除时的确认弹框: 走destroy方法,remote为true +function delete_confirm_box_2(url, str){ + var htmlvalue = '

提示

'+ + '

' + str + '

'; + pop_box_new(htmlvalue, 300, 140); +} + +//点击删除时的确认弹框: 走destroy方法 +function delete_confirm_box_3(url, str){ + var htmlvalue = '

提示

'+ + '

' + str + '

'; + pop_box_new(htmlvalue, 300, 140); +} + +//提示框:只有一个按钮,点击关闭弹框 +function notice_sure_box(str){ + var htmlvalue = '

提示

'+ + '

' + str + '

'+ + '知道了
'; + pop_box_new(htmlvalue, 350, 140); +} + +//提示框:只有一个确定按钮,点击关闭弹框 +function notice_box(str){ + var htmlvalue = '

提示

'+ + '

' + str + '

'+ + '确定
'; + pop_box_new(htmlvalue, 300, 140); +} + + +// 长提示框:只有一个确定按钮,点击关闭弹框 +function long_notice_box(str){ + var htmlvalue = '

提示

'+ + '

' + str + '

'+ + '确定
'; + pop_box_new(htmlvalue, 380, 140); +} + +//提示框:只有一个确定按钮,点击跳转 +function notice_box_redirect(url, str){ + var htmlvalue = '

提示

'+ + '

' + str + '

'+ + '确定
'; + pop_box_new(htmlvalue, 300, 140); +} diff --git a/public/javascripts/bigdata/user.js b/public/javascripts/bigdata/user.js new file mode 100644 index 000000000..474b34cdf --- /dev/null +++ b/public/javascripts/bigdata/user.js @@ -0,0 +1,70 @@ +/** + * Created by cxt on 2017/4/18. + */ +//-------------------浮动“开始”出现增加课程列表----------------// +$(function(){ + $(".-task-con-int .passageway .hint ").mouseenter(function(){ + $(".-task-con-int .passageway .hint .list").show(); + $(".-task-con-int .passageway .hint .list").css({ + opacity:0, + }).stop().animate({ + opacity:1 + },1000); + }); + $(".-task-con-int .passageway .hint .list li").hover(function(e){ + $(e.target).css({ + background:"#e6e6e6" + }) + },function(e){ + $(e.target).css({ + background:"#fff" + }) + }); + $(".-task-con-int .passageway .hint").mouseleave(function(){ + $(".-task-con-int .passageway .hint .list").hide(); + $(".-task-con-int .passageway .hint .list").css({ + opacity:1, + }).stop().animate({ + opacity:0 + },1000); + }); +}); + +//---------------------------我的关注-----------------------------// +$(function(){ + $("#my_watchlist_span").live('click', function(){ + $("#my_fanlist_span").removeClass('span1'); + $("#my_watchlist_span").addClass('span1'); + $("#my_fanlist").hide(); + $("#my_watchlist").show(); + }); + $("#my_fanlist_span").live('click', function(){ + $("#my_watchlist_span").removeClass('span1'); + $("#my_fanlist_span").addClass('span1'); + $("#my_watchlist").hide(); + $("#my_fanlist").show(); + }); +}); + +//---------------------------修改个人简介-----------------------------// +$(function(){ + $("#user_breif_introduction").on('blur', function(){ + $.post( + '/users/' + $("#current_user_id").val() + '/edit_brief_introduction', + { brief_introduction: $("#user_breif_introduction").val() }, + function (data) { + + } + ); + }); +}); + +//---------------------------取消关注/关注-----------------------------// +$(function(){ + $("#cancel_watch").live('mouseenter',function(){ + $("#cancel_watch").html("取消关注"); + }); + $("#cancel_watch").live('mouseleave',function(){ + $("#cancel_watch").html("已关注"); + }); +}); \ No newline at end of file diff --git a/public/stylesheets/css/bigdata-common.css b/public/stylesheets/css/bigdata-common.css index 96c744e93..fb3980cfa 100644 --- a/public/stylesheets/css/bigdata-common.css +++ b/public/stylesheets/css/bigdata-common.css @@ -25,16 +25,18 @@ input,textarea,select{ background: #fff; border:1px solid #ccc; color:#666;} .task-hide{overflow:hidden; white-space: nowrap; text-overflow:ellipsis;} .hide{overflow:hidden; white-space: nowrap; text-overflow:ellipsis;} .hide-text {overflow:hidden; white-space:nowrap;} +/*隐藏*/ +.none{display: none;} /*通用文字功能样式*/ .font-bd{ font-weight: bold;} .color-red{ color:#d2322d;} -.color-green{color:#51a74f;} +.color-green{color:#51a74f !important;} .color-light-green{color:#29bd8b;} .color-blue{color:#3498db;} .color-orange{color:#ee4a1f;} .color-yellow{color:#f0ad4e;} -.color-grey{color:#888;} -.color_white{ color:#fff;} +.color-grey{color:#888 !important;} +.color_white{ color:#fff !important;} a.link-color-grey{color:#888;} a:hover.link-color-grey{color:#29bd8b;} a.link-color-green{color:#29bd8b;} @@ -53,8 +55,8 @@ a:hover.link-color-grey02{ color:red;} /*通用内外边距*/ .mt3{ margin-top:3px;}.mt5{ margin-top:5px;}.mt8{ margin-top:8px;}.mt10{ margin-top:10px;}.mt12{ margin-top:12px;}.mt15{ margin-top:15px;}.mt20{ margin-top:20px;}.mt25{ margin-top:25px;}.mt30{ margin-top:30px;}.mt50{ margin-top:50px;} .mb5{ margin-bottom: 5px;}.mb10{ margin-bottom: 10px;}.mb15{ margin-bottom: 15px;}.mb20{ margin-bottom: 20px;}.mb25{ margin-bottom: 25px;}.mb30{ margin-bottom: 30px;} -.ml5{ margin-left: 5px;}.ml10{ margin-left: 10px;}.ml15{ margin-left: 15px;}.ml20{ margin-left: 20px;}.ml25{ margin-left: 25px;}.ml30{ margin-left: 30px;}.ml50{ margin-left: 50px;}.ml230{ margin-left: 230px;} -.mr5{ margin-right: 5px;}.mr10{ margin-right: 10px;}.mr15{ margin-right: 15px;}.mr20{ margin-right: 20px;}.mr25{ margin-right: 25px;}.mr30{ margin-right:30px;} +.ml-3{ margin-left: -3px;}.ml5{ margin-left: 5px;}.ml10{ margin-left: 10px;}.ml15{ margin-left: 15px;}.ml20{ margin-left: 20px;}.ml25{ margin-left: 25px;}.ml30{ margin-left: 30px;}.ml50{ margin-left: 50px;}.ml230{ margin-left: 230px;} +.mr5{ margin-right: 5px;}.mr10{ margin-right: 10px;}.mr15{ margin-right: 15px;}.mr20{ margin-right: 20px;}.mr25{ margin-right: 25px;}.mr30{ margin-right:30px;}.mr60{ margin-right:60px;} .pt5{ padding-top:5px;}.pt10{ padding-top:10px;}.pt15{ padding-top:15px;}.pt20{ padding-top:20px;} .pb5{ padding-bottom:5px;}.pb10{ padding-bottom:10px;}.pb15{ padding-bottom:15px;}.pb20{ padding-bottom:20px;} .pl5{ padding-left:5px;}.pl10{ padding-left:10px;}.pl15{ padding-left:15px;}.pl20{ padding-left:20px;} @@ -112,6 +114,7 @@ a:hover.task-btn-ver{background:#5f7cab;} .tag-border-grey{ background-color: #fff;border-color: #e2e2e2; color: #888;} .cir-orange{background: #ff6530;color: #fff; border-radius: 15px; padding: 0 5px; display: inline-block; font-size: 12px; height: 16px;line-height: 16px; } .cir-red{background: red;color: #fff; border-radius: 15px; padding: 0 5px; display: inline-block; font-size: 12px; height: 16px;line-height: 16px; } +.red-cir-btn{ background:#e74c3c; padding:1px 5px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal;font-size:12px;} /****************************/ /* 页面结构*/ .task-pm-content{ width: 1000px; margin: 0 auto; } diff --git a/public/stylesheets/css/bigdata-login.css b/public/stylesheets/css/bigdata-login.css index eb32a60e2..a39cce218 100644 --- a/public/stylesheets/css/bigdata-login.css +++ b/public/stylesheets/css/bigdata-login.css @@ -99,7 +99,7 @@ a:hover.btn-blue-line{background: #3b94d6; color:#fff;} .new-container-inner02{width:1200px; margin:0px auto; padding:50px 0;} .inner-nav-mes{ font-size:28px; color: #fff; position: relative; margin-top:3px; margin-right:35px;} .inner-nav-cir{ position: absolute; top:0px; left:15px; background:#3b94d6; color:#fff; border-radius:15px;padding:0 5px; display: inline-block; font-size: 10px;} -.inner-nav-user{ width: 40px; height: 40px; margin-top:5px; position: relative;} +.inner-nav-user{ width: 55px; height: 40px; margin-top:5px; position: relative;} .inner-nav-user-img{ width: 40px; height: 40px; border-radius:50px;} .inner-nav-user font{border: 1px solid #dddddd; display: block; border-width: 6px; position: absolute; top:18px;left:45px; border-style:solid; border-color:#fff transparent transparent transparent;font-size: 0;line-height: 0; box-shadow:2px rgba(146, 153, 169, 0.5);} /*消息弹框*/ @@ -146,10 +146,3 @@ a.shadowbox_news_all{ display:block; width:305px; height:40px; line-height:40px; .handler_ok_bg{ background: #fff url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo0ZDhlNWY5My05NmI0LTRlNWQtOGFjYi03ZTY4OGYyMTU2ZTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDlBRDI3NjVGMkQ2MTFFNEI5NDBCMjQ2M0ExMDQ1OUYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDlBRDI3NjRGMkQ2MTFFNEI5NDBCMjQ2M0ExMDQ1OUYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDphNWEzMWNhMC1hYmViLTQxNWEtYTEwZS04Y2U5NzRlN2Q4YTEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NGQ4ZTVmOTMtOTZiNC00ZTVkLThhY2ItN2U2ODhmMjE1NmU2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+k+sHwwAAASZJREFUeNpi/P//PwMyKD8uZw+kUoDYEYgloMIvgHg/EM/ptHx0EFk9I8wAoEZ+IDUPiIMY8IN1QJwENOgj3ACo5gNAbMBAHLgAxA4gQ5igAnNJ0MwAVTsX7IKyY7L2UNuJAf+AmAmJ78AEDTBiwGYg5gbifCSxFCZoaBMCy4A4GOjnH0D6DpK4IxNSVIHAfSDOAeLraJrjgJp/AwPbHMhejiQnwYRmUzNQ4VQgDQqXK0ia/0I17wJiPmQNTNBEAgMlQIWiQA2vgWw7QppBekGxsAjIiEUSBNnsBDWEAY9mEFgMMgBk00E0iZtA7AHEctDQ58MRuA6wlLgGFMoMpIG1QFeGwAIxGZo8GUhIysmwQGSAZgwHaEZhICIzOaBkJkqyM0CAAQDGx279Jf50AAAAAABJRU5ErkJggg==") no-repeat center;} .drag_slider .drag_bg{ background-color: #29bd8b; height: 45px; width: 0px;} .drag_slider .drag_text{ position: absolute; top: 0px; width: 350px; -moz-user-select: none; -webkit-user-select: none; user-select: none; -o-user-select:none; -ms-user-select:none;} - -/*头像下拉弹框*/ -.my_account_info{ width:160px; background-color:#fff; border-radius: 3px; box-shadow: 0px 2px 8px rgba(146, 153, 169, 0.5); position:absolute; font-size: 14px; top:46px; left:-97px;display: none; z-index:999;} -.my_account_info li a{ color: #888;} -.my_account_info font{ border: 1px solid #dddddd; display: block; border-width: 8px; position: absolute; top: -15px;left: 140px; border-style:solid; border-color: transparent transparent #fff transparent;font-size: 0;line-height: 0; box-shadow:2px rgba(146, 153, 169, 0.5); } -.my_account_info li{ padding-left: 5px; line-height: 1.5;} -.li_bottom_border{ border-bottom:1px solid #eee;} \ No newline at end of file diff --git a/public/stylesheets/css/bigdata-popup.css b/public/stylesheets/css/bigdata-popup.css index a9dc63d61..ad92e2c46 100644 --- a/public/stylesheets/css/bigdata-popup.css +++ b/public/stylesheets/css/bigdata-popup.css @@ -1,11 +1,12 @@ /* 修改密码成功弹框 */ -.task-popup{ width: 30%;background: #fff; border:1px solid #e8e8e8; border-radius:3px; -webkit-box-shadow:0 0 10px #ccc; -moz-box-shadow:0 0 10px #ccc; box-shadow:0 0 10px #ccc; margin: 50px auto;} +.task-popup{ width: 30%;background: #fff; border:1px solid #e8e8e8; border-radius:3px; -webkit-box-shadow:0 0 10px #ccc; -moz-box-shadow:0 0 10px #ccc; box-shadow:0 0 10px #ccc;} .task-popup-text-center{ text-align: center; color: #666;} .task-popup-title{ border-bottom: 1px solid #eee; padding:10px 15px; } .task-popup-content{ padding:15px;} .task-popup-submit{ margin:15px auto; width: 200px;} - +.task-popup-sure{ margin:15px auto; width: 94px;} .task-popup-bggrey{ background:#ccc; color:#333;} + /************实训弹窗****************/ .task-popup-warp{ width: 100%; height:100%; background:black; position:fixed;} .task-popup-box{ position: relative; margin:150px auto; } @@ -18,4 +19,12 @@ a:hover.task-popup-close{background:url(/images/task/task-close.png) -40px 0px n a.task-su-btn{display: block;background:url(/images/task/task-su-btn.png) 0px -64px no-repeat; width: 138px; height: 57px;color:#ee4a1f; line-height: 50px; text-align: center; font-size: 16px; margin:20px auto;} a:hover.task-su-btn{background:url(/images/task/task-su-btn.png) 0px 0px no-repeat; } a.task-su-btn-white{ display: inline-block; padding:8px 25px; border:1px solid #fff; color:#fff; text-align: center; border-radius:5px; font-size:14px;} -a:hover.task-su-btn-white{ color: #ee4a1f; border:1px solid #ee4a1f; } \ No newline at end of file +a:hover.task-su-btn-white{ color: #ee4a1f; border:1px solid #ee4a1f; } + +/* 模板弹框 20170407byLB */ +#task_popup_box{ background:#fff;padding-bottom:15px;-webkit-border-radius:5px;-moz-border-radius:5px;-o-border-radius:5px;border-radius:5px;box-shadow: 0px 2px 8px rgba(146, 153, 169, 0.5);} +.task_popup_top{background:#ccc;height:40px;-webkit-border-radius: 5px 5px 0px 0px;-moz-border-radius: 5px 5px 0px 0px;-o-border-radius: 5px 5px 0px 0px;border-radius: 5px 5px 0px 0px;} +.task_popup_top h3{ font-size:14px; color:#333; line-height:40px; padding-left:10px; } +a.task_icons_close{width:20px; height:20px;display:block;background: url(../images/popup/sy_icons_close.png) 0 0px no-repeat; margin:8px 10px 0 0;} +a:hover.task_icons_close{background: url(../images/popup/sy_icons_close.png) -40px 0px no-repeat;} +.task_popup_con{ padding:20px;} \ No newline at end of file diff --git a/public/stylesheets/css/bigdata-public.css b/public/stylesheets/css/bigdata-public.css index 4cfb71813..3025514e0 100644 --- a/public/stylesheets/css/bigdata-public.css +++ b/public/stylesheets/css/bigdata-public.css @@ -7,15 +7,16 @@ a.new-nav-a{ display: block; font-size: 14px; line-height: 50px; color:#fff;} a:hover.new-nav-a{ color:#3b94d6; text-decoration: none;} .header-search{border-radius:3px; background:#fff;} .header-search a:hover,a:link, a:visited{ text-decoration: none; color:#666;} -input.header-search-input{ width:200px; height:30px; padding:0 5px; border-style: none; border: none;outline:none;} +input.header-search-input{ width:135px; height:30px; padding:0 5px; border-style: none; border: none;outline:none;} .innner-nav li{float:left;} -.innner-nav li a{margin-right: 25px; display: block; color:#fff; padding:0 10px; } +.innner-nav li a{ display: block; color:#fff; padding:0 10px; } .inner-btnbox02{ width:270px; margin: 30px auto 0;} .new-container-inner02{width:1200px; margin:0px auto; padding:50px 0;} .inner-nav-mes{ font-size:20px; color:#fff; position: relative; margin-right:35px;} .inner-nav-cir{ position: absolute; top:0px; left:15px; background:#ff6530; color:#fff; border-radius:15px;padding:0 5px; display: inline-block; font-size:10px; height:16px; line-height:16px;} .inner-nav-user{ width: 55px; height: 40px; margin-top:5px; position: relative;} .inner-nav-user-img{ width: 40px; height: 40px; border-radius:50px;} +select.header-search-select{ border:none; font-size:14px; padding:5px; background: none;} .task-user-dropdown{width:120px; background-color:#fff; border-radius:3px; box-shadow: 0px 2px 8px rgba(146, 153, 169, 0.5); position:relative; top:10px; right:45px; display: none; z-index:999;} .task-user-dropdown font{ border: 1px solid #dddddd; display: block; border-width: 8px; position: absolute; top: -15px;left:60px; border-style:solid; border-color: transparent transparent #fff transparent;font-size: 0;line-height: 0; box-shadow:2px rgba(146, 153, 169, 0.5); } @@ -24,6 +25,31 @@ input.header-search-input{ width:200px; height:30px; padding:0 5px; border-style .task-user-dropdown-nav li:hover{ background:#eee;} li.task-line{ height: 1px; line-height: 1px; border-bottom:1px solid #eee;} .inner-nav-user:hover .task-user-dropdown{ display:block;} +dropdown{display: inline-block; height:30px; } +dropdown label, dropdown ul li{ display: block; width:35px; padding:4px 10px;} +dropdown label:hover, dropdown ul li:hover{background: #eee; color:#666;cursor: pointer;} +dropdown label{color: #666;border-radius: 3px 0 0 3px; position: relative; z-index: 2;} +dropdown input{display: none;} +dropdown input:checked + label{ background: #fff;color:#666;} +dropdown ul{ position: absolute; visibility: visible; opacity: 1; top: 38px; background: #fff; z-index: 99;} +$colors: #fff, #0072B5, #2C3E50; +@for $i from 1 through length($colors) { + dropdown ul li:nth-child(#{$i}) { + border-left: 4px solid nth($colors, $i); + .fa{ + color: nth($colors, $i); + } +&:hover { + background: nth($colors, $i); + color: white; + .fa{ + color: white; + } +} +} +} +.animate{ -webkit-transition: all .3s; -moz-transition: all .3s; -ms-transition: all .3s; -ms-transition: all .3s; + transition: all .3s; backface-visibility:hidden; -webkit-backface-visibility:hidden; /* Chrome and Safari */ -moz-backface-visibility:hidden; /* Firefox */ -ms-backface-visibility:hidden; /* Internet Explorer */} /* 底部 */ .footer{width:100%; height:100px; background-color:#fff; } .footer_con{ width:1200px; height:100px; margin:0 auto; text-align: center; padding:20px 0; } @@ -156,3 +182,10 @@ input.task-form-100,textarea.task-form-100,select.task-form-100,.task-form-100{p input.task-height-40,textarea.task-height-40,.task-height-40,select.task-height-40{height:40px;} input.task-height-150,textarea.task-height-150,.task-height-150{height:150px;} input.task-height-150,textarea.task-height-150,.task-height-100{height:100px;} + +/*头像下拉弹框*/ +.my_account_info{ width:160px; background-color:#fff; border-radius: 3px; box-shadow: 0px 2px 8px rgba(146, 153, 169, 0.5); position:absolute; font-size: 14px; top:46px; left:-97px;display: none; z-index:999;} +.my_account_info li a{ color: #888;} +.my_account_info font{ border: 1px solid #dddddd; display: block; border-width: 8px; position: absolute; top: -15px;left: 140px; border-style:solid; border-color: transparent transparent #fff transparent;font-size: 0;line-height: 0; box-shadow:2px rgba(146, 153, 169, 0.5); } +.my_account_info li{ padding-left: 5px; line-height: 1.5;} +.li_bottom_border{ border-bottom:1px solid #eee;} \ No newline at end of file diff --git a/public/stylesheets/css/bigdata-showpage.css b/public/stylesheets/css/bigdata-showpage.css index 811d1dd41..1021f2e1c 100644 --- a/public/stylesheets/css/bigdata-showpage.css +++ b/public/stylesheets/css/bigdata-showpage.css @@ -36,7 +36,7 @@ a:hover.btn-blue-line{background: #3b94d6; color:#fff;} .new-container-inner02{width:1200px; margin:0px auto; padding:50px 0;} .inner-nav-mes{ font-size:28px; color: #fff; position: relative; margin-top:3px; margin-right:35px;} .inner-nav-cir{ position: absolute; top:0px; left:15px; background:#3b94d6; color:#fff; border-radius:15px;padding:0 5px; display: inline-block; font-size: 10px;} -.inner-nav-user{ width: 40px; height: 40px; margin-top:5px; position: relative;} +.inner-nav-user{ width: 55px; height: 40px; margin-top:5px; position: relative;} .inner-nav-user-img{ width: 40px; height: 40px; border-radius:50px;} .inner-nav-user font{border: 1px solid #dddddd; display: block; border-width: 6px; position: absolute; top:18px;left:45px; border-style:solid; border-color:#fff transparent transparent transparent;font-size: 0;line-height: 0; box-shadow:2px rgba(146, 153, 169, 0.5);} /*消息弹框*/ diff --git a/public/stylesheets/css/bigdata-user.css b/public/stylesheets/css/bigdata-user.css new file mode 100644 index 000000000..250a526d9 --- /dev/null +++ b/public/stylesheets/css/bigdata-user.css @@ -0,0 +1,109 @@ +/* 个人主页 20170411byWang */ +.-task-con{width:1200px;margin:20px auto;} +/*个人信息*/ +.-task-con-per{width:100%;background:#fff;} +.-task-con-per .photo{width:150px;position:relative;margin:1%;} +.-task-con-per .photo .person{width:150px;height:150px;} +.-task-con-per .photo .changephoto{width:100%;text-align:center;line-height:38px;color:#fff;background:black;opacity:0.4;filter: alpha(opacity=40);position:absolute;bottom:0;left:0;cursor: pointer;} +.-task-con-data{width:85%;} +.-task-con-data .top{width:100%;} +.-task-con-data .top .top-left{width:46%;} +.-task-con-data .top .top-right{width:20%;text-align: right;} +.-task-con-data .top .top-right .mynew{display:block;width:100%;} +.-task-con-data .top .top-right .mynew p a{color:#5789c8;} +.-task-con-data .top .top-right .mynew .p2{line-height:50px;color:#ccc;} +.-task-con-data .top .top-right .mynew p .fa{position:relative;} +.-task-con-data .top .top-right .mynew p .fa .fa-check,.fa-close{position:absolute;left:8px;bottom:0;display:none;} +.-task-con-data .bot{width:100%;} +.-task-con-data .top .top-right .itnew .p2{padding:20px 0 10px 0} +.-task-con-data .top .top-right .itnew .sub a{border:1px solid #eee;display:inline-block;padding:2px 10px;text-align:center;width: 57px;} +.-task-con-data .top .top-right .itnew .sub{width:100%;} +.-task-con-data .bot input{width:100%;height:60px;line-height:60px;border:none;outline:none;background:#fff;} +.-task-con-data .bot p{width: 100%; height: 45px; padding-top: 33px; background: #fff;} +/*-----------------博客------------------------*/ +.-task-con-int .blog,.favour{width:100%;margin-top:15px;background:#fff;} +.-task-con-int .blog .p1{width:100%;height:40px;background:#f2f2f2;line-height:40px;text-indent:10px;} +.-task-con-int .blog .p1 span{padding:0 5px;border-radius:8px;background:#bdbdbd;line-height:14px;} +.-task-con-int .blog .p2{line-height:90px;text-align:center;} +.-task-con-int .blog .p2:hover .changecolor{color:#29bd8b;} +.-task-con-int .blog .p3{height:90px;position:relative;} +.-task-con-int .blog .p3 .check{position:absolute;right:10px;top:-27px;} +.-task-con-int .blog .p3 .blognew{width:32%;} +.-task-con-int .blog .p3 .hasborder{border-left:1px solid #eee;} +.-task-con-int .blog .p3 .blognew .font-14{height:60px;display:flex;align-items: center;color:#333;} +.-task-con-int .blog .p3 .blognew p span{height:30px;padding-right:10px;display:inline-block;} +/*-------------------交流-------------------------*/ +.-task-con-int .favour .p1{background:#f2f2f2;} +.-task-con-int .favour .p1 span{width:10%;display:inline-block;line-height:40px;text-indent:10px;cursor: pointer;} +.-task-con-int .favour .p1 span i{font-size:12px;font-style:normal;padding:0 5px;border-radius:8px;background:#ddd;line-height:14px;} +.-task-con-int .favour .p1 .span1{background:#fefefe;} +.-task-con-int .favour .p2{line-height:90px;text-align:center;} +.-task-con-int .favour .p2:hover .changecolor{color:#29bd8b;} +/*.-task-con-int .favour .fens{position:relative;}*/ +/*.-task-con-int .favour .fens a{position:absolute;right:10px;top:10px;}*/ +.-task-con-int .favour .fens .list{width:100px;text-align:center;} +.-task-con-int .favour .fens .list dt{margin:20px;} +/*-----------------------入口------------------------*/ +.-task-con-int .passageway{width:100%;background:#fff;position:relative;} +.-task-con-int .passageway .hint{position:absolute;top:0;right:0;width:80px;text-align:center;} +.-task-con-int .passageway .hint .play{display:block;line-height:40px;} +.-task-con-int .passageway .hint .list{-webkit-box-shadow: 0 0 3px #999; -moz-box-shadow: 0 0 3px #999; box-shadow: 0 0 3px #999;cursor:pointer;display:none;opacity:0;} +.-task-con-int .passageway .hint .list li{border-radius:2px; padding-top:1px;} + +.-task-con-int .passageway .kong .p1{background:#f2f2f2;line-height:40px;} +.-task-con-int .passageway .kong .p1 span{text-indent:10px;} +.-task-con-int .passageway .kong .p2{width:100%;position:relative;} +.-task-con-int .passageway .kong .p2 img{ padding:100px 0 30px 500px;} +.-task-con-int .passageway .kong .p2 p{text-align:center;width:100%;line-height:30px;} +.-task-con-int .passageway .hint .list{width:80px;text-align:center;-webkit-box-shadow: 0 0 3px #999; -moz-box-shadow: 0 0 3px #999; box-shadow: 0 0 3px #999;cursor:pointer; } +.-task-con-int .passageway .hint .list li{border-radius:2px; padding-top:1px;} +.-task-con-int .passageway .hascon i{font-style:normal;} +.-task-con-int .passageway .hascon .title{background:#f2f2f2;line-height:40px;} +.-task-con-int .passageway .hascon .title span{width:10%;display:inline-block;line-height:40px;text-indent:10px;} +.-task-con-int .passageway .hascon .title span i{font-size:12px;font-style:normal;padding:0 5px;border-radius:8px;background:#ddd;line-height:14px;} +.-task-con-int .passageway .hascon .lesson p{height:70px;line-height:70px;border-bottom:1px dotted #eee;} +.-task-con-int .passageway .hascon .train p{height:70px;line-height:70px;border-bottom:1px dotted #eee;} +.-task-con-int .passageway .hascon .lesson p .hasmargin{margin: 0 4.2% 0 21.7%;} +.-task-con-int .passageway .hascon .lesson p .haspadding{margin: 0 8.3%;} +.-task-con-int .passageway .hascon .train p .hasmargin{margin: 0 12.5% 0 25%;} +.-task-con-int .passageway .hascon .expand{display:block;;height:70px;line-height:70px;text-align:center;;border-bottom:1px dotted #eee;} +/*--------------------------------------箭头动画效果-----------------------------------*/ +.-task-con-int .passageway .hint .zhuan{ + + -moz-transform-origin:center center; + -moz-transform:rotate(-90deg); + -moz-transition:all .5s ease-in .1s; + -webkit-transform-origin:center center; + -webkit-transform:rotate(-90deg); + -webkit-transition:all .5s ease-in .1s; + -o-transform-origin:center center; + -o-transform:rotate(-90deg); + -o-transition:all .5s ease-in .1s; + -ms-transform-origin:center center; + -ms-transform:rotate(-90deg); + -ms-transition:all .5s ease-in .1s; + transform-origin:center center; + transform:rotate(-90deg); + transition:all .5s ease-in .1s; +} +.-task-con-int .passageway .hint:hover .zhuan{ + padding:0px 5px 0 0px ; + -moz-transform:rotate(0deg); + -moz-transition:all .5s ease-in .1s; + -webkit-transform:rotate(0deg); + -webkit-transition:all .5s ease-in .1s; + -o-transform:rotate(-0deg); + -o-transition:all .5s ease-in .1s; + -ms-transform:rotate(-0deg); + -ms-transition:all .5s ease-in .1s; + transform:rotate(-0deg); + transition:all .5s ease-in .1s; +} +/*-------------------侧边提示区域--------------------------*/ +.-task-sidebar{position:fixed;width:35px;height:20%;right:5%;bottom:5%;z-index: 10;} +.-task-sidebar div{width:35px;height:28px;margin-bottom:3px;background:cornflowerblue;color:#fff;font-size:20px;text-align:center;padding-top:7px;} +.-task-sidebar div:hover {background:#ccc;} +.-task-desc{background:#494949;width:90px;height:35px;line-height: 35px;text-align: center; + position: absolute;color: #fff;font-size: 13px;z-index: 10;opacity: 0;} +.-task-desc div{position: absolute;top: 10px;right: -7px;} + diff --git a/public/stylesheets/css/font-awesome.css b/public/stylesheets/css/font-awesome.css index 048cff973..ee906a819 100644 --- a/public/stylesheets/css/font-awesome.css +++ b/public/stylesheets/css/font-awesome.css @@ -1,28 +1,27 @@ /*! - * Font Awesome 4.0.3 by @davegandy - http://fontawesome.io - @fontawesome + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) */ /* FONT PATH * -------------------------- */ @font-face { font-family: 'FontAwesome'; - src: url('../fonts/fontawesome-webfont.eot?v=4.0.3'); - src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.0.3') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff?v=4.0.3') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.0.3') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.0.3#fontawesomeregular') format('svg'); + src: url('../fonts/fontawesome-webfont.eot?v=4.7.0'); + src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg'); font-weight: normal; font-style: normal; } .fa { display: inline-block; - font-family: FontAwesome; - font-style: normal; - font-weight: normal; - line-height: 1; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } /* makes the font 33% larger relative to the icon container */ .fa-lg { - font-size: 1.3333333333333333em; + font-size: 1.33333333em; line-height: 0.75em; vertical-align: -15%; } @@ -39,12 +38,12 @@ font-size: 5em; } .fa-fw { - width: 1.2857142857142858em; + width: 1.28571429em; text-align: center; } .fa-ul { padding-left: 0; - margin-left: 2.142857142857143em; + margin-left: 2.14285714em; list-style-type: none; } .fa-ul > li { @@ -52,19 +51,32 @@ } .fa-li { position: absolute; - left: -2.142857142857143em; - width: 2.142857142857143em; - top: 0.14285714285714285em; + left: -2.14285714em; + width: 2.14285714em; + top: 0.14285714em; text-align: center; } .fa-li.fa-lg { - left: -1.8571428571428572em; + left: -1.85714286em; } .fa-border { padding: .2em .25em .15em; border: solid 0.08em #eeeeee; border-radius: .1em; } +.fa-pull-left { + float: left; +} +.fa-pull-right { + float: right; +} +.fa.fa-pull-left { + margin-right: .3em; +} +.fa.fa-pull-right { + margin-left: .3em; +} +/* Deprecated as of 4.4.0 */ .pull-right { float: right; } @@ -78,91 +90,70 @@ margin-left: .3em; } .fa-spin { - -webkit-animation: spin 2s infinite linear; - -moz-animation: spin 2s infinite linear; - -o-animation: spin 2s infinite linear; - animation: spin 2s infinite linear; + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; } -@-moz-keyframes spin { - 0% { - -moz-transform: rotate(0deg); - } - 100% { - -moz-transform: rotate(359deg); - } +.fa-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); } -@-webkit-keyframes spin { +@-webkit-keyframes fa-spin { 0% { -webkit-transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - } -} -@-o-keyframes spin { - 0% { - -o-transform: rotate(0deg); - } - 100% { - -o-transform: rotate(359deg); - } -} -@-ms-keyframes spin { - 0% { - -ms-transform: rotate(0deg); - } - 100% { - -ms-transform: rotate(359deg); - } -} -@keyframes spin { - 0% { transform: rotate(0deg); } 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); transform: rotate(359deg); } } .fa-rotate-90 { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; -webkit-transform: rotate(90deg); - -moz-transform: rotate(90deg); -ms-transform: rotate(90deg); - -o-transform: rotate(90deg); transform: rotate(90deg); } .fa-rotate-180 { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; -webkit-transform: rotate(180deg); - -moz-transform: rotate(180deg); -ms-transform: rotate(180deg); - -o-transform: rotate(180deg); transform: rotate(180deg); } .fa-rotate-270 { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; -webkit-transform: rotate(270deg); - -moz-transform: rotate(270deg); -ms-transform: rotate(270deg); - -o-transform: rotate(270deg); transform: rotate(270deg); } .fa-flip-horizontal { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1); + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; -webkit-transform: scale(-1, 1); - -moz-transform: scale(-1, 1); -ms-transform: scale(-1, 1); - -o-transform: scale(-1, 1); transform: scale(-1, 1); } .fa-flip-vertical { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1); + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; -webkit-transform: scale(1, -1); - -moz-transform: scale(1, -1); -ms-transform: scale(1, -1); - -o-transform: scale(1, -1); transform: scale(1, -1); } +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical { + filter: none; +} .fa-stack { position: relative; display: inline-block; @@ -228,6 +219,8 @@ .fa-check:before { content: "\f00c"; } +.fa-remove:before, +.fa-close:before, .fa-times:before { content: "\f00d"; } @@ -369,6 +362,8 @@ .fa-video-camera:before { content: "\f03d"; } +.fa-photo:before, +.fa-image:before, .fa-picture-o:before { content: "\f03e"; } @@ -555,7 +550,8 @@ .fa-arrows-h:before { content: "\f07e"; } -.fa-bar-chart-o:before { +.fa-bar-chart-o:before, +.fa-bar-chart:before { content: "\f080"; } .fa-twitter-square:before { @@ -631,6 +627,7 @@ .fa-twitter:before { content: "\f099"; } +.fa-facebook-f:before, .fa-facebook:before { content: "\f09a"; } @@ -643,6 +640,7 @@ .fa-credit-card:before { content: "\f09d"; } +.fa-feed:before, .fa-rss:before { content: "\f09e"; } @@ -732,6 +730,8 @@ .fa-square:before { content: "\f0c8"; } +.fa-navicon:before, +.fa-reorder:before, .fa-bars:before { content: "\f0c9"; } @@ -791,11 +791,11 @@ content: "\f0dc"; } .fa-sort-down:before, -.fa-sort-asc:before { +.fa-sort-desc:before { content: "\f0dd"; } .fa-sort-up:before, -.fa-sort-desc:before { +.fa-sort-asc:before { content: "\f0de"; } .fa-envelope:before { @@ -985,12 +985,10 @@ .fa-code:before { content: "\f121"; } +.fa-mail-reply-all:before, .fa-reply-all:before { content: "\f122"; } -.fa-mail-reply-all:before { - content: "\f122"; -} .fa-star-half-empty:before, .fa-star-half-full:before, .fa-star-half-o:before { @@ -1280,7 +1278,8 @@ .fa-male:before { content: "\f183"; } -.fa-gittip:before { +.fa-gittip:before, +.fa-gratipay:before { content: "\f184"; } .fa-sun-o:before { @@ -1336,3 +1335,1003 @@ .fa-plus-square-o:before { content: "\f196"; } +.fa-space-shuttle:before { + content: "\f197"; +} +.fa-slack:before { + content: "\f198"; +} +.fa-envelope-square:before { + content: "\f199"; +} +.fa-wordpress:before { + content: "\f19a"; +} +.fa-openid:before { + content: "\f19b"; +} +.fa-institution:before, +.fa-bank:before, +.fa-university:before { + content: "\f19c"; +} +.fa-mortar-board:before, +.fa-graduation-cap:before { + content: "\f19d"; +} +.fa-yahoo:before { + content: "\f19e"; +} +.fa-google:before { + content: "\f1a0"; +} +.fa-reddit:before { + content: "\f1a1"; +} +.fa-reddit-square:before { + content: "\f1a2"; +} +.fa-stumbleupon-circle:before { + content: "\f1a3"; +} +.fa-stumbleupon:before { + content: "\f1a4"; +} +.fa-delicious:before { + content: "\f1a5"; +} +.fa-digg:before { + content: "\f1a6"; +} +.fa-pied-piper-pp:before { + content: "\f1a7"; +} +.fa-pied-piper-alt:before { + content: "\f1a8"; +} +.fa-drupal:before { + content: "\f1a9"; +} +.fa-joomla:before { + content: "\f1aa"; +} +.fa-language:before { + content: "\f1ab"; +} +.fa-fax:before { + content: "\f1ac"; +} +.fa-building:before { + content: "\f1ad"; +} +.fa-child:before { + content: "\f1ae"; +} +.fa-paw:before { + content: "\f1b0"; +} +.fa-spoon:before { + content: "\f1b1"; +} +.fa-cube:before { + content: "\f1b2"; +} +.fa-cubes:before { + content: "\f1b3"; +} +.fa-behance:before { + content: "\f1b4"; +} +.fa-behance-square:before { + content: "\f1b5"; +} +.fa-steam:before { + content: "\f1b6"; +} +.fa-steam-square:before { + content: "\f1b7"; +} +.fa-recycle:before { + content: "\f1b8"; +} +.fa-automobile:before, +.fa-car:before { + content: "\f1b9"; +} +.fa-cab:before, +.fa-taxi:before { + content: "\f1ba"; +} +.fa-tree:before { + content: "\f1bb"; +} +.fa-spotify:before { + content: "\f1bc"; +} +.fa-deviantart:before { + content: "\f1bd"; +} +.fa-soundcloud:before { + content: "\f1be"; +} +.fa-database:before { + content: "\f1c0"; +} +.fa-file-pdf-o:before { + content: "\f1c1"; +} +.fa-file-word-o:before { + content: "\f1c2"; +} +.fa-file-excel-o:before { + content: "\f1c3"; +} +.fa-file-powerpoint-o:before { + content: "\f1c4"; +} +.fa-file-photo-o:before, +.fa-file-picture-o:before, +.fa-file-image-o:before { + content: "\f1c5"; +} +.fa-file-zip-o:before, +.fa-file-archive-o:before { + content: "\f1c6"; +} +.fa-file-sound-o:before, +.fa-file-audio-o:before { + content: "\f1c7"; +} +.fa-file-movie-o:before, +.fa-file-video-o:before { + content: "\f1c8"; +} +.fa-file-code-o:before { + content: "\f1c9"; +} +.fa-vine:before { + content: "\f1ca"; +} +.fa-codepen:before { + content: "\f1cb"; +} +.fa-jsfiddle:before { + content: "\f1cc"; +} +.fa-life-bouy:before, +.fa-life-buoy:before, +.fa-life-saver:before, +.fa-support:before, +.fa-life-ring:before { + content: "\f1cd"; +} +.fa-circle-o-notch:before { + content: "\f1ce"; +} +.fa-ra:before, +.fa-resistance:before, +.fa-rebel:before { + content: "\f1d0"; +} +.fa-ge:before, +.fa-empire:before { + content: "\f1d1"; +} +.fa-git-square:before { + content: "\f1d2"; +} +.fa-git:before { + content: "\f1d3"; +} +.fa-y-combinator-square:before, +.fa-yc-square:before, +.fa-hacker-news:before { + content: "\f1d4"; +} +.fa-tencent-weibo:before { + content: "\f1d5"; +} +.fa-qq:before { + content: "\f1d6"; +} +.fa-wechat:before, +.fa-weixin:before { + content: "\f1d7"; +} +.fa-send:before, +.fa-paper-plane:before { + content: "\f1d8"; +} +.fa-send-o:before, +.fa-paper-plane-o:before { + content: "\f1d9"; +} +.fa-history:before { + content: "\f1da"; +} +.fa-circle-thin:before { + content: "\f1db"; +} +.fa-header:before { + content: "\f1dc"; +} +.fa-paragraph:before { + content: "\f1dd"; +} +.fa-sliders:before { + content: "\f1de"; +} +.fa-share-alt:before { + content: "\f1e0"; +} +.fa-share-alt-square:before { + content: "\f1e1"; +} +.fa-bomb:before { + content: "\f1e2"; +} +.fa-soccer-ball-o:before, +.fa-futbol-o:before { + content: "\f1e3"; +} +.fa-tty:before { + content: "\f1e4"; +} +.fa-binoculars:before { + content: "\f1e5"; +} +.fa-plug:before { + content: "\f1e6"; +} +.fa-slideshare:before { + content: "\f1e7"; +} +.fa-twitch:before { + content: "\f1e8"; +} +.fa-yelp:before { + content: "\f1e9"; +} +.fa-newspaper-o:before { + content: "\f1ea"; +} +.fa-wifi:before { + content: "\f1eb"; +} +.fa-calculator:before { + content: "\f1ec"; +} +.fa-paypal:before { + content: "\f1ed"; +} +.fa-google-wallet:before { + content: "\f1ee"; +} +.fa-cc-visa:before { + content: "\f1f0"; +} +.fa-cc-mastercard:before { + content: "\f1f1"; +} +.fa-cc-discover:before { + content: "\f1f2"; +} +.fa-cc-amex:before { + content: "\f1f3"; +} +.fa-cc-paypal:before { + content: "\f1f4"; +} +.fa-cc-stripe:before { + content: "\f1f5"; +} +.fa-bell-slash:before { + content: "\f1f6"; +} +.fa-bell-slash-o:before { + content: "\f1f7"; +} +.fa-trash:before { + content: "\f1f8"; +} +.fa-copyright:before { + content: "\f1f9"; +} +.fa-at:before { + content: "\f1fa"; +} +.fa-eyedropper:before { + content: "\f1fb"; +} +.fa-paint-brush:before { + content: "\f1fc"; +} +.fa-birthday-cake:before { + content: "\f1fd"; +} +.fa-area-chart:before { + content: "\f1fe"; +} +.fa-pie-chart:before { + content: "\f200"; +} +.fa-line-chart:before { + content: "\f201"; +} +.fa-lastfm:before { + content: "\f202"; +} +.fa-lastfm-square:before { + content: "\f203"; +} +.fa-toggle-off:before { + content: "\f204"; +} +.fa-toggle-on:before { + content: "\f205"; +} +.fa-bicycle:before { + content: "\f206"; +} +.fa-bus:before { + content: "\f207"; +} +.fa-ioxhost:before { + content: "\f208"; +} +.fa-angellist:before { + content: "\f209"; +} +.fa-cc:before { + content: "\f20a"; +} +.fa-shekel:before, +.fa-sheqel:before, +.fa-ils:before { + content: "\f20b"; +} +.fa-meanpath:before { + content: "\f20c"; +} +.fa-buysellads:before { + content: "\f20d"; +} +.fa-connectdevelop:before { + content: "\f20e"; +} +.fa-dashcube:before { + content: "\f210"; +} +.fa-forumbee:before { + content: "\f211"; +} +.fa-leanpub:before { + content: "\f212"; +} +.fa-sellsy:before { + content: "\f213"; +} +.fa-shirtsinbulk:before { + content: "\f214"; +} +.fa-simplybuilt:before { + content: "\f215"; +} +.fa-skyatlas:before { + content: "\f216"; +} +.fa-cart-plus:before { + content: "\f217"; +} +.fa-cart-arrow-down:before { + content: "\f218"; +} +.fa-diamond:before { + content: "\f219"; +} +.fa-ship:before { + content: "\f21a"; +} +.fa-user-secret:before { + content: "\f21b"; +} +.fa-motorcycle:before { + content: "\f21c"; +} +.fa-street-view:before { + content: "\f21d"; +} +.fa-heartbeat:before { + content: "\f21e"; +} +.fa-venus:before { + content: "\f221"; +} +.fa-mars:before { + content: "\f222"; +} +.fa-mercury:before { + content: "\f223"; +} +.fa-intersex:before, +.fa-transgender:before { + content: "\f224"; +} +.fa-transgender-alt:before { + content: "\f225"; +} +.fa-venus-double:before { + content: "\f226"; +} +.fa-mars-double:before { + content: "\f227"; +} +.fa-venus-mars:before { + content: "\f228"; +} +.fa-mars-stroke:before { + content: "\f229"; +} +.fa-mars-stroke-v:before { + content: "\f22a"; +} +.fa-mars-stroke-h:before { + content: "\f22b"; +} +.fa-neuter:before { + content: "\f22c"; +} +.fa-genderless:before { + content: "\f22d"; +} +.fa-facebook-official:before { + content: "\f230"; +} +.fa-pinterest-p:before { + content: "\f231"; +} +.fa-whatsapp:before { + content: "\f232"; +} +.fa-server:before { + content: "\f233"; +} +.fa-user-plus:before { + content: "\f234"; +} +.fa-user-times:before { + content: "\f235"; +} +.fa-hotel:before, +.fa-bed:before { + content: "\f236"; +} +.fa-viacoin:before { + content: "\f237"; +} +.fa-train:before { + content: "\f238"; +} +.fa-subway:before { + content: "\f239"; +} +.fa-medium:before { + content: "\f23a"; +} +.fa-yc:before, +.fa-y-combinator:before { + content: "\f23b"; +} +.fa-optin-monster:before { + content: "\f23c"; +} +.fa-opencart:before { + content: "\f23d"; +} +.fa-expeditedssl:before { + content: "\f23e"; +} +.fa-battery-4:before, +.fa-battery:before, +.fa-battery-full:before { + content: "\f240"; +} +.fa-battery-3:before, +.fa-battery-three-quarters:before { + content: "\f241"; +} +.fa-battery-2:before, +.fa-battery-half:before { + content: "\f242"; +} +.fa-battery-1:before, +.fa-battery-quarter:before { + content: "\f243"; +} +.fa-battery-0:before, +.fa-battery-empty:before { + content: "\f244"; +} +.fa-mouse-pointer:before { + content: "\f245"; +} +.fa-i-cursor:before { + content: "\f246"; +} +.fa-object-group:before { + content: "\f247"; +} +.fa-object-ungroup:before { + content: "\f248"; +} +.fa-sticky-note:before { + content: "\f249"; +} +.fa-sticky-note-o:before { + content: "\f24a"; +} +.fa-cc-jcb:before { + content: "\f24b"; +} +.fa-cc-diners-club:before { + content: "\f24c"; +} +.fa-clone:before { + content: "\f24d"; +} +.fa-balance-scale:before { + content: "\f24e"; +} +.fa-hourglass-o:before { + content: "\f250"; +} +.fa-hourglass-1:before, +.fa-hourglass-start:before { + content: "\f251"; +} +.fa-hourglass-2:before, +.fa-hourglass-half:before { + content: "\f252"; +} +.fa-hourglass-3:before, +.fa-hourglass-end:before { + content: "\f253"; +} +.fa-hourglass:before { + content: "\f254"; +} +.fa-hand-grab-o:before, +.fa-hand-rock-o:before { + content: "\f255"; +} +.fa-hand-stop-o:before, +.fa-hand-paper-o:before { + content: "\f256"; +} +.fa-hand-scissors-o:before { + content: "\f257"; +} +.fa-hand-lizard-o:before { + content: "\f258"; +} +.fa-hand-spock-o:before { + content: "\f259"; +} +.fa-hand-pointer-o:before { + content: "\f25a"; +} +.fa-hand-peace-o:before { + content: "\f25b"; +} +.fa-trademark:before { + content: "\f25c"; +} +.fa-registered:before { + content: "\f25d"; +} +.fa-creative-commons:before { + content: "\f25e"; +} +.fa-gg:before { + content: "\f260"; +} +.fa-gg-circle:before { + content: "\f261"; +} +.fa-tripadvisor:before { + content: "\f262"; +} +.fa-odnoklassniki:before { + content: "\f263"; +} +.fa-odnoklassniki-square:before { + content: "\f264"; +} +.fa-get-pocket:before { + content: "\f265"; +} +.fa-wikipedia-w:before { + content: "\f266"; +} +.fa-safari:before { + content: "\f267"; +} +.fa-chrome:before { + content: "\f268"; +} +.fa-firefox:before { + content: "\f269"; +} +.fa-opera:before { + content: "\f26a"; +} +.fa-internet-explorer:before { + content: "\f26b"; +} +.fa-tv:before, +.fa-television:before { + content: "\f26c"; +} +.fa-contao:before { + content: "\f26d"; +} +.fa-500px:before { + content: "\f26e"; +} +.fa-amazon:before { + content: "\f270"; +} +.fa-calendar-plus-o:before { + content: "\f271"; +} +.fa-calendar-minus-o:before { + content: "\f272"; +} +.fa-calendar-times-o:before { + content: "\f273"; +} +.fa-calendar-check-o:before { + content: "\f274"; +} +.fa-industry:before { + content: "\f275"; +} +.fa-map-pin:before { + content: "\f276"; +} +.fa-map-signs:before { + content: "\f277"; +} +.fa-map-o:before { + content: "\f278"; +} +.fa-map:before { + content: "\f279"; +} +.fa-commenting:before { + content: "\f27a"; +} +.fa-commenting-o:before { + content: "\f27b"; +} +.fa-houzz:before { + content: "\f27c"; +} +.fa-vimeo:before { + content: "\f27d"; +} +.fa-black-tie:before { + content: "\f27e"; +} +.fa-fonticons:before { + content: "\f280"; +} +.fa-reddit-alien:before { + content: "\f281"; +} +.fa-edge:before { + content: "\f282"; +} +.fa-credit-card-alt:before { + content: "\f283"; +} +.fa-codiepie:before { + content: "\f284"; +} +.fa-modx:before { + content: "\f285"; +} +.fa-fort-awesome:before { + content: "\f286"; +} +.fa-usb:before { + content: "\f287"; +} +.fa-product-hunt:before { + content: "\f288"; +} +.fa-mixcloud:before { + content: "\f289"; +} +.fa-scribd:before { + content: "\f28a"; +} +.fa-pause-circle:before { + content: "\f28b"; +} +.fa-pause-circle-o:before { + content: "\f28c"; +} +.fa-stop-circle:before { + content: "\f28d"; +} +.fa-stop-circle-o:before { + content: "\f28e"; +} +.fa-shopping-bag:before { + content: "\f290"; +} +.fa-shopping-basket:before { + content: "\f291"; +} +.fa-hashtag:before { + content: "\f292"; +} +.fa-bluetooth:before { + content: "\f293"; +} +.fa-bluetooth-b:before { + content: "\f294"; +} +.fa-percent:before { + content: "\f295"; +} +.fa-gitlab:before { + content: "\f296"; +} +.fa-wpbeginner:before { + content: "\f297"; +} +.fa-wpforms:before { + content: "\f298"; +} +.fa-envira:before { + content: "\f299"; +} +.fa-universal-access:before { + content: "\f29a"; +} +.fa-wheelchair-alt:before { + content: "\f29b"; +} +.fa-question-circle-o:before { + content: "\f29c"; +} +.fa-blind:before { + content: "\f29d"; +} +.fa-audio-description:before { + content: "\f29e"; +} +.fa-volume-control-phone:before { + content: "\f2a0"; +} +.fa-braille:before { + content: "\f2a1"; +} +.fa-assistive-listening-systems:before { + content: "\f2a2"; +} +.fa-asl-interpreting:before, +.fa-american-sign-language-interpreting:before { + content: "\f2a3"; +} +.fa-deafness:before, +.fa-hard-of-hearing:before, +.fa-deaf:before { + content: "\f2a4"; +} +.fa-glide:before { + content: "\f2a5"; +} +.fa-glide-g:before { + content: "\f2a6"; +} +.fa-signing:before, +.fa-sign-language:before { + content: "\f2a7"; +} +.fa-low-vision:before { + content: "\f2a8"; +} +.fa-viadeo:before { + content: "\f2a9"; +} +.fa-viadeo-square:before { + content: "\f2aa"; +} +.fa-snapchat:before { + content: "\f2ab"; +} +.fa-snapchat-ghost:before { + content: "\f2ac"; +} +.fa-snapchat-square:before { + content: "\f2ad"; +} +.fa-pied-piper:before { + content: "\f2ae"; +} +.fa-first-order:before { + content: "\f2b0"; +} +.fa-yoast:before { + content: "\f2b1"; +} +.fa-themeisle:before { + content: "\f2b2"; +} +.fa-google-plus-circle:before, +.fa-google-plus-official:before { + content: "\f2b3"; +} +.fa-fa:before, +.fa-font-awesome:before { + content: "\f2b4"; +} +.fa-handshake-o:before { + content: "\f2b5"; +} +.fa-envelope-open:before { + content: "\f2b6"; +} +.fa-envelope-open-o:before { + content: "\f2b7"; +} +.fa-linode:before { + content: "\f2b8"; +} +.fa-address-book:before { + content: "\f2b9"; +} +.fa-address-book-o:before { + content: "\f2ba"; +} +.fa-vcard:before, +.fa-address-card:before { + content: "\f2bb"; +} +.fa-vcard-o:before, +.fa-address-card-o:before { + content: "\f2bc"; +} +.fa-user-circle:before { + content: "\f2bd"; +} +.fa-user-circle-o:before { + content: "\f2be"; +} +.fa-user-o:before { + content: "\f2c0"; +} +.fa-id-badge:before { + content: "\f2c1"; +} +.fa-drivers-license:before, +.fa-id-card:before { + content: "\f2c2"; +} +.fa-drivers-license-o:before, +.fa-id-card-o:before { + content: "\f2c3"; +} +.fa-quora:before { + content: "\f2c4"; +} +.fa-free-code-camp:before { + content: "\f2c5"; +} +.fa-telegram:before { + content: "\f2c6"; +} +.fa-thermometer-4:before, +.fa-thermometer:before, +.fa-thermometer-full:before { + content: "\f2c7"; +} +.fa-thermometer-3:before, +.fa-thermometer-three-quarters:before { + content: "\f2c8"; +} +.fa-thermometer-2:before, +.fa-thermometer-half:before { + content: "\f2c9"; +} +.fa-thermometer-1:before, +.fa-thermometer-quarter:before { + content: "\f2ca"; +} +.fa-thermometer-0:before, +.fa-thermometer-empty:before { + content: "\f2cb"; +} +.fa-shower:before { + content: "\f2cc"; +} +.fa-bathtub:before, +.fa-s15:before, +.fa-bath:before { + content: "\f2cd"; +} +.fa-podcast:before { + content: "\f2ce"; +} +.fa-window-maximize:before { + content: "\f2d0"; +} +.fa-window-minimize:before { + content: "\f2d1"; +} +.fa-window-restore:before { + content: "\f2d2"; +} +.fa-times-rectangle:before, +.fa-window-close:before { + content: "\f2d3"; +} +.fa-times-rectangle-o:before, +.fa-window-close-o:before { + content: "\f2d4"; +} +.fa-bandcamp:before { + content: "\f2d5"; +} +.fa-grav:before { + content: "\f2d6"; +} +.fa-etsy:before { + content: "\f2d7"; +} +.fa-imdb:before { + content: "\f2d8"; +} +.fa-ravelry:before { + content: "\f2d9"; +} +.fa-eercast:before { + content: "\f2da"; +} +.fa-microchip:before { + content: "\f2db"; +} +.fa-snowflake-o:before { + content: "\f2dc"; +} +.fa-superpowers:before { + content: "\f2dd"; +} +.fa-wpexplorer:before { + content: "\f2de"; +} +.fa-meetup:before { + content: "\f2e0"; +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} diff --git a/public/stylesheets/css/login.css b/public/stylesheets/css/login.css index fc1475179..a63e8a49e 100644 --- a/public/stylesheets/css/login.css +++ b/public/stylesheets/css/login.css @@ -134,7 +134,7 @@ a:hover.btn-blue-line{background: #3b94d6; color:#fff;} .new-container-inner02{width:1200px; margin:0px auto; padding:50px 0;} .inner-nav-mes{ font-size:28px; color: #fff; position: relative; margin-top:3px; margin-right:35px;} .inner-nav-cir{ position: absolute; top:0px; left:15px; background:#3b94d6; color:#fff; border-radius:15px;padding:0 5px; display: inline-block; font-size: 10px;} -.inner-nav-user{ width: 40px; height: 40px; margin-top:5px; position: relative;} +.inner-nav-user{ width: 55px; height: 40px; margin-top:5px; position: relative;} .inner-nav-user-img{ width: 40px; height: 40px; border-radius:50px;} .inner-nav-user font{border: 1px solid #dddddd; display: block; border-width: 6px; position: absolute; top:18px;left:45px; border-style:solid; border-color:#fff transparent transparent transparent;font-size: 0;line-height: 0; box-shadow:2px rgba(146, 153, 169, 0.5);} /*消息弹框*/ diff --git a/public/stylesheets/css/structure.css b/public/stylesheets/css/structure.css index 6813848b4..8724af585 100644 --- a/public/stylesheets/css/structure.css +++ b/public/stylesheets/css/structure.css @@ -534,7 +534,7 @@ a.user_editinfo{border-top:1px solid #e5e5e5; height:30px; line-height:30px; tex a.new-nav-a{ display: block; font-size: 14px; line-height: 50px; color:#fff;} a:hover.new-nav-a{ color:#3b94d6;} input.new-search{border-radius:3px; width:300px; height:30px; margin-top: 10px; padding:0 5px; border-style: none; border: solid 1px #ccc;} -.inner-nav-user{ width: 40px; height: 40px; margin-top:5px; position: relative;} +.inner-nav-user{ width: 55px; height: 40px; margin-top:5px; position: relative;} .inner-nav-user-img{ width: 40px; height: 40px; border-radius:50px;} .inner-nav-user font{border: 1px solid #dddddd; display: block; border-width: 6px; position: absolute; top:18px;left:45px; border-style:solid; border-color:#fff transparent transparent transparent;font-size: 0;line-height: 0; box-shadow:2px rgba(146, 153, 169, 0.5);} .innner-nav li{ float: left; margin-right: 25px;} @@ -546,7 +546,7 @@ input.new-search{border-radius:3px; width:300px; height:30px; margin-top: 10px; .inner-nav-mes{ font-size:28px; color: #fff; position: relative; margin-top:3px; margin-right:35px;} .inner-nav-mes li:hover ul{ display: block;} .inner-nav-cir{ position: absolute; top:0px; left:15px; background:#3b94d6; color:#fff; border-radius:15px;padding:0 5px; display: inline-block; font-size: 10px;} -.inner-nav-user{ width: 40px; height: 40px; margin-top:5px; position: relative;} +.inner-nav-user{ width: 55px; height: 40px; margin-top:5px; position: relative;} .inner-nav-user-img{ width: 40px; height: 40px; border-radius:50px;} .inner-nav-user font{border: 1px solid #dddddd; display: block; border-width: 6px; position: absolute; top:18px;left:45px; border-style:solid; border-color:#fff transparent transparent transparent;font-size: 0;line-height: 0; box-shadow:2px rgba(146, 153, 169, 0.5);} .my_account_info{ width:160px; background-color:#fff; border-radius: 3px; box-shadow: 0px 2px 8px rgba(146, 153, 169, 0.5); position:absolute; font-size: 14px; top:46px; left:-97px;display: none; z-index:999;} diff --git a/public/stylesheets/fonts/FontAwesome.otf b/public/stylesheets/fonts/FontAwesome.otf index 8b0f54e47..401ec0f36 100644 Binary files a/public/stylesheets/fonts/FontAwesome.otf and b/public/stylesheets/fonts/FontAwesome.otf differ diff --git a/public/stylesheets/fonts/fontawesome-webfont.eot b/public/stylesheets/fonts/fontawesome-webfont.eot index 7c79c6a6b..e9f60ca95 100644 Binary files a/public/stylesheets/fonts/fontawesome-webfont.eot and b/public/stylesheets/fonts/fontawesome-webfont.eot differ diff --git a/public/stylesheets/fonts/fontawesome-webfont.svg b/public/stylesheets/fonts/fontawesome-webfont.svg index 45fdf3383..855c845e5 100644 --- a/public/stylesheets/fonts/fontawesome-webfont.svg +++ b/public/stylesheets/fonts/fontawesome-webfont.svg @@ -1,414 +1,2671 @@ - - + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/stylesheets/fonts/fontawesome-webfont.ttf b/public/stylesheets/fonts/fontawesome-webfont.ttf index e89738de5..35acda2fa 100644 Binary files a/public/stylesheets/fonts/fontawesome-webfont.ttf and b/public/stylesheets/fonts/fontawesome-webfont.ttf differ diff --git a/public/stylesheets/fonts/fontawesome-webfont.woff b/public/stylesheets/fonts/fontawesome-webfont.woff index 8c1748aab..400014a4b 100644 Binary files a/public/stylesheets/fonts/fontawesome-webfont.woff and b/public/stylesheets/fonts/fontawesome-webfont.woff differ diff --git a/public/stylesheets/fonts/fontawesome-webfont.woff2 b/public/stylesheets/fonts/fontawesome-webfont.woff2 new file mode 100644 index 000000000..4d13fc604 Binary files /dev/null and b/public/stylesheets/fonts/fontawesome-webfont.woff2 differ