Merge branch 'dev_raining' of https://git.trustie.net/jacknudt/trustieforge into dev_raining
This commit is contained in:
commit
b08a8e8050
|
@ -29,6 +29,8 @@ class AtController < ApplicationController
|
|||
case type
|
||||
when "Issue"
|
||||
find_issue(id)
|
||||
whne 'TrainingTask'
|
||||
find_training_task(id)
|
||||
when 'Project'
|
||||
find_project(id)
|
||||
when 'Course'
|
||||
|
@ -69,6 +71,13 @@ class AtController < ApplicationController
|
|||
at_persons.uniq { |u| u.id }.delete_if { |u| u.id == User.current.id }
|
||||
end
|
||||
|
||||
def find_training_task(id)
|
||||
training_task = TrainingTask.find(id)
|
||||
journals = training_task.journals
|
||||
at_persons = journals.map(&:user) + training_task.project.users
|
||||
at_persons.uniq { |u| u.id }.delete_if { |u| u.id == User.current.id }
|
||||
end
|
||||
|
||||
def find_project(id)
|
||||
return [] if id.to_i<0
|
||||
at_persons = Project.find(id).users
|
||||
|
|
|
@ -88,6 +88,7 @@ class TrainingTasksController < ApplicationController
|
|||
@journal = Journal.new(:journalized => @training_task)
|
||||
respond_to do |format|
|
||||
format.html
|
||||
format.js
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -358,19 +359,19 @@ class TrainingTasksController < ApplicationController
|
|||
jour = Journal.new
|
||||
jour.user_id = User.current.id
|
||||
jour.notes = params[:notes]
|
||||
jour.journalized = @issue
|
||||
jour.journalized = @training_task
|
||||
jour.save_attachments(params[:attachments])
|
||||
jour.save
|
||||
update_user_activity(@issue.class,@issue.id)
|
||||
update_forge_activity(@issue.class,@issue.id)
|
||||
@allowed_statuses = @issue.new_statuses_allowed_to(User.current)
|
||||
update_user_activity(@training_task.class, @training_task.id)
|
||||
update_forge_activity(@training_task.class, @training_task.id)
|
||||
# @allowed_statuses = @training_task.new_statuses_allowed_to(User.current)
|
||||
@user_activity_id = params[:user_activity_id]
|
||||
@priorities = IssuePriority.active
|
||||
|
||||
respond_to do |format|
|
||||
# Issue详情单独处理
|
||||
if params[:is_issue_show]
|
||||
format.js{redirect_to issue_path(@issue)}
|
||||
format.js{ redirect_to training_task_path(@training_task) }
|
||||
else
|
||||
format.js
|
||||
end
|
||||
|
@ -397,7 +398,7 @@ class TrainingTasksController < ApplicationController
|
|||
|
||||
#对某个journ回复,显示回复框
|
||||
def reply
|
||||
@issue = Issue.find(params[:id])
|
||||
@training_task = TrainingTask.find(params[:id])
|
||||
@jour = Journal.find(params[:journal_id])
|
||||
respond_to do |format|
|
||||
format.js
|
||||
|
@ -408,30 +409,45 @@ class TrainingTasksController < ApplicationController
|
|||
def add_reply
|
||||
if User.current.logged?
|
||||
jour = Journal.find(params[:journal_id])
|
||||
@issue = Issue.find params[:id]
|
||||
@project = @issue.project
|
||||
@allowed_statuses = @issue.new_statuses_allowed_to(User.current)
|
||||
@training_task = TrainingTask.find params[:id]
|
||||
@project = @training_task.project
|
||||
# @allowed_statuses = @training_task.new_statuses_allowed_to(User.current)
|
||||
@priorities = IssuePriority.active
|
||||
new_jour = Journal.new
|
||||
new_jour.user_id = User.current.id
|
||||
new_jour.reply_id = params[:journal_id]
|
||||
new_jour.parent_id = jour.id
|
||||
new_jour.notes = params[:content]
|
||||
new_jour.journalized = @issue
|
||||
new_jour.journalized = @training_task
|
||||
new_jour.save_attachments(params[:attachments])
|
||||
# new_jour = @issue.journals.build(:user_id => User.current.id, :reply_id => params[:journal_id], :notes => params[:content], :parent_id => jour.id)
|
||||
@user_activity_id = params[:user_activity_id]
|
||||
if new_jour.save
|
||||
update_user_activity(@issue.class,@issue.id)
|
||||
update_forge_activity(@issue.class,@issue.id)
|
||||
update_user_activity(@training_task.class, @training_task.id)
|
||||
update_forge_activity(@training_task.class, @training_task.id)
|
||||
respond_to do |format|
|
||||
if params[:is_issue_show]
|
||||
format.js{redirect_to issue_path(@issue)}
|
||||
format.js{ redirect_to training_task_path(@training_task) }
|
||||
else
|
||||
format.js
|
||||
end
|
||||
end
|
||||
end
|
||||
=begin
|
||||
@journals = @training_task.journals.includes(:user, :details).reorder("#{Journal.table_name}.id desc").all
|
||||
@journals = get_no_children_comments_all @journals
|
||||
@journals.each_with_index {|j,i| j.indice = i+1}
|
||||
@journals.reject!(&:private_notes?) unless User.current.allowed_to?(:view_private_notes, @training_task.project)
|
||||
@journals.reverse! if User.current.wants_comments_in_reverse_order?
|
||||
@journal = Journal.new(:journalized => @training_task)
|
||||
respond_to do |format|
|
||||
#if params[:is_issue_show]
|
||||
# format.js{ redirect_to training_task_path(@training_task) }
|
||||
#else
|
||||
format.js
|
||||
#end
|
||||
end
|
||||
=end
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -441,7 +457,7 @@ class TrainingTasksController < ApplicationController
|
|||
# 非动态页面直接刷新,动态页面手动刷新
|
||||
def delete_journal
|
||||
@is_project = params[:is_project]
|
||||
@issue = Issue.find(params[:id])
|
||||
@training_task = TrainingTask.find(params[:id])
|
||||
begin
|
||||
forge_acts = ForgeMessage.where(:forge_message_type => "Journal", :forge_message_id => params[:journal_id])
|
||||
forge_acts.destroy_all unless forge_acts.empty?
|
||||
|
@ -456,7 +472,7 @@ class TrainingTasksController < ApplicationController
|
|||
if @user_activity_id
|
||||
format.js
|
||||
else
|
||||
format.js{ redirect_to issue_url(@issue)}
|
||||
format.js{ redirect_to training_task_path(@training_task)}
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -417,6 +417,11 @@ class UsersController < ApplicationController
|
|||
comment = @root.journals.build(:user_id => User.current.id, :reply_id => params[:reply_id], :notes => params[:reply_message], :parent_id => reply.id)
|
||||
comment.save
|
||||
@is_project = params[:is_project] if params[:is_project]
|
||||
when 'TrainingTask'
|
||||
@root = reply.training_task
|
||||
comment = @root.journals.build(:user_id => User.current.id, :reply_id => params[:reply_id], :notes => params[:reply_message], :parent_id => reply.id)
|
||||
comment.save
|
||||
@is_project = params[:is_project] if params[:is_project]
|
||||
when 'Syllabus'
|
||||
@root = Syllabus.find reply.jour_id
|
||||
options = {:notes => params[:reply_message], :reply_id => reply.user_id,:user_id => User.current.id,:m_parent_id => params[:reply_id].to_i,:m_reply_id => params[:reply_id].to_i, :root_id => reply.root_id}
|
||||
|
|
|
@ -3697,7 +3697,7 @@ def get_reply_by_type type, reply_id
|
|||
reply = OrgDocumentComment.find reply_id
|
||||
when 'News','Comment'
|
||||
reply = Comment.find reply_id
|
||||
when 'Issue'
|
||||
when 'Issue', 'TrainingTask'
|
||||
reply = Journal.find reply_id
|
||||
when 'Journal'
|
||||
reply = Journal.find reply_id
|
||||
|
|
|
@ -1,2 +1,44 @@
|
|||
module TrainingTasksHelper
|
||||
include ApplicationHelper
|
||||
include TagsHelper
|
||||
require 'iconv'
|
||||
|
||||
# Returns the textual representation of a journal details
|
||||
# as an array of strings
|
||||
def details_to_strings(details, no_html=false, options={})
|
||||
options[:only_path] = (options[:only_path] == false ? false : true)
|
||||
options[:token] = options[:token] if options[:token]
|
||||
strings = []
|
||||
values_by_field = {}
|
||||
details.each do |detail|
|
||||
|
||||
if detail.property == 'cf'
|
||||
field_id = detail.prop_key
|
||||
field = CustomField.find_by_id(field_id)
|
||||
if field && field.multiple?
|
||||
values_by_field[field_id] ||= {:added => [], :deleted => []}
|
||||
if detail.old_value
|
||||
values_by_field[field_id][:deleted] << detail.old_value
|
||||
end
|
||||
if detail.value
|
||||
values_by_field[field_id][:added] << detail.value
|
||||
end
|
||||
next
|
||||
end
|
||||
end
|
||||
strings << show_detail(detail, no_html, options)
|
||||
|
||||
end
|
||||
values_by_field.each do |field_id, changes|
|
||||
detail = JournalDetail.new(:property => 'cf', :prop_key => field_id)
|
||||
if changes[:added].any?
|
||||
detail.value = changes[:added]
|
||||
strings << show_detail(detail, no_html, options)
|
||||
elsif changes[:deleted].any?
|
||||
detail.old_value = changes[:deleted]
|
||||
strings << show_detail(detail, no_html, options)
|
||||
end
|
||||
end
|
||||
strings
|
||||
end
|
||||
end
|
||||
|
|
|
@ -23,7 +23,8 @@ class Journal < ActiveRecord::Base
|
|||
belongs_to :journalized, :polymorphic => true,:touch => true
|
||||
# added as a quick fix to allow eager loading of the polymorphic association
|
||||
# since always associated to an issue, for now
|
||||
belongs_to :issue, :foreign_key => :journalized_id,:touch => true
|
||||
belongs_to :issue, :foreign_key => :journalized_id, :touch => true
|
||||
belongs_to :training_task, :foreign_key => :journalized_id, :touch => true
|
||||
|
||||
belongs_to :user
|
||||
has_many :details, :class_name => "JournalDetail", :dependent => :delete_all
|
||||
|
@ -192,27 +193,44 @@ class Journal < ActiveRecord::Base
|
|||
def act_as_forge_message
|
||||
receivers = []
|
||||
# 直接回复
|
||||
if self.user_id != self.issue.author_id
|
||||
receivers << self.issue.author_id
|
||||
end
|
||||
if self.user_id != self.issue.assigned_to_id && self.issue.assigned_to_id != self.issue.author_id # 指派人不是自己的话,则给指派人发送
|
||||
receivers << self.issue.assigned_to_id
|
||||
end
|
||||
receivers.each do |r|
|
||||
self.forge_messages << ForgeMessage.new(:user_id => r, :project_id => self.issue.project_id, :viewed => false)
|
||||
if self.journalized_type == 'Issue'
|
||||
if self.user_id != self.issue.author_id
|
||||
receivers << self.issue.author_id
|
||||
end
|
||||
if self.user_id != self.issue.assigned_to_id && self.issue.assigned_to_id != self.issue.author_id # 指派人不是自己的话,则给指派人发送
|
||||
receivers << self.issue.assigned_to_id
|
||||
end
|
||||
receivers.each do |r|
|
||||
self.forge_messages << ForgeMessage.new(:user_id => r, :project_id => self.issue.project_id, :viewed => false)
|
||||
end
|
||||
elsif self.journalized_type == 'TrainingTask'
|
||||
if self.user_id != self.training_task.author_id
|
||||
receivers << self.training_task.author_id
|
||||
end
|
||||
receivers.each do |r|
|
||||
self.forge_messages << ForgeMessage.new(:user_id => r, :project_id => self.training_task.project, :viewed => false)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# 更新用户分数 -by zjc
|
||||
def be_user_score
|
||||
if (self.journalized_type == 'Issue')
|
||||
#新建了缺陷留言且留言不为空,不为空白
|
||||
if !self.notes.nil? && self.notes.gsub(' ','') != ''
|
||||
#协同得分加分
|
||||
UserScore.joint(:post_issue_message, self.user,self.issue.author,self, { message_id: self.id })
|
||||
update_messges_for_issue(self.user,1)
|
||||
update_messges_for_issue(self.user,2,self.issue.project)
|
||||
if !self.notes.nil? && self.notes.gsub(' ','') != ''
|
||||
#协同得分加分
|
||||
UserScore.joint(:post_issue_message, self.user,self.issue.author,self, { message_id: self.id })
|
||||
update_messges_for_issue(self.user,1)
|
||||
update_messges_for_issue(self.user,2,self.issue.project)
|
||||
end
|
||||
elsif( self.journalized_type == 'TrainingTask')
|
||||
if !self.notes.nil? && self.notes.gsub(' ','') != ''
|
||||
#协同得分加分
|
||||
UserScore.joint(:post_issue_message, self.user, self.training_task.author, self, { message_id: self.id })
|
||||
update_messges_for_issue(self.user, 1)
|
||||
update_messges_for_issue(self.user, 2, self.training_task.project)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
# 减少用户分数 -by zjc
|
||||
def down_user_score
|
||||
|
@ -237,12 +255,18 @@ class Journal < ActiveRecord::Base
|
|||
|
||||
# issue留言总数更新
|
||||
def add_journals_count
|
||||
if !self.issue.project.nil? && self.journalized_type == "Issue" && !self.issue.project.project_score.nil?
|
||||
project = self.issue.project
|
||||
project.project_score.update_attribute(:issue_journal_num, project.project_score.issue_journal_num + 1)
|
||||
if self.journalized_type == 'Issue'
|
||||
if !self.issue.project.nil? && self.journalized_type == "Issue" && !self.issue.project.project_score.nil?
|
||||
project = self.issue.project
|
||||
project.project_score.update_attribute(:issue_journal_num, project.project_score.issue_journal_num + 1)
|
||||
end
|
||||
elsif self.journalized_type == 'TrainingTask'
|
||||
if !self.training_task.project.nil? && self.journalized_type == "TrainingTask" && !self.training_task.project.project_score.nil?
|
||||
project = self.training_task.project
|
||||
project.project_score.update_attribute(:issue_journal_num, project.project_score.issue_journal_num + 1)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# 回复issue的时候,更新issue的时候
|
||||
def update_issue_time
|
||||
if self.journalized_type == "Issue"
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<meta name="keywords" content="issue,bug,tracker" />
|
||||
<%= 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','syllabus','css/moduel', 'css/user', :media => 'all' %>
|
||||
<%= 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', :media => 'all' %>
|
||||
<%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %>
|
||||
<%= javascript_heads %>
|
||||
<%= javascript_include_tag "bootstrap","avatars","new_user",'attachments','prettify','contest'%>
|
||||
|
|
|
@ -12,7 +12,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','syllabus', 'css/moduel','css/contest'%>
|
||||
<%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2','css/common','css/public', 'css/structure','prettify', 'css/courses','css/popup','css/sy_public','css/syllabus', 'css/moduel','css/contest'%>
|
||||
<%= javascript_include_tag "course","avatars","header","attachments",'prettify','contest' %>
|
||||
<!-- page specific tags -->
|
||||
<%= yield :header_tags -%>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<meta name="keywords" content="issue,bug,tracker" />
|
||||
<%= 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','syllabus','css/moduel', 'css/user', :media => 'all' %>
|
||||
<%= 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', :media => 'all' %>
|
||||
<%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %>
|
||||
<%= javascript_heads %>
|
||||
<%= javascript_include_tag "bootstrap","avatars","new_user",'attachments','prettify'%>
|
||||
|
|
|
@ -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','syllabus', 'css/moduel','css/contest'%>
|
||||
<%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2','css/common','css/public', 'css/structure','prettify', 'css/courses','css/popup','css/syllabus', 'css/moduel','css/contest'%>
|
||||
<%= javascript_include_tag "course","avatars","header","attachments",'prettify' %>
|
||||
<!-- page specific tags -->
|
||||
<%= yield :header_tags -%>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<meta name="keywords" content="issue,bug,tracker" />
|
||||
<%= 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','syllabus','css/moduel', 'css/user', :media => 'all' %>
|
||||
<%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2','css/common', 'css/structure','css/public', 'prettify','css/project','css/courses','css/popup','csws/syllabus','css/moduel', 'css/user', :media => 'all' %>
|
||||
<%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %>
|
||||
<%= javascript_heads %>
|
||||
<%= javascript_include_tag "bootstrap","avatars","new_user",'attachments','prettify'%>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<meta name="keywords" content="issue,bug,tracker" />
|
||||
<%= csrf_meta_tag %>
|
||||
<%= favicon %>
|
||||
<%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2','css/common','css/public','css/structure','css/courses','css/popup','prettify','syllabus','sy_public','css/moduel',:media => 'all'%>
|
||||
<%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2','css/common','css/public','css/structure','css/courses','css/popup','prettify','css/syllabus','css/sy_public','css/moduel',:media => 'all'%>
|
||||
<%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %>
|
||||
<%= javascript_heads %>
|
||||
<%= javascript_include_tag "bootstrap","avatars","course",'attachments','prettify','syllabus','cookie'%>
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
<%= javascript_heads %>
|
||||
<%= heads_for_theme %>
|
||||
<%= call_hook :view_layouts_base_html_head %>
|
||||
<%= stylesheet_link_tag 'css/common','css/structure', 'css/public', 'css/courses','prettify', 'css/org', 'syllabus'%>
|
||||
<%= stylesheet_link_tag 'css/common','css/structure', 'css/public', 'css/courses','prettify', 'css/org', 'css/syllabus'%>
|
||||
<%= javascript_include_tag "course","header",'prettify','contest' %>
|
||||
<!-- page specific tags -->
|
||||
<%= yield :header_tags -%>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<meta name="keywords" content="issue,bug,tracker" />
|
||||
<%= 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','syllabus','css/moduel', 'css/user', :media => 'all' %>
|
||||
<%= 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', :media => 'all' %>
|
||||
<%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %>
|
||||
<%= javascript_heads %>
|
||||
<%= javascript_include_tag "bootstrap","avatars","new_user",'attachments','prettify'%>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<meta name="keywords" content="issue,bug,tracker" />
|
||||
<%= 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','syllabus',:media => 'all' %>
|
||||
<%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2','css/common', 'css/structure','css/public', 'prettify','css/project','css/courses','css/popup','css/syllabus',:media => 'all' %>
|
||||
<%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %>
|
||||
<%= javascript_heads %>
|
||||
<%= javascript_include_tag "bootstrap","avatars","new_user",'attachments','prettify'%>
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
<%= call_hook :view_layouts_base_html_head %>
|
||||
<!-- page specific tags -->
|
||||
<%= yield :header_tags -%>
|
||||
<%= stylesheet_link_tag 'css/common','css/structure','css/public','css/popup','syllabus','sy_public', :media => 'all'%>
|
||||
<%= stylesheet_link_tag 'css/common','css/structure','css/public','css/popup','css/syllabus','css/sy_public', :media => 'all'%>
|
||||
<!-- MathJax的配置 -->
|
||||
<script type="text/javascript"
|
||||
src="/javascripts/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
|
||||
|
|
|
@ -1,11 +1,23 @@
|
|||
<% if PraiseTread.praised(activity) %>
|
||||
<a href='<%= praise_tread_praise_plus_path({:obj_id=>activity.id,:obj_type=>activity.class,:user_activity_id=>user_activity_id,:type=>type }) %>' data-remote="true" class="<%=type == 'reply'? 'fr' : 'ml15' %> likeButton" title="点赞" >
|
||||
<a href='<%= praise_tread_praise_plus_path({:obj_id => activity.id,
|
||||
:obj_type => activity.class,
|
||||
:user_activity_id => user_activity_id,
|
||||
:type => type }) %>'
|
||||
data-remote="true"
|
||||
class="<%= type == 'reply'? 'fr' : 'ml15' %> likeButton"
|
||||
title="点赞" >
|
||||
<span class="likeText">赞</span>
|
||||
<% num = activity.praise_tread_cache ? activity.praise_tread_cache.praise_num : 0 %>
|
||||
<span class="likeNum"><%= (num.nil? ? 0 : num) > 0 ? "(#{(num.nil? ? 0 : num)})" : "" %></span>
|
||||
</a>
|
||||
<% else %>
|
||||
<a href='<%= praise_tread_praise_minus_path({:obj_id=>activity.id,:obj_type=>activity.class,:user_activity_id=>user_activity_id,:type=>type }) %>' data-remote="true" class="<%=type == 'reply'? 'fr' : 'ml15' %> likeButton" title="取消点赞" >
|
||||
<a href='<%= praise_tread_praise_minus_path({:obj_id => activity.id,
|
||||
:obj_type => activity.class,
|
||||
:user_activity_id => user_activity_id,
|
||||
:type => type }) %>'
|
||||
data-remote="true"
|
||||
class="<%= type == 'reply'? 'fr' : 'ml15' %> likeButton"
|
||||
title="取消点赞" >
|
||||
<span class="likeText">已赞</span>
|
||||
<% num = activity.praise_tread_cache ? activity.praise_tread_cache.praise_num : 0 %>
|
||||
<span class="likeNum"><%= (num.nil? ? 0 : num) > 0 ? "(#{(num.nil? ? 0 : num)})" : "" %></span>
|
||||
|
|
|
@ -4,19 +4,7 @@
|
|||
</div>
|
||||
<div class="talk_txt fl">
|
||||
<p class="pro_page_tit" style="word-break:break-all;">
|
||||
<% case @training_task.tracker_id %>
|
||||
<% when 1%>
|
||||
<span class="fl" title="缺陷">【缺陷】</span>
|
||||
<% when 2%>
|
||||
<span class="fl" title="功能">【功能】</span>
|
||||
<% when 3%>
|
||||
<span class="fl" title="支持">【支持】</span>
|
||||
<% when 4%>
|
||||
<span class="fl" title="任务">【任务】</span>
|
||||
<% when 5%>
|
||||
<span class="fl" title="周报">【周报】</span>
|
||||
<% end %>
|
||||
</span> <span style="padding-left: 5px;"><%= @training_task.subject %></span></p>
|
||||
<span style="padding-left: 5px;"><%= @training_task.subject %></span></p>
|
||||
<!--<span class='<%#= "#{get_issue_priority(@training_task.priority_id)[0]} " %>'><%#= get_issue_priority(@training_task.priority_id)[1] %></span></p>-->
|
||||
<br>
|
||||
<div class="cl"></div>
|
||||
|
@ -38,8 +26,8 @@
|
|||
<% end -%>
|
||||
|
||||
<%# 附件局部刷新 %>
|
||||
<div id = "div_issue_attachment_<%=@training_task.id %>">
|
||||
<%= render :partial => 'task_attachments',:locals => {:training_task => @training_task} %>
|
||||
<div id = "div_issue_attachment_<%= @training_task.id %>">
|
||||
<%= render :partial => 'task_attachments', :locals => {:training_task => @training_task} %>
|
||||
</div>
|
||||
<!--属性-->
|
||||
<%#= render :partial => 'issues/attributes_show' %>
|
||||
|
|
|
@ -10,8 +10,8 @@
|
|||
<div class="homepagePostReplyPortrait" >
|
||||
<%= link_to image_tag(url_to_avatar(comment.user), :width => "33", :height => "33"), user_path(comment.user_id), :alt => "用户头像" %>
|
||||
</div>
|
||||
<div class="reply-content ml15" onmouseover="$('#delete_reply_<%=comment.id %>').show();" onmouseout="$('#delete_reply_<%=comment.id %>').hide();">
|
||||
<%= render :partial => 'users/news_contents', :locals => {:comment => comment, :type => 'Issue', :user_activity_id => issue.id}%>
|
||||
<div class="reply-content ml15" onmouseover="$('#delete_reply_<%= comment.id %>').show();" onmouseout="$('#delete_reply_<%= comment.id %>').hide();">
|
||||
<%= render :partial => 'users/news_contents', :locals => {:comment => comment, :type => 'TrainingTask', :user_activity_id => issue.id}%>
|
||||
|
||||
<div class="homepagePostReplyContent break_word list_style upload_img table_maxWidth" id="reply_content_<%= comment.id %>">
|
||||
<% if comment.details.any? %>
|
||||
|
@ -28,29 +28,34 @@
|
|||
<%= render :partial => "praise_tread/praise", :locals => {:activity => comment, :user_activity_id => comment.id, :type => "reply"} %>
|
||||
</span>
|
||||
<span style="position: relative" class="fr mr20">
|
||||
<%= link_to(
|
||||
l(:button_reply),
|
||||
{:controller => 'training_tasks', :action => 'reply', :user_id => comment.user_id, :id => issue.id, :journal_id => comment.id},
|
||||
:remote => true,
|
||||
:method => 'get',
|
||||
:title => l(:button_reply)) %>
|
||||
<%= link_to(l(:button_reply),
|
||||
{:controller => 'training_tasks',
|
||||
:action => 'reply',
|
||||
:user_id => comment.user_id,
|
||||
:id => @training_task.id,
|
||||
:journal_id => comment.id},
|
||||
:remote => true,
|
||||
:method => 'get',
|
||||
:title => l(:button_reply)) %>
|
||||
<span id="reply_iconup_<%= comment.id %>" class="reply_iconup02" style="display: none"> ︿</span>
|
||||
</span>
|
||||
<%= link_to(
|
||||
l(:button_delete),
|
||||
{:controller => 'training_tasks',:action => 'delete_journal', :id => issue.id, :journal_id=>comment.id},
|
||||
:method => :get,
|
||||
:remote => true,
|
||||
:id => "delete_reply_#{comment.id}",
|
||||
:class => 'fr mr20 undis',
|
||||
:data => {:confirm => l(:text_are_you_sure)},
|
||||
:title => l(:button_delete)
|
||||
<%= link_to(l(:button_delete),
|
||||
{:controller => 'training_tasks',
|
||||
:action => 'delete_journal',
|
||||
:id => @training_task.id,
|
||||
:journal_id => comment.id},
|
||||
:method => :get,
|
||||
:remote => true,
|
||||
:id => "delete_reply_#{comment.id}",
|
||||
:class => 'fr mr20 undis',
|
||||
:data => {:confirm => l(:text_are_you_sure)},
|
||||
:title => l(:button_delete)
|
||||
) if comment.user_id == User.current.id %>
|
||||
</span>
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
</div>
|
||||
<p id="reply_message_<%= comment.id%>"></p>
|
||||
<p id="reply_message_<%= comment.id %>"></p>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
</li>
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<% count = @training_task.journals.count %>
|
||||
回复<sapn class="mr15"><%= count>0 ? "(#{count})" : "" %></sapn><span style="color: #cecece;">▪</span>
|
||||
回复<span class="mr15"><%= count > 0 ? "(#{count})" : "" %></span>
|
||||
<span style="color: #cecece;">▪</span>
|
||||
<span id="praise_count_<%= @training_task.id %>">
|
||||
<%=render :partial=> "praise_tread/praise", :locals => {:activity => @training_task, :user_activity_id=> @training_task.id, :type => "activity"}%>
|
||||
<%=render :partial => "praise_tread/praise", :locals => {:activity => @training_task, :user_activity_id => @training_task.id, :type => "activity"}%>
|
||||
</span>
|
|
@ -1,4 +1,4 @@
|
|||
<% if training_task.attachments.any? %>
|
||||
<% if training_task.attachments.any? %>
|
||||
<div class="pro_pic_box mb10">
|
||||
<a href="javascript:void(0)" class="link_img fl">
|
||||
<!--显示附件、图片-->
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
<div class="ReplyToMessageContainer borderBottomNone " id="reply_to_message_<%= @jour.id %>" style="width:895px;">
|
||||
|
||||
<div class="homepagePostReplyPortrait mr15 imageFuzzy" id="reply_image_<%= @jour.id%>">
|
||||
<%= link_to image_tag(url_to_avatar(User.current), :width => "33", :height => "33"), user_path(@training_task.author_id), :alt => "用户头像" %>
|
||||
</div>
|
||||
|
||||
<div class="ReplyToMessageInputContainer" style="width:840px">
|
||||
<% if User.current.logged? %>
|
||||
<div nhname='new_message_<%= @jour.id %>' style="display:none;">
|
||||
<%= form_for('new_form', :url => add_reply_training_task_path(@training_task, :is_issue_show => true), :method => "post", :remote => true) do |f|%>
|
||||
<input type="hidden" name="journal_id" value="<%= @jour.id %>"/>
|
||||
<div nhname='toolbar_container_<%= @jour.id %>' ></div>
|
||||
<div class="cl"></div>
|
||||
<textarea placeholder="有问题或有建议,请直接给我留言吧!" style="display: none" nhname='new_message_textarea_<%= @jour.id %>' name="content"></textarea>
|
||||
<div class="cl"></div>
|
||||
<span nhname='contentmsg_<%= @jour.id %>' class="fl"></span>
|
||||
<a id="new_message_submit_btn_<%= @jour.id %>" href="javascript:void(0)" onclick="this.style.display='none'" class="blue_n_btn fr" style="display:none;margin-top:6px;">发送</a>
|
||||
<div class="cl"></div>
|
||||
<% end %>
|
||||
</div>
|
||||
<% else %>
|
||||
<%= render :partial => "users/show_unlogged" %>
|
||||
<% end %>
|
||||
<div class="cl"></div>
|
||||
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1 @@
|
|||
|
|
@ -0,0 +1,8 @@
|
|||
if($("#reply_message_<%= @jour.id %>").length > 0) {
|
||||
$("#reply_message_<%= @jour.id %>").replaceWith("<%= escape_javascript(render :partial => 'training_tasks/training_tasks_reply_ke_form') %>");
|
||||
$(function(){
|
||||
sd_create_editor_from_data(<%= @jour.id %>, null, "100%", "<%= @jour.class.name %>");
|
||||
});
|
||||
}else if($("#reply_to_message_<%= @jour.id %>").length >0) {
|
||||
$("#reply_to_message_<%= @jour.id %>").replaceWith("<p id='reply_message_<%= @jour.id %>'></p>");
|
||||
}
|
|
@ -3,13 +3,13 @@
|
|||
<%= javascript_include_tag 'create_kindeditor'%>
|
||||
<% end %>
|
||||
<script>
|
||||
sd_create_editor_from_data(<%= @training_task.id%>, null, "100%", "<%= @training_task.class.name %>");
|
||||
sd_create_editor_from_data(<%= @training_task.id %>, null, "100%", "<%= @training_task.class.name %>");
|
||||
</script>
|
||||
|
||||
<div class="mt10 mb10" id =issue_show_total"">
|
||||
<div class="banner-big f16 fontGrey3">
|
||||
任务详情
|
||||
<a href="<%= new_project_training_task_path(@project)%>" class="sy_btn_green fr" >新建</a>
|
||||
<a href="<%= new_project_training_task_path(@project) %>" class="sy_btn_green fr" >新建</a>
|
||||
</div>
|
||||
|
||||
<div class="container-big mt10" style="float:left;">
|
||||
|
@ -23,15 +23,15 @@
|
|||
<!--problem_main end-->
|
||||
<div style="clear: both;"></div>
|
||||
<div class="container-big-grey">
|
||||
<div class="topBorder" style="display: <%= @training_task.journals.count>0 ? 'none': '' %>"></div>
|
||||
<div class="topBorder" style="display: <%= @training_task.journals.count > 0 ? 'none': '' %>"></div>
|
||||
<div class="reply-banner" >
|
||||
<div class="homepagePostReplyBannerCount">
|
||||
<%=render :partial => 'reply_banner' %>
|
||||
<div class="homepagePostReplyBannerCount" id="training_task_reply_banner">
|
||||
<%= render :partial => 'reply_banner' %>
|
||||
</div>
|
||||
<div class="homepagePostReplyBannerTime"></div>
|
||||
</div>
|
||||
<div class="" id="reply_div_<%= @training_task.id %>" >
|
||||
<%= render :partial => 'issue_replies',:locals => {:issue => @training_task, :replies_all_i => 0} %>
|
||||
<%= render :partial => 'issue_replies',:locals => {:issue => @training_task, :replies_all_i => 0 } %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
// $("#div_user_issue_reply_<%#= @user_activity_id %>").html("<%#= escape_javascript(render :partial => 'projects/project_issue_reply', :locals => {:activity => @issue, :user_activity_id => @user_activity_id}) %>");
|
||||
|
||||
$("#reply_div_<%= @training_task.id %>").html("<%= escape_javascript(render :partial => 'training_tasks/issue_replies', :locals => {:issue => @training_task}) %>");
|
||||
$("#div_issue_attachment_<%=@training_task.id %>").html("<%= escape_javascript(render :partial => 'issues/issue_attachments', :locals => {:issue => @training_task}) %>");
|
||||
issue_desc_editor = KindEditor.create('#issue_description',
|
||||
{"width":"85%",
|
||||
"resizeType":0,
|
||||
"no_label":true,
|
||||
"at_id":<%= @training_task.project_id%>,
|
||||
"at_type":"Project",
|
||||
"autoHeightMode":true,
|
||||
"afterCreate":"eval(function(){ if(typeof enablePasteImg ==='function'){enablePasteImg(self);};if(typeof enableAt ==='function'){enableAt(self, \"<%= @training_task.project_id %>\", 'Project');}; this.loadPlugin('autoheight')})",
|
||||
"emotionsBasePath":'<%= Setting.host_name%>',
|
||||
"height":300,
|
||||
"allowFileManager":true,
|
||||
"uploadJson":"/kindeditor/upload",
|
||||
"fileManagerJson":"/kindeditor/filemanager"});
|
||||
$(".homepagePostReplyBannerCount").html('<%= escape_javascript(render :partial => 'reply_banner') %>');
|
||||
sd_create_editor_from_data(<%= @training_task.id %>, null, "100%", "<%= @training_task.class.name %>");
|
|
@ -1,8 +1,8 @@
|
|||
<div class="orig_cont clearfix">
|
||||
<% unless comment.parent.nil? %>
|
||||
<div>
|
||||
<%=render :partial => 'users/comment_reply', :locals => {:comment => comment.parent, :type => type, :user_activity_id => user_activity_id, :parent_id => parent_id} %>
|
||||
<%= render :partial => 'users/comment_reply', :locals => {:comment => comment.parent, :type => type, :user_activity_id => user_activity_id, :parent_id => parent_id} %>
|
||||
</div>
|
||||
<% end %>
|
||||
<%=render :partial => 'users/comment_reply_detail', :locals => {:comment => comment, :type => type, :user_activity_id => user_activity_id, :parent_id => parent_id} %>
|
||||
<%= render :partial => 'users/comment_reply_detail', :locals => {:comment => comment, :type => type, :user_activity_id => user_activity_id, :parent_id => parent_id} %>
|
||||
</div>
|
|
@ -1,7 +1,7 @@
|
|||
<div class="orig_user fl">
|
||||
<%= link_to image_tag(url_to_avatar(comment.creator_user), :width => "33", :height => "33"), user_path(comment.creator_user), :alt => "用户头像" %>
|
||||
</div>
|
||||
<div class="orig_right fl" onmouseout="$(this).find('.reply-right').hide();" onmouseover="$(this).find('.reply-right').show();">
|
||||
<div class="<%= comment.journalized_type == 'TrainingTask' ? 'new_orig_right fl' : 'orig_right fl' %>" onmouseout="$(this).find('.reply-right').hide();" onmouseover="$(this).find('.reply-right').show();">
|
||||
<%= link_to comment.creator_user.show_name, user_path(comment.creator_user), :class => "content-username" %>
|
||||
<span class="orig_area"><%= time_from_now(comment.respond_to?(:created_on) ? comment.created_on : comment.created_at) %></span>
|
||||
<div class="orig_content">
|
||||
|
@ -26,23 +26,31 @@
|
|||
<% topic = comment.root %>
|
||||
<% if !topic.locked? && authorize_for('messages', 'reply') %>
|
||||
<span class="fr mr20">
|
||||
<%= link_to(
|
||||
l(:button_reply),
|
||||
{:controller => 'users' ,:action => 'reply_to_comment', :reply_id => comment.id, :type => type, :user_activity_id => user_activity_id, :parent_id => parent_id},
|
||||
:remote => true,
|
||||
:method => 'get',
|
||||
:title => l(:button_reply)) %>
|
||||
<%= link_to(l(:button_reply),
|
||||
{:controller => 'users' ,
|
||||
:action => 'reply_to_comment',
|
||||
:reply_id => comment.id,
|
||||
:type => type,
|
||||
:user_activity_id => user_activity_id,
|
||||
:parent_id => parent_id},
|
||||
:remote => true,
|
||||
:method => 'get',
|
||||
:title => l(:button_reply)) %>
|
||||
<span id="reply_iconup_<%=comment.id %>" class="reply_iconup03" style="display: none"> ︿</span>
|
||||
</span>
|
||||
<% end %>
|
||||
<% else %>
|
||||
<span class="fr mr20">
|
||||
<%= link_to(
|
||||
l(:button_reply),
|
||||
{:controller => 'users' ,:action => 'reply_to_comment', :reply_id => comment.id, :type => type, :user_activity_id => user_activity_id, :parent_id => parent_id},
|
||||
:remote => true,
|
||||
:method => 'get',
|
||||
:title => l(:button_reply)) %>
|
||||
<%= link_to(l(:button_reply),
|
||||
{:controller => 'users',
|
||||
:action => 'reply_to_comment',
|
||||
:reply_id => comment.id,
|
||||
:type => type,
|
||||
:user_activity_id => user_activity_id,
|
||||
:parent_id => parent_id},
|
||||
:remote => true,
|
||||
:method => 'get',
|
||||
:title => l(:button_reply)) %>
|
||||
<span id="reply_iconup_<%=comment.id %>" class="reply_iconup03" style="display: none"> ︿</span>
|
||||
</span>
|
||||
<% end %>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<% parents_rely = [] %>
|
||||
<% parents_rely = get_reply_parents parents_rely, comment %>
|
||||
<% length = parents_rely.length %>
|
||||
<div id="comment_reply_<%=comment.id %>">
|
||||
<div id="comment_reply_<%= comment.id %>">
|
||||
<% if length <= 5 %>
|
||||
<%=render :partial => 'users/comment_reply', :locals => {:comment => comment.parent, :type => type, :user_activity_id => user_activity_id, :parent_id => comment.id} %>
|
||||
<% else %>
|
||||
|
|
|
@ -38,6 +38,8 @@ $("#activity_post_reply_<%= @user_activity_id%>").html("<%= escape_javascript(re
|
|||
<% else %>
|
||||
window.location.href = "<%=issue_path(@root) %>";
|
||||
<% end %>
|
||||
<% elsif @type == 'TrainingTask' %>
|
||||
window.location.href = "<%= training_task_path(@root) %>";
|
||||
<% elsif @type == 'OrgDocumentComment' %>
|
||||
<% if @user_activity_id.to_i != @root.id %>
|
||||
$("#activity_post_reply_<%= @user_activity_id %>").html("<%= escape_javascript(render :partial => 'organizations/org_document_post_reply', :locals => {:activity => @root, :user_activity_id => @user_activity_id}) %>");
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
if($("#comment_reply_<%=@parent_id %> #reply_message_<%= @reply.id%>").length > 0) {
|
||||
$("#comment_reply_<%=@parent_id %> #reply_message_<%= @reply.id%>").replaceWith("<%= escape_javascript(render :partial => 'users/reply_to_comment', :locals => {:reply => @reply}) %>");
|
||||
if($("#comment_reply_<%=@parent_id %> #reply_message_<%= @reply.id %>").length > 0) {
|
||||
$("#comment_reply_<%=@parent_id %> #reply_message_<%= @reply.id %>").replaceWith("<%= escape_javascript(render :partial => 'users/reply_to_comment', :locals => {:reply => @reply}) %>");
|
||||
$("#comment_reply_<%=@parent_id %> #reply_iconup_<%=@reply.id %>").show();
|
||||
$(function(){
|
||||
sd_create_editor_from_data(<%= @reply.id%>,null,"100%", "<%= @reply.class.to_s %>");
|
||||
sd_create_editor_from_data(<%= @reply.id %>,null,"100%", "<%= @reply.class.to_s %>");
|
||||
});
|
||||
}else if($("#comment_reply_<%=@parent_id %> #reply_to_message_<%= @reply.id%>").length >0) {
|
||||
$("#comment_reply_<%=@parent_id %> #reply_to_message_<%= @reply.id%>").replaceWith("<p id='reply_message_<%= @reply.id%>'></p>");
|
||||
$("#comment_reply_<%=@parent_id %> #reply_iconup_<%=@reply.id %>").hide();
|
||||
}else if($("#comment_reply_<%= @parent_id %> #reply_to_message_<%= @reply.id %>").length >0) {
|
||||
$("#comment_reply_<%= @parent_id %> #reply_to_message_<%= @reply.id %>").replaceWith("<p id='reply_message_<%= @reply.id %>'></p>");
|
||||
$("#comment_reply_<%= @parent_id %> #reply_iconup_<%= @reply.id %>").hide();
|
||||
}
|
|
@ -3,7 +3,7 @@
|
|||
window.location.href = url;
|
||||
}
|
||||
</script>
|
||||
<div class="mt10 mb10">
|
||||
<div class=" mb10">
|
||||
<div class="banner-big f16 fontGrey3" style="margin: 0 auto; position: relative;">
|
||||
<%= @user.id == User.current.id ? "我发布的的作业" : "TA发布的的作业" %>
|
||||
<div class="hw_more_box" >
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
window.location.href = url;
|
||||
}
|
||||
</script>
|
||||
<div class="mt10 mb10">
|
||||
<div class=" mb10">
|
||||
<div class="banner-big f16 fontGrey3" style="margin: 0 auto; position: relative;">
|
||||
<%= @user.id == User.current.id ? "我收到的的作业" : "TA收到的的作业" %>
|
||||
<div class="hw_more_box" >
|
||||
|
|
|
@ -1103,6 +1103,11 @@ RedmineApp::Application.routes.draw do
|
|||
resources :training_tasks do
|
||||
member do
|
||||
post 'complete_training_task'
|
||||
post 'add_reply'
|
||||
post 'add_journal'
|
||||
post 'add_journal_in_org'
|
||||
get 'delete_journal'
|
||||
get 'reply'
|
||||
end
|
||||
collection do
|
||||
end
|
||||
|
|
|
@ -314,4 +314,22 @@ a:hover.sy_icons_close{background: url(/images/sy/sy_icons_close.png) -40px 0px
|
|||
a.sy_icons_close02{ width:20px; height:20px; display:block; background: url(/images/sy/sy_icons_close02.png) 0 0px no-repeat; margin:8px 10px 0 0; border: none; outline: none; transition: all 0s linear;}
|
||||
a:hover.sy_icons_close02{ background: url(/images/sy/sy_icons_close02.png) -40px 0px no-repeat;}
|
||||
img.ui-datepicker-trigger { display: block; background: url(/images/public_icon.png) -31px 0 no-repeat; cursor: pointer; vertical-align: middle; margin-left: 5px; margin-top: 5px; margin-right: 5px; width: 16px;
|
||||
height: 15px; float: left;}
|
||||
height: 15px; float: left;}
|
||||
|
||||
/* 题库预览弹框 */
|
||||
.hw_popup_box{width:790px; max-height:770px; padding:15px; background:#fff;-webkit-border-radius:5px;-moz-border-radius:5px;-o-border-radius:5px;border-radius:5px;-webkit-box-shadow: 0px 0px 8px rgba(20, 124, 17, 0.5);-moz-box-shadow: 0px 0px 8px rgba(20, 124, 17, 0.5);box-shadow: 0px 0px 8px rgba(20, 124, 17, 0.5);}
|
||||
.hw_popup_top a.hw_icons_close{display:block;width:26px; height:26px;background: url(/images/hw/icons_hw.png) 0 -95px no-repeat; transition: all 0s linear;}
|
||||
.hw_popup_top a:hover.hw_icons_close{background: url(/images/hw/icons_hw.png) -41px -95px no-repeat; }
|
||||
.hw_popup_con{ width:770px; max-height:770px; margin:0 auto;}
|
||||
.hw_popup_txt{width:770px; max-height:680px; margin:15px auto;overflow:auto;}
|
||||
/* 题库发送弹框 */
|
||||
.hw_sendpopup_box{ width:460px;background:#fff;padding-bottom:15px;-webkit-border-radius:5px;-moz-border-radius:5px;-o-border-radius:5px;border-radius:5px;-webkit-box-shadow: 0px 0px 8px rgba(146, 153, 169, 0.5);-moz-box-shadow: 0px 0px 8px rgba(146, 153, 169, 0.5);box-shadow: 0px 0px 8px rgba(146, 153, 169, 0.5);}
|
||||
.hw_sendpopup_top{background:#3b94d6;height:40px;-webkit-border-radius: 5px 5px 0px 0px;-o-border-radius: 5px 5px 0px 0px;border-radius: 5px 5px 0px 0px;}
|
||||
.hw_sendpopup_top h3{ font-size:16px; color:#fff; font-weight:normal; line-height:40px; padding-left:10px;}
|
||||
a.hw_sendpopup_close{width:20px; height:20px;display:block;background: url(/images/hw/icons_hw.png) -42px 0 no-repeat;margin:10px 5px 0 0;}
|
||||
.hw_sendpopup_tishi{ border:1px solid #eee5a8; background:#faf9da; width:423px; margin:15px auto 0; height:38px; line-height:38px; color:#ff964d; padding-left:5px;}
|
||||
.hw_sendpopup_con_innner{ padding:15px; width:400px; margin:15px auto 0; border:1px solid #d3d8e7; background:#f7f9fd;}
|
||||
.hw_sendpopup_searchli{ max-height: 300px; overflow: auto; width:400px;}
|
||||
.hw_sendpopup_searchli li{ font-size:14px; margin-bottom:5px;color:#333; width:370px;}
|
||||
.hw_sendpopup_searchli li label{ margin-left:5px;}
|
||||
.hw_sendpopup_search_input{width:393px; height:28px; border:none; border:1px solid #d3d8e7; background:#fff; padding-left:5px}
|
|
@ -864,6 +864,7 @@ a.content-username:hover{ color:#297fb8;}
|
|||
.orig_content{padding:5px 0px 5px 0px;line-height:24px; color:#333; word-wrap:break-word; }
|
||||
.orig_content img {max-width:100%;}
|
||||
.orig_right{ width:90%; margin-top:5px;}
|
||||
.new_orig_right{ width:94%; margin-top:5px; }
|
||||
a.comment_ding_link{ height:24px;line-height:24px;display:inline-block;padding-left:2px;vertical-align:middle; color:#333; }
|
||||
a:hover.comment_ding_link{ color:#3b94d6;}
|
||||
.comment_ding_link span{display: inline-block;padding: 0 0px 0 8px;}
|
||||
|
|
|
@ -1,163 +0,0 @@
|
|||
/* 字体颜色 */
|
||||
.sy_cblack{ color: #333;}
|
||||
.sy_f14{ font-size: 14px;}
|
||||
.sy_f16{ font-size: 16px;}
|
||||
a:hover.sy_cgrey{ color:#ee4a1f;}
|
||||
a:hover.sy_corange{ text-decoration:underline;}
|
||||
a.sy_cblack{ color: #333;}
|
||||
a:hover.sy_cblack{color: #3b94d6;}
|
||||
a.sy_cmore{ font-size:12px; color:#888; font-weight:normal;}
|
||||
a:hover.sy_cmore{color: #ee4a1f;}
|
||||
/* 题库新增*/
|
||||
a.hw_cgreen{ color: #60b25e;}
|
||||
a:hover.hw_cgreen{ color: #49a047;}
|
||||
a.hw_cgrey{ color: #888;}
|
||||
a:hover.hw_cgrey{ color: #3b94d6;}
|
||||
a.hw_btn_green{
|
||||
color: #60b25e !important;
|
||||
border:1px solid #60b25e;
|
||||
background:#fff;
|
||||
text-align: center;
|
||||
font-size: 12px;
|
||||
padding:0 15px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
-webkit-border-radius:3px;
|
||||
-moz-border-radius:3px;
|
||||
-o-border-radius:3px;
|
||||
border-radius:3px;
|
||||
}
|
||||
a:hover.hw_btn_green,a:active.hw_btn_green{ background: #51a74f; color:#fff !important;}
|
||||
a.hw_btn_green2{
|
||||
color: #60b25e !important;
|
||||
border:1px solid #60b25e;
|
||||
background:#fff;
|
||||
text-align: center;
|
||||
font-size: 12px;
|
||||
padding:0 10px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
-webkit-border-radius:3px;
|
||||
-moz-border-radius:3px;
|
||||
-o-border-radius:3px;
|
||||
border-radius:3px;
|
||||
}
|
||||
a:hover.hw_btn_green2,a:active.hw_btn_green{ background: #51a74f; color:#fff !important;}
|
||||
a.hw_btn_grey{
|
||||
color: #888 !important;
|
||||
border:1px solid #888;
|
||||
background:#fff;
|
||||
text-align: center;
|
||||
font-size: 12px;
|
||||
padding:0 15px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
-webkit-border-radius:3px;
|
||||
-moz-border-radius:3px;
|
||||
-o-border-radius:3px;
|
||||
border-radius:3px;
|
||||
}
|
||||
.hw_icons_cir{ display:block; width:15px; height:15px; background:url(../images/hw/icons_hw.png) 0 0px no-repeat;}
|
||||
.hw_icons_lock{ display:block; width:15px; height:16px; background:url(../images/hw/icons_hw.png) 0 -90px no-repeat;}
|
||||
/* 我的作业新增*/
|
||||
a.hw_corange{ color: #ee4a1f;}
|
||||
a:hover.hw_corange{ color: #e1412b;}
|
||||
.hw_cir_nomal{display:block;display:inline-block; color:#fff; font-size:10px; padding:0 5px; background:#c1c1c1;-webkit-border-radius:3px; -moz-border-radius:3px; -o-border-radius:3px; border-radius:3px;}
|
||||
.hw_cir_lorange{ background:#f79981;}
|
||||
.hw_cir_lgreen{ background:#7ecfa2;}
|
||||
.hw_w20{ width:20px; display:block; text-align:center;}
|
||||
.hw_w30{ width:30px; display:block; text-align:center;}
|
||||
|
||||
/* 排序 */
|
||||
.sy_category{
|
||||
height: 50px;
|
||||
line-height: 50px;
|
||||
padding-left: 15px;
|
||||
border-bottom:1px solid #ddd;
|
||||
}
|
||||
.sy_category span{ float: left;}
|
||||
|
||||
/* 输入框 */
|
||||
.sy_right_box input,.sy_right_box select{
|
||||
border:1px solid #ccc;
|
||||
padding:5px;
|
||||
background:#fff;
|
||||
}
|
||||
.sy_top_con input,.sy_top_con select{
|
||||
border:1px solid #ccc;
|
||||
padding:5px;
|
||||
background:#fff;
|
||||
}
|
||||
/* 加入班级弹窗 */
|
||||
#sy_popup_box{
|
||||
width:460px;
|
||||
background:#fff;
|
||||
padding-bottom:30px;
|
||||
-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);
|
||||
}
|
||||
.sy_popup_top{
|
||||
background:#3b94d6;
|
||||
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;
|
||||
}
|
||||
.sy_popup_top h3{
|
||||
font-size:18px;
|
||||
color:#fff;
|
||||
font-weight:normal;
|
||||
line-height:40px;
|
||||
padding-left:10px;
|
||||
}
|
||||
a.sy_icons_close{
|
||||
width:20px;
|
||||
height:20px;
|
||||
display:block;
|
||||
background: url(../images/sy/sy_icons_close.png) 0 0px no-repeat;
|
||||
margin:8px 10px 0 0;
|
||||
}
|
||||
.sy_popup_con{
|
||||
margin:30px auto 0;
|
||||
font-size:14px;
|
||||
width:330px;
|
||||
}
|
||||
.sy_popup_add label{
|
||||
display:block;
|
||||
float:left;
|
||||
width:85px;
|
||||
text-align:right;
|
||||
line-height:40px;
|
||||
}
|
||||
.sy_popup_add li{
|
||||
line-height:40px;
|
||||
}
|
||||
.sy_input_txt{
|
||||
border:1px solid #dedede;
|
||||
height:36px;
|
||||
background:#fff;
|
||||
padding:0 5px;
|
||||
width:220px;
|
||||
}
|
||||
|
||||
/* 题库预览弹框 */
|
||||
.hw_popup_box{width:790px; max-height:770px; padding:15px; background:#fff;-webkit-border-radius:5px;-moz-border-radius:5px;-o-border-radius:5px;border-radius:5px;-webkit-box-shadow: 0px 0px 8px rgba(20, 124, 17, 0.5);-moz-box-shadow: 0px 0px 8px rgba(20, 124, 17, 0.5);box-shadow: 0px 0px 8px rgba(20, 124, 17, 0.5);}
|
||||
.hw_popup_top a.hw_icons_close{display:block;width:26px; height:26px;background: url(../images/hw/icons_hw.png) 0 -95px no-repeat; transition: all 0s linear;}
|
||||
.hw_popup_top a:hover.hw_icons_close{background: url(../images/hw/icons_hw.png) -41px -95px no-repeat; }
|
||||
.hw_popup_con{ width:770px; max-height:770px; margin:0 auto;}
|
||||
.hw_popup_txt{width:770px; max-height:680px; margin:15px auto;overflow:auto;}
|
||||
/* 题库发送弹框 */
|
||||
.hw_sendpopup_box{ width:460px;background:#fff;padding-bottom:15px;-webkit-border-radius:5px;-moz-border-radius:5px;-o-border-radius:5px;border-radius:5px;-webkit-box-shadow: 0px 0px 8px rgba(146, 153, 169, 0.5);-moz-box-shadow: 0px 0px 8px rgba(146, 153, 169, 0.5);box-shadow: 0px 0px 8px rgba(146, 153, 169, 0.5);}
|
||||
.hw_sendpopup_top{background:#3b94d6;height:40px;-webkit-border-radius: 5px 5px 0px 0px;-o-border-radius: 5px 5px 0px 0px;border-radius: 5px 5px 0px 0px;}
|
||||
.hw_sendpopup_top h3{ font-size:16px; color:#fff; font-weight:normal; line-height:40px; padding-left:10px;}
|
||||
a.hw_sendpopup_close{width:20px; height:20px;display:block;background: url(../images/hw/icons_hw.png) -42px 0 no-repeat;margin:10px 5px 0 0;}
|
||||
.hw_sendpopup_tishi{ border:1px solid #eee5a8; background:#faf9da; width:423px; margin:15px auto 0; height:38px; line-height:38px; color:#ff964d; padding-left:5px;}
|
||||
.hw_sendpopup_con_innner{ padding:15px; width:400px; margin:15px auto 0; border:1px solid #d3d8e7; background:#f7f9fd;}
|
||||
.hw_sendpopup_searchli{ max-height: 300px; overflow: auto; width:400px;}
|
||||
.hw_sendpopup_searchli li{ font-size:14px; margin-bottom:5px;color:#333; width:370px;}
|
||||
.hw_sendpopup_searchli li label{ margin-left:5px;}
|
||||
.hw_sendpopup_search_input{width:393px; height:28px; border:none; border:1px solid #d3d8e7; background:#fff; padding-left:5px}
|
|
@ -1,652 +0,0 @@
|
|||
/*课程大纲*/
|
||||
input.syllabus_input{
|
||||
border:none;
|
||||
width:150px;
|
||||
height:25px;
|
||||
line-height:25px;
|
||||
color:#333;
|
||||
}
|
||||
input.syllabus_input_min{
|
||||
border:none;
|
||||
width:30px;
|
||||
height:25px;
|
||||
line-height:25px;
|
||||
color:#333;
|
||||
}
|
||||
.syllabus_select{
|
||||
border:1px solid #ccc;
|
||||
margin-left:5px;
|
||||
}
|
||||
.syllabus_leftinfo {
|
||||
margin:10px 10px 0 10px;
|
||||
width:220px;
|
||||
}
|
||||
.syllabus_leftinfo li{
|
||||
line-height:25px;
|
||||
}
|
||||
.syllabus_leftinfo label{
|
||||
display:block;
|
||||
width:60px;
|
||||
text-align:right;
|
||||
float:left;
|
||||
line-height:25px;
|
||||
}
|
||||
.syllabusbox{
|
||||
position:relative;
|
||||
width: 718px;
|
||||
color: #4b4b4b;
|
||||
padding:30px 15px;
|
||||
margin-bottom: 10px;
|
||||
background: #fff;
|
||||
border: 1px solid #dddddd;
|
||||
}
|
||||
|
||||
/*课程大纲-课程列表*/
|
||||
.icon_course{ background: url(../images/syllabus/icons_syllabus.png) 0 -35px no-repeat; width:18px; height:15px; display:block;}
|
||||
.icons_sy_open{background: url(../images/syllabus/icons_syllabus.png) 0 -50px no-repeat; width:20px; height:23px; display:block; cursor:pointer; }
|
||||
.icons_sy_close{background: url(../images/syllabus/icons_syllabus.png) -26px -52px no-repeat; width:20px; height:23px; display:block; }
|
||||
.syllabus_courses_box {position:relative;}
|
||||
.icons_sy_setting{background: url(../images/syllabus/icons_syllabus.png) -51px -33px no-repeat; width:20px; height:20px; display:block; position:absolute; right:10px; top:10px; }
|
||||
.icons_sy_setting:hover{background: url(../images/syllabus/icons_syllabus.png) -25px -33px no-repeat; }
|
||||
.icons_sy_cir{background: url(../images/syllabus/icons_syllabus.png) 0px -82px no-repeat; width:15px; height:15px; display:block; position:absolute; left:-8px; top:25px;}
|
||||
.icons_sy_favorite{background: url(../images/syllabus/sy_icons_star.png) 0px 0px no-repeat; width:20px; height:20px; display:block; position:absolute; left:-10px; top:25px;}
|
||||
.icons_sy_star{background: url(../images/syllabus/sy_icons_star.png) 0px -27px no-repeat; width:20px; height:20px; display:block; position:absolute; left:-10px; top:25px;}
|
||||
.icons_sy_arrow{background: url(../images/syllabus/icons_syllabus.png) -31px -81px no-repeat; width:20px; height:20px; display:block; }
|
||||
.syllabus_h2_top{ font-size:18px; color:#333; font-weight:normal; padding:10px 15px;border-bottom:1px solid #e7e7e7; }
|
||||
.syllabus_category{ padding:10px 15px; background-color:#f6f6f6; border-bottom:1px solid #e7e7e7;}
|
||||
.syllabus_box{ width:750px; border:1px solid #e7e7e7; background-color:#fff;}
|
||||
.syllabus_courses_list{ padding:15px; border-bottom:1px solid #e7e7e7; cursor:pointer;}
|
||||
.syllabus_courses_list:hover{ background:#f6fafd;}
|
||||
.syllabus_courses_title{ font-size:16px; color:#333 !important; width:650px; font-weight:normal;white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
|
||||
.sy_p_grey{ margin-left:25px; color:#888; margin-top:5px; font-size:12px;}
|
||||
.syllabus_class_box{ padding-left:43px; background:#f6f6f6;}
|
||||
.syllabus_class_list{ padding:12px 0 12px 15px; height:44px;border-left:1px solid #e7e7e7;border-bottom:1px solid #e7e7e7; position:relative;}
|
||||
.syllabus_class_list:hover{ background:#ececec;}
|
||||
.syllabus_class_list_more{padding:8px; text-align:center;border-left:1px solid #e7e7e7;border-bottom:1px solid #e7e7e7;}
|
||||
.syllabus_class_list_more:hover{ background:#ececec;}
|
||||
.syllabus_class_list_more a{ color:#ff7e00;}
|
||||
a.syllabus_class_title{ font-size:14px; color:#333; max-width:520px; margin-bottom:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
|
||||
.syllabus_class_w{ width:650px;}
|
||||
.syllabus_class_property {font-size:12px; padding:0 5px; border-radius:3px; line-height:14px;}
|
||||
.syllabus_class_private {color:#ff4a1b; border:1px solid #ff4a1b;}
|
||||
.syllabus_class_open {color:#7dd26c; border:1px solid #7dd26c;}
|
||||
|
||||
|
||||
/*新建页面*/
|
||||
.name_input{ border:1px solid #ddd; height:16px; width:400px; background:#fff; margin-bottom:10px; padding:5px;}
|
||||
|
||||
.homepageSyllabusName {font-size:16px; color:#484848; float:left; max-width:120px;}
|
||||
.syllabusTitleTextarea {resize:none; width:120px; margin-left: 10px; height:80px; max-width:120px; max-height:80px; border:1px solid #d9d9d9; outline:none; margin:0px 0px 12px 0px;}
|
||||
|
||||
/* */
|
||||
/* 课程大纲头部 */
|
||||
.sy_top{
|
||||
background:#f5f5f5;
|
||||
width: 1000px;
|
||||
height: 138px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.sy_top_con{
|
||||
background: url(../images/sy/bg_sy.jpg) no-repeat;
|
||||
width: 1000px;
|
||||
margin: 0 auto;
|
||||
height: 108px;
|
||||
text-align:center;
|
||||
padding-top: 30px;
|
||||
}
|
||||
.sy_top_con h2{
|
||||
font-size: 30px;
|
||||
color: #cc3433;
|
||||
font-weight:normal;
|
||||
}
|
||||
.sy_top_con p{
|
||||
font-size: 18px;
|
||||
color: #333;
|
||||
}
|
||||
/* 课程大纲tab */
|
||||
.sy_content{
|
||||
width: 1000px;
|
||||
margin: 0 auto;
|
||||
margin-top:12px;
|
||||
}
|
||||
.sy_con_l{
|
||||
width: 785px;
|
||||
border: 1px solid #e7e7e7;
|
||||
background: #fff;
|
||||
}
|
||||
#sy_tab_nav {
|
||||
border-bottom:1px solid #e7e7e7;
|
||||
height:50px;
|
||||
background: #f8f8f8;
|
||||
}
|
||||
#sy_tab_nav li {
|
||||
float:left;
|
||||
padding:0px 50px;
|
||||
text-align:center;
|
||||
height: 47px;
|
||||
line-height: 47px;
|
||||
}
|
||||
#sy_tab_nav li a{
|
||||
font-size:16px;
|
||||
color: #333;
|
||||
}
|
||||
.sy_tab_hover {
|
||||
border-top:3px solid #ee4a1f;
|
||||
border-bottom:1px solid #fff;
|
||||
background: #fff;
|
||||
}
|
||||
.sy_tab_nomal {
|
||||
border-bottom:none;
|
||||
}
|
||||
/* 课程大纲 */
|
||||
.sy_classlist{
|
||||
padding: 15px 15px;
|
||||
border-bottom: 1px dashed #e6e6e6;
|
||||
}
|
||||
.sy_classlist_title{
|
||||
font-size: 16px;
|
||||
font-weight: normal;
|
||||
margin-bottom: 5px;
|
||||
max-width:600px;
|
||||
overflow:hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow:ellipsis;
|
||||
}
|
||||
.sy_classlist_title a:hover{ color:#333;}
|
||||
.sy_con_r{
|
||||
width:205px;
|
||||
}
|
||||
.sy_right_box{
|
||||
border:1px solid #e7e7e7;
|
||||
border-bottom:none;
|
||||
background:#fff;
|
||||
width:205px;
|
||||
padding-bottom:15px;
|
||||
}
|
||||
.sy_right_title{
|
||||
border-left:5px solid #ee4a1f;
|
||||
height:30px;
|
||||
line-height:30px;
|
||||
font-size:16px;
|
||||
padding-left:10px;
|
||||
margin-top:5px;
|
||||
}
|
||||
.sy_info label{
|
||||
width:70px;
|
||||
text-align:right;
|
||||
display:block;
|
||||
float:left;
|
||||
margin-right:5px;
|
||||
}
|
||||
.sy_info input,.sy_info select{
|
||||
width:105px;
|
||||
border:1px solid #e7e7e7;
|
||||
margin-bottom:5px;
|
||||
}
|
||||
.sy_info select{
|
||||
width:115px;
|
||||
}
|
||||
.sy_info li{
|
||||
height:30px;
|
||||
line-height:30px;
|
||||
}
|
||||
input.sy_info_input_min{
|
||||
width:30px;
|
||||
}
|
||||
.sy_teachers_list{
|
||||
margin:10px;
|
||||
}
|
||||
.sy_teachers_list li{
|
||||
padding:10px 0;
|
||||
}
|
||||
.sy_teachers_img{
|
||||
width:60px;
|
||||
height:60px;
|
||||
border:3px solid #e6e6e6;
|
||||
-webkit-border-radius:50px;
|
||||
-moz-border-radius:50px;
|
||||
-o-border-radius:50px;
|
||||
border-radius:50px;
|
||||
}
|
||||
a.sy_teachers_name{
|
||||
color: #000;
|
||||
display:block;
|
||||
width:95px;
|
||||
font-size:16px;
|
||||
margin:5px 0 10px;
|
||||
}
|
||||
a:hover.sy_teachers_name{
|
||||
color: #ee4a1f;
|
||||
}
|
||||
.sy_teachers_span{
|
||||
font-size:12px;
|
||||
color:#fff;
|
||||
width:150px;
|
||||
padding:2px 5px;
|
||||
background:#ffb400;
|
||||
-webkit-border-radius:50px;
|
||||
-moz-border-radius:50px;
|
||||
-o-border-radius:50px;
|
||||
border-radius:50px;
|
||||
}
|
||||
/* 班级主页 */
|
||||
.sy_class_infobox{
|
||||
padding:15px;
|
||||
background:#fff;
|
||||
margin:12px auto 0;
|
||||
width:968px;
|
||||
border:1px solid #e5e5e5;
|
||||
position: relative;
|
||||
}
|
||||
.sy_class_setting {
|
||||
position:absolute;
|
||||
width:20px;
|
||||
height:20px;
|
||||
right:10px;
|
||||
top:10px;
|
||||
}
|
||||
.sy_class_setting ul li:hover ul {
|
||||
display:block;
|
||||
}
|
||||
.sy_class_setting_icon {
|
||||
background:url(../images/homepage_icon.png) -93px -5px no-repeat;
|
||||
width:20px;
|
||||
height:20px;
|
||||
}
|
||||
.sy_class_setting_text {
|
||||
width:75px;
|
||||
text-align: center;
|
||||
line-height:2;
|
||||
font-size:12px;
|
||||
color:#616060;
|
||||
background-color:#ffffff;
|
||||
border:1px solid #eaeaea;
|
||||
border-radius:3px;
|
||||
position:absolute;
|
||||
left:-60px;
|
||||
top:20px;
|
||||
padding:5px 0px;
|
||||
display:none;
|
||||
box-shadow: 0px 2px 8px rgba(146, 153, 169, 0.5);
|
||||
}
|
||||
.sy_class_setting_icon:hover {
|
||||
background:url(../images/homepage_icon.png) -93px -44px no-repeat;
|
||||
}
|
||||
a.sy_class_option {
|
||||
color:#616060;
|
||||
display:block;
|
||||
width:55px;
|
||||
padding:0px 10px;
|
||||
}
|
||||
a.sy_class_option:hover {
|
||||
color:#fff;
|
||||
background-color:#3b94d6;
|
||||
}
|
||||
|
||||
.sy_class_logo{
|
||||
width:96px;
|
||||
height:96px;
|
||||
}
|
||||
.sy_class_id{
|
||||
width:94px;
|
||||
height:70px;
|
||||
border:1px solid #f1f1f1;
|
||||
background:#fff;
|
||||
text-align:center;
|
||||
padding-top:24px;
|
||||
}
|
||||
.sy_class_id p{
|
||||
font-size:16px;
|
||||
color:#333;
|
||||
}
|
||||
.sy_class_title{
|
||||
font-size: 18px;
|
||||
font-weight: normal;
|
||||
margin-bottom: 5px;
|
||||
max-width:650px;
|
||||
overflow:hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow:ellipsis;
|
||||
}
|
||||
.icon_si{
|
||||
display:block;
|
||||
width:30px;
|
||||
height:22px;
|
||||
background:url(../images/sy/icons_sy.png) 0 -452px no-repeat;
|
||||
color:#fff;
|
||||
font-size:12px;
|
||||
padding-left:10px;
|
||||
line-height: 22px;
|
||||
}
|
||||
.hw_icon_private{
|
||||
display:block;
|
||||
width:30px;
|
||||
height:22px;
|
||||
background:url(../images/sy/icons_sy.png) 0 -458px no-repeat;
|
||||
color:#fff;
|
||||
font-size:12px;
|
||||
padding-left:10px;
|
||||
line-height: 22px;
|
||||
}
|
||||
.hw_icon_open{
|
||||
display:block;
|
||||
width:30px;
|
||||
height:22px;
|
||||
background:url(../images/sy/icons_sy.png) 0 -436px no-repeat;
|
||||
color:#fff;
|
||||
font-size:12px;
|
||||
padding-left:10px;
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
.sy_class_titbox{ padding-top:5px; }
|
||||
a.sy_btn_orange{
|
||||
display:block;
|
||||
border:1px solid #ee4a1f;
|
||||
background:#fff url(../images/sy/icons_sy.png) 8px -548px no-repeat;
|
||||
color:#ee4a1f;
|
||||
text-align:center;
|
||||
height:26px;
|
||||
line-height:26px;
|
||||
width:60px;
|
||||
-webkit-border-radius:3px;
|
||||
-moz-border-radius:3px;
|
||||
-o-border-radius:3px;
|
||||
border-radius:3px;
|
||||
padding-left:20px;
|
||||
}
|
||||
a:hover.sy_btn_orange{
|
||||
border:1px solid #fff;
|
||||
background:#ee4a1f url(../images/sy/icons_sy.png) 8px -516px no-repeat;
|
||||
color:#fff;
|
||||
}
|
||||
/* 班级主页左侧导航 */
|
||||
.sy_class_leftnav{ width:240px;}
|
||||
.accordion li > a {
|
||||
display: block;
|
||||
padding: 0 10px 0 40px;
|
||||
height:45px;
|
||||
line-height:49px;
|
||||
color: #555;
|
||||
font-size:14px;
|
||||
background: #f8f8f8;
|
||||
border:1px solid #e5e5e5;
|
||||
border-bottom:none;
|
||||
}
|
||||
.accordion > li:hover > a{
|
||||
color: #ee4a1f;
|
||||
background: #fff;
|
||||
}
|
||||
.sub-menu > li:hover > a{
|
||||
color: #ee4a1f;
|
||||
background: #fff;
|
||||
}
|
||||
.sub-menu > li > a.active {
|
||||
color: #ee4a1f;
|
||||
background: #fff;
|
||||
border:1px solid #e5e5e5;
|
||||
border-left:3px solid #ee4a1f;
|
||||
border-bottom:none;
|
||||
}
|
||||
.accordion > li:target > a,
|
||||
.accordion > li > a.active {
|
||||
color: #ee4a1f;
|
||||
background: #fff;
|
||||
border:1px solid #e5e5e5;
|
||||
border-left:3px solid #ee4a1f;
|
||||
border-bottom:none;
|
||||
}
|
||||
.accordion li{ position:relative;}
|
||||
|
||||
.accordion li > a span {
|
||||
margin-top:15px;
|
||||
font-size:11px;
|
||||
padding: 0 10px;
|
||||
background: #eee;
|
||||
-webkit-border-radius: 15px;
|
||||
-moz-border-radius: 15px;
|
||||
border-radius: 15px;
|
||||
margin-left:10px;
|
||||
color: #888;
|
||||
}
|
||||
.accordion > li:hover > a span,
|
||||
.accordion > li:target > a span,
|
||||
.accordion > li > a.active span {
|
||||
margin-left:10px;
|
||||
color: #888;
|
||||
background: #ddd;
|
||||
}
|
||||
/* Images */
|
||||
.accordion > li > a:before {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
content: '';
|
||||
width: 24px;
|
||||
height: 50px;
|
||||
margin: 4px 8px;
|
||||
background-repeat: no-repeat;
|
||||
background-image: url(../images/sy/icons_sy.png);
|
||||
background-position: 5px 13px;
|
||||
}
|
||||
.accordion li.sy_icons_game > a:before { background-position: 5px -725px; }
|
||||
.accordion li.sy_icons_game:hover > a:before,
|
||||
.accordion li.sy_icons_game:target > a:before,
|
||||
.accordion li.sy_icons_game > a.active:before { background-position: -25px -725px; }
|
||||
|
||||
.accordion li.sy_icons_index > a:before { background-position: 5px 13px; }
|
||||
.accordion li.sy_icons_index:hover > a:before,
|
||||
.accordion li.sy_icons_index:target > a:before,
|
||||
.accordion li.sy_icons_index > a.active:before { background-position: -23px 13px; }
|
||||
|
||||
.accordion li.sy_icons_boards > a:before { background-position: 5px -23px; }
|
||||
.accordion li.sy_icons_boards:hover > a:before,
|
||||
.accordion li.sy_icons_boards:target > a:before,
|
||||
.accordion li.sy_icons_boards > a.active:before { background-position: -23px -23px; }
|
||||
|
||||
.accordion li.sy_icons_more > a:before { background-position: 5px -60px; }
|
||||
.accordion li.sy_icons_more:hover > a:before,
|
||||
.accordion li.sy_icons_more:target > a:before,
|
||||
.accordion li.sy_icons_more > a.active:before { background-position: -23px -60px; }
|
||||
|
||||
.accordion li.sy_icons_hwork > a:before { background-position: 5px -100px; }
|
||||
.accordion li.sy_icons_hwork:hover > a:before,
|
||||
.accordion li.sy_icons_hwork:target > a:before,
|
||||
.accordion li.sy_icons_hwork > a.active:before { background-position: -23px -100px; }
|
||||
|
||||
.accordion li.sy_icons_news > a:before { background-position: 5px -134px; }
|
||||
.accordion li.sy_icons_news:hover > a:before,
|
||||
.accordion li.sy_icons_news:target > a:before,
|
||||
.accordion li.sy_icons_news > a.active:before { background-position: -23px -134px; }
|
||||
|
||||
.accordion li.sy_icons_files > a:before { background-position: 5px -172px; }
|
||||
.accordion li.sy_icons_files:hover > a:before,
|
||||
.accordion li.sy_icons_files:target > a:before,
|
||||
.accordion li.sy_icons_files > a.active:before { background-position: -23px -172px; }
|
||||
|
||||
.accordion li.sy_icons_feedback > a:before { background-position: 5px -214px; }
|
||||
.accordion li.sy_icons_feedback:hover > a:before,
|
||||
.accordion li.sy_icons_feedback:target > a:before,
|
||||
.accordion li.sy_icons_feedback > a.active:before { background-position: -23px -214px;}
|
||||
|
||||
.accordion li.sy_icons_poll > a:before { background-position: 5px -251px; }
|
||||
.accordion li.sy_icons_poll:hover > a:before,
|
||||
.accordion li.sy_icons_poll:target > a:before,
|
||||
.accordion li.sy_icons_poll > a.active:before { background-position: -23px -251px; }
|
||||
|
||||
.accordion li.sy_icons_exercise > a:before { background-position: 5px -290px; }
|
||||
.accordion li.sy_icons_exercise:hover > a:before,
|
||||
.accordion li.sy_icons_exercise:target > a:before,
|
||||
.accordion li.ssy_icons_exercise > a.active:before { background-position: -23px -290px; }
|
||||
|
||||
.accordion li.sy_icons_group > a:before { background-position: 7px -570px; }
|
||||
.accordion li.sy_icons_group:hover > a:before,
|
||||
.accordion li.sy_icons_group:target > a:before,
|
||||
.accordion li.sy_icons_group > a.active:before { background-position: -23px -570px; }
|
||||
|
||||
.accordion li.sy_icons_st > a:before { background-position: 5px -330px; }
|
||||
.accordion li.sy_icons_st:hover > a:before,
|
||||
.accordion li.sy_icons_st:target > a:before,
|
||||
.accordion li.sy_icons_st > a.active:before { background-position: -23px -330px; }
|
||||
/* Sub Menu */
|
||||
.sub-menu li a {
|
||||
color: #797979;
|
||||
background: #f8f8f8;
|
||||
height:39px;
|
||||
line-height:39px;
|
||||
font-size:14px;
|
||||
}
|
||||
.sub-menu li:last-child a {}
|
||||
.accordion li > .sub-menu {
|
||||
display: none;
|
||||
}
|
||||
.accordion li:target > .sub-menu {
|
||||
display: block;
|
||||
}
|
||||
.accordion > li > a.sy_class_add:before{background-image:none;}
|
||||
.accordion > li > a.sy_class_add {
|
||||
padding:0;
|
||||
border:none;
|
||||
display:block;
|
||||
position: absolute;
|
||||
top:15px;
|
||||
right:10px;
|
||||
width:20px;
|
||||
height:20px;
|
||||
background: url(../images/sy/icons_sy.png) 0px -487px no-repeat;
|
||||
}
|
||||
.sub-menu > li > a.sy_class_add {
|
||||
padding:0;
|
||||
border:none;
|
||||
display:block;
|
||||
position: absolute;
|
||||
top:15px;
|
||||
right:10px;
|
||||
width:20px;
|
||||
height:20px;
|
||||
background: url(../images/sy/icons_sy.png) 0px -487px no-repeat;
|
||||
}
|
||||
.accordion li .sy_class_add:hover {
|
||||
background: url(../images/sy/icons_sy.png) -32px -487px no-repeat;
|
||||
padding:0;
|
||||
border:none;
|
||||
}
|
||||
|
||||
.sy_class_leftbox{ width:208px; background: #fff; border: 1px solid #e5e5e5; border-bottom: none; padding:10px 15px;}
|
||||
.sy_class_users{ width:50px; margin:0 15px 10px 4px; }
|
||||
.sy_class_users span{ display:block; height:20px;width:50px; overflow:hidden;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
|
||||
.sy_class_users img{
|
||||
width:40px;
|
||||
height:40px;
|
||||
margin:5px 0;
|
||||
border: 3px solid #fff;
|
||||
-webkit-border-radius:50px;
|
||||
-moz-border-radius:50px;
|
||||
-o-border-radius:50px;
|
||||
border-radius:50px;
|
||||
}
|
||||
.sy_class_users img:hover{border: 3px solid #e6e6e6;}
|
||||
.sy_class_leftbox h3{
|
||||
height:30px;
|
||||
line-height:30px;
|
||||
font-size:14px;
|
||||
font-weight:normal;
|
||||
}
|
||||
.sy_sq_orange{ display: block;width: 15px; height: 15px; background:#f79981; color: #fff; text-align:center; line-height: 15px;}
|
||||
a.sy_class_ltitle{font-size: 14px; color:#888; }
|
||||
a:hover.sy_class_ltitle{ color:#333;}
|
||||
.sy_cir_grey{
|
||||
font-size:11px;
|
||||
padding: 0 10px;
|
||||
background: #eee;
|
||||
-webkit-border-radius: 15px;
|
||||
-moz-border-radius: 15px;
|
||||
border-radius: 15px;
|
||||
color: #888;
|
||||
}
|
||||
.sy_class_lclass li{ padding:10px 0; border-bottom: 1px dashed #ebebeb;}
|
||||
.sy_class_lclass li:last-child { border-bottom:none;}
|
||||
.sy_class_r{ width: 748px; background: #fff; border: 1px solid #e5e5e5;}
|
||||
|
||||
/* 题库tab */
|
||||
.hw_content{ width: 998px; margin: 0 auto; background:#fff; border:1px solid #e1e1e1; position:relative; }
|
||||
#hw_tab_nav {border-bottom:1px solid #e7e7e7;height:50px;background: #f8f8f8; }
|
||||
#hw_tab_nav li {float:left; padding:0px 50px;text-align:center;height: 47px;line-height: 47px; }
|
||||
#hw_tab_nav li a{font-size:16px;}
|
||||
.hw_tab_hover {border-top:3px solid #60b25e;border-bottom:1px solid #fff; background: #fff;}
|
||||
.hw_tab_hover a{ color:#60b25e !important; }
|
||||
.hw_tab_nomal {border-bottom:none; }
|
||||
.hw_tab_nomal a{ color:#333;}
|
||||
.hw_more_box {position:absolute; width:24px; height:15px; right:15px; top:15px;}
|
||||
.hw_more_box ul li:hover ul {display:block; }
|
||||
.hw_more_icons {background:url(../images/hw/icons_hw.png) 0px -30px no-repeat; width:24px; height:15px; }
|
||||
.hw_more_icons:hover {background:url(../images/hw/icons_hw.png) -40px -30px no-repeat;}
|
||||
.hw_more_txt {width:75px; font-size:12px; color:#616060; background-color:#fff; border:1px solid #eaeaea; border-radius:3px; position:absolute; left:-40px; top:15px; padding:5px 0px; display:none; box-shadow: 0px 0px 8px rgba(146, 153, 169, 0.5); z-index:1000;}
|
||||
.hw_more_txt li a.hw_more_li {font-size:12px;color:#888; display:block; width:75px;height:24px;line-height:24px;text-align:center; }
|
||||
.hw_more_txt li a.hw_more_li:hover {background-color:#f0f0f0;}
|
||||
.hw_search_box span.hw_btn_search{display:block; width:20px; height:20px; background:url(../images/hw/icons_hw.png) 0 -57px no-repeat; position:absolute; right:5px; top:15px;}
|
||||
/*.hw_search_box a:hover.hw_btn_search{background:url(../images/hw/icons_hw.png) -40px -57px no-repeat;}*/
|
||||
.hw_list_classname{ width:300px; overflow:hidden; display:block;overflow:hidden;white-space: nowrap; text-overflow:ellipsis;}
|
||||
.syllabus_course_name{ width:450px; overflow:hidden; display:block;overflow:hidden;white-space: nowrap; text-overflow:ellipsis;}
|
||||
.hw_list_teachername{ width:80px; overflow:hidden; display:block;overflow:hidden;white-space: nowrap; text-overflow:ellipsis;}
|
||||
/* 测试集显示 */
|
||||
.hw_popup_testtable{background:#fff; color:#888888; margin:10px 0; border-right:1px solid #e7e7e7; border-bottom:1px solid #e7e7e7;}
|
||||
.hw_popup_testtable tr td{ width:47%; padding:10px; color:#888; border-left:1px solid #e7e7e7; border-top:1px solid #e7e7e7; }
|
||||
.hw_popup_testtable tr td.test_td_min{ width:5%; color:#888;}
|
||||
.hw_popup_testtable tr td.test_td_title{ text-align:center; color:#888888;}
|
||||
|
||||
/* 我的作业 */
|
||||
.hw_classname{ width:180px; overflow:hidden; display:block;overflow:hidden;white-space: nowrap; text-overflow:ellipsis;}
|
||||
.hw_tab_top{ height: 50px; line-height: 50px; padding-left: 15px; border-bottom:1px solid #ddd; border-left:3px solid #3b94d6; }
|
||||
|
||||
/*20160918教师团队*/
|
||||
.sy_new_tablebox{ padding:15px; padding-bottom:0;}
|
||||
.sy_new_table{ width:100%; background:#fff; border:1px solid #e5e5e5;}
|
||||
.sy_new_table thead tr{ height:40px; line-height:40px;}
|
||||
.sy_new_table thead tr th{ border-bottom:1px solid #e5e5e5;}
|
||||
.sy_new_table tbody tr:hover{ background:#f5f5f5;}
|
||||
.sy_new_table tbody tr td{ height:40px; line-height:40px; border-bottom:1px dashed #e5e5e5; font-weight:normal; color:#888; text-align: center}
|
||||
.sy_new_table tbody tr:last-child{ height:40px;}
|
||||
.sy_new_table tbody tr:last-child td{ border-bottom:none;}
|
||||
.sy_new_tchlist li{ height:30px; line-height:30px;}
|
||||
.sy_new_search{-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;border-radius:3px; border:1px solid #d3d3d3; background:#fff; padding-left:5px; color:#888; height:32px; width:370px;box-shadow: inset 0px 0px 3px #dcdcdc; }
|
||||
.sy_new_tchbox{ background:#f5f5f5; padding:15px; margin:15px; margin-top:0px;}
|
||||
.sy_new_namebox{ width:180px; overflow:hidden;}
|
||||
.sy_new_name{ display:block;max-width:120px; overflow:hidden;white-space: nowrap; text-overflow:ellipsis;}
|
||||
.sy_new_long_name{ display:block;width:180px; overflow:hidden;white-space: nowrap; text-overflow:ellipsis;}
|
||||
.mt12{ margin-top:12px;}
|
||||
|
||||
/*20160919分班*/
|
||||
.sy_class_nobg{ background-color:#eaebec;}
|
||||
.sy_class_r_head{ border: 1px solid #e7e7e7; background-color: #fff; padding:10px 15px; position: relative;}
|
||||
.sy_class_r_head h3{ font-size: 14px; color: #333;}
|
||||
.sy_class_r_more{ display: block;}
|
||||
.sy_class_fenban{border: 1px solid #e7e7e7; background-color: #fff; padding:15px;}
|
||||
.sy_fenban_input{ height: 28px; background-color: #fff; border: 1px solid #d1d1d1;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;border-radius:3px; border:1px solid #d3d3d3;padding-left:5px; color:#888; box-shadow: inset 0px 0px 5px #dcdcdc; }
|
||||
.sy_icons_tips{padding:9px;background:url(../images/sy/sy_icons02.png) 0 -66px no-repeat;}
|
||||
.sy_sortupbtn{display: inline-block; width:15px; height:18px;background:url(../images/sy/sy_icons02.png) 0 -39px no-repeat;}
|
||||
.sy_sortdownbtn{display: inline-block; width:15px; height:18px;background:url(../images/sy/sy_icons02.png) -22px -39px no-repeat;}
|
||||
.sy_fenban_list{-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;border-radius:3px; border:1px solid #d2d8e6; padding:5px 10px;background: #f8f9fd}
|
||||
.sy_fenban_list a{ color:#3b94d6;}
|
||||
.sy_fenban_list a:hover{ color:#2788d0;}
|
||||
.sy_class_users_st{ width:30px; }
|
||||
.sy_class_users_st_name{ display: inline-block;width:70px; overflow:hidden;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
|
||||
.sy_class_users_st_num{ display: block;width:90px; overflow:hidden;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
|
||||
.sy_class_users_st img{ width:30px;height:30px; border: 1px solid #fff;-webkit-border-radius:50px;-moz-border-radius:50px;-o-border-radius:50px;border-radius:50px;}
|
||||
.sy_fenban_select{height: 28px; background-color: #fff; border: 1px solid #d1d1d1;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;border-radius:3px; border:1px solid #d3d3d3;padding-left:5px; color:#888; box-shadow: inset 0px 0px 5px #dcdcdc; }
|
||||
.sy_new_table_width tr th.sy_th10{ width: 10%; }
|
||||
.sy_new_table_width tr th.sy_th0{ width: 12%; }
|
||||
.sy_new_table_width tr th.sy_th1{ width: 12.5%; }
|
||||
.sy_new_table_width tr th.sy_th15{ width: 15%; }
|
||||
.sy_new_table_width tr th.sy_th6{ width: 6%;}
|
||||
.sy_new_table_width tr th.sy_th3{ width: 3%;}
|
||||
.sy_new_table_width tr th.sy_th13{ width: 13%;}
|
||||
.sy_fenban_tap{ cursor: pointer; position: relative;}
|
||||
.sy_fenban_tap:hover .sy_fenban_show{ display: block;}
|
||||
.sy_fenban_show{ width:140px; z-index: 999;text-align: center; line-height:2.0; font-size:12px; font-weight: normal;color:#888;background-color:#fff; border:1px solid #eaeaea;border-radius:5px;position:absolute;left:20px; top:30px;padding:5px 0px;display:none; box-shadow: 0px 2px 8px rgba(146, 153, 169, 0.5);}
|
||||
.sy_tips_box{ position: relative; cursor: pointer;}
|
||||
.sy_tips_box:hover .sy_tips_box_inner{ display: block;}
|
||||
.sy_tips_box_inner{ position: absolute;line-height: 2.0;padding: 5px 10px; white-space: nowrap; background-color: #fff; left:30px; top: -5px; box-shadow: 0px 2px 8px rgba(146, 153, 169, 0.5);}
|
||||
.sy_tips_box_inner span { display: block; border-width: 10px;position: absolute;top: 15px; left: -18px; border-style: dashed solid dashed dashed;border-color: transparent #fff transparent transparent;font-size: 0;line-height: 0;}
|
||||
.sy_tips_box_inner em { display: block; border-width: 11px;position: absolute;top: 42px; left: -23px; border-style: dashed solid dashed dashed;border-color: transparent #eaeaea transparent transparent;font-size: 0;line-height: 0;}
|
||||
|
Loading…
Reference in New Issue