diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 57e365aff..2942ee598 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -1,3 +1,4 @@ +#encoding: utf-8 class CoursesController < ApplicationController # layout 'base_courses' include CoursesHelper @@ -436,6 +437,73 @@ class CoursesController < ApplicationController def create cs = CoursesService.new @course = cs.create_course(params,User.current)[:course] + if params[:copy_course] + copy_course = Course.find params[:copy_course].to_i + @course.update_attributes(:open_student => copy_course.open_student, :publish_resource => copy_course.publish_resource) + if params[:checkAll] + attachments = copy_course.attachments + attachments.each do |attachment| + attach_copied_obj = attachment.copy + attach_copied_obj.tag_list.add(attachment.tag_list) # tag关联 + attach_copied_obj.container = @course + attach_copied_obj.created_on = Time.now + attach_copied_obj.author_id = User.current.id + attach_copied_obj.copy_from = attachment.copy_from.nil? ? attachment.id : attachment.copy_from + if attach_copied_obj.attachtype == nil + attach_copied_obj.attachtype = 4 + end + attach_copied_obj.save + update_quotes attach_copied_obj + end + elsif params[:course_attachment_type] + copy_attachments = [] + params[:course_attachment_type].each do |type| + case type + when "1" + tag_name = l(:label_courseware) + when "2" + tag_name = l(:label_software) + when "3" + tag_name = l(:label_media) + when "4" + tag_name = l(:label_code) + when "6" + tag_name = "论文" + else + tag_name = "" + end + if tag_name == "" + tag_attachments = copy_course.attachments.select{|attachment| + !attachment.tag_list.include?('课件') && + !attachment.tag_list.include?('软件') && + !attachment.tag_list.include?('媒体') && + !attachment.tag_list.include?('代码') && + !attachment.tag_list.include?('论文') } + else + tag_attachments = copy_course.attachments.select{|attachment| attachment.tag_list.include?(tag_name)} + end + tag_attachments.each do |attach| + next if copy_attachments.include?(attach) + copy_attachments << attach + end + end + unless copy_attachments.blank? + copy_attachments.each do |c_attach| + attach_copied_obj = c_attach.copy + attach_copied_obj.tag_list.add(c_attach.tag_list) # tag关联 + attach_copied_obj.container = @course + attach_copied_obj.created_on = Time.now + attach_copied_obj.author_id = User.current.id + attach_copied_obj.copy_from = c_attach.copy_from.nil? ? c_attach.id : c_attach.copy_from + if attach_copied_obj.attachtype == nil + attach_copied_obj.attachtype = 4 + end + attach_copied_obj.save + update_quotes attach_copied_obj + end + end + end + end if @course respond_to do |format| flash[:notice] = l(:notice_successful_create) @@ -751,6 +819,11 @@ class CoursesController < ApplicationController #param id:已有课程ID def copy_course if @course + @new_course = Course.new + respond_to do |format| + format.js + end +=begin @new_course = Course.new @course.attributes @new_course.tea_id = User.current.id @new_course.created_at = DateTime.now @@ -769,6 +842,7 @@ class CoursesController < ApplicationController @new_course.course_infos << course redirect_to settings_course_url @new_course end +=end else render_404 end @@ -829,6 +903,33 @@ class CoursesController < ApplicationController end private + def update_quotes attachment + if attachment.copy_from + attachments = Attachment.find_by_sql("select * from attachments where copy_from = #{attachment.copy_from} or id = #{attachment.copy_from}") + else + attachments = Attachment.find_by_sql("select * from attachments where copy_from = #{attachment.id} or id = #{attachment.copy_from}") + end + attachment.quotes = get_qute_number attachment + attachment.save + attachments.each do |att| + att.quotes = attachment.quotes + att.save + end + end + + def get_qute_number attachment + if attachment.copy_from + result = Attachment.find_by_sql("select count(*) as number from attachments where copy_from = #{attachment.copy_from}") + else + result = Attachment.find_by_sql("select count(*) as number from attachments where copy_from = #{attachment.id}") + end + if result.nil? || result.count <= 0 + return 0 + else + return result[0].number + end + end + def allow_join course if course_endTime_timeout? course respond_to do |format| diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 55a017019..98b72f67e 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -2757,4 +2757,11 @@ int main(int argc, char** argv){ ss.html_safe end + #代码提交数量 + def changesets_num project + g = Gitlab.client + project.gpid.nil? ? 0 : g.commits_total_count(project.gpid).count + # # commits_total_count(project.gpid) + # project.changesets.count + end end diff --git a/app/helpers/project_score_helper.rb b/app/helpers/project_score_helper.rb index d73e1592e..133212718 100644 --- a/app/helpers/project_score_helper.rb +++ b/app/helpers/project_score_helper.rb @@ -20,14 +20,6 @@ module ProjectScoreHelper project.documents.count end - #代码提交数量 - def changesets_num project - g = Gitlab.client - project.gpid.nil? ? 0 : g.commits_total_count(project.gpid).count - # # commits_total_count(project.gpid) - # project.changesets.count - end - #讨论区帖子数量 def board_message_num project board_message_count = 0 diff --git a/app/views/courses/_copy_course.html.erb b/app/views/courses/_copy_course.html.erb new file mode 100644 index 000000000..98d20ddfb --- /dev/null +++ b/app/views/courses/_copy_course.html.erb @@ -0,0 +1,142 @@ + + +
+
信息配置
+
+ +
+ 完成 + 取消 +
+
diff --git a/app/views/courses/copy_course.js.erb b/app/views/courses/copy_course.js.erb new file mode 100644 index 000000000..0c5b62266 --- /dev/null +++ b/app/views/courses/copy_course.js.erb @@ -0,0 +1,10 @@ +$('#ajax-modal').html('<%= escape_javascript(render :partial => 'copy_course') %>'); +showModal('ajax-modal', '730px'); +$('#ajax-modal').css('height','530px').css('width','730px'); +$('#ajax-modal').siblings().remove(); +$('#ajax-modal').before("
" + +"
"); +$('#ajax-modal').parent().css("top","30%").css("left","").css("position","fixed"); +$('#ajax-modal').parent().addClass("popbox").addClass("referenceResourcesPopup"); + + diff --git a/app/views/layouts/_project_info.html.erb b/app/views/layouts/_project_info.html.erb index b4a2996d0..51758ea4c 100644 --- a/app/views/layouts/_project_info.html.erb +++ b/app/views/layouts/_project_info.html.erb @@ -84,7 +84,7 @@ ID:<%= @course.id%> diff --git a/public/stylesheets/public.css b/public/stylesheets/public.css index 94e274505..f5125090f 100644 --- a/public/stylesheets/public.css +++ b/public/stylesheets/public.css @@ -962,4 +962,27 @@ span.at a{color:#269ac9;text-decoration: none;} /*文本描述展开高度*/ .maxh360 {max-height: 810px;} -.lh18 { line-height: 18px;} \ No newline at end of file +.lh18 { line-height: 18px;} + +/*151228样式更新*/ +.menuSetting {background:url(../images/hwork_icon.png) -5px -132px no-repeat; display:inline-block; width:20px; height:20px;} +.boxShadow {box-shadow:0px 2px 8px rgba(146, 153, 169, 0.5);} +a.greyBtn{ display:inline-block; background:#f2f3f3; padding:0px 5px; height:20px; border:1px solid #d3d3d3; color:#888888; line-height:1.9;-moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px;} +a:hover.greyBtn{border:1px solid #888888; } +a.blueBtn{ display:inline-block; background:#269ac9; padding:0px 5px; height:20px; border:1px solid #269ac9; color:#ffffff; line-height:1.9;-moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px;} +a.blueBtn:hover {background-color:#298fbd;} +a.cancelBtn{ display:inline-block; background:#c1c1c1; padding:0px 5px; height:20px; border:1px solid #d3d3d3; color:#ffffff; line-height:1.9;-moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px;} +a.cancelBtn:hover {background:#888888;} +a.userFollow{ display:inline-block; width:55px; height:20px; border:1px solid #d3d3d3; color:#888888; background:#f2f3f3 url(../images/homepage_icon2.png) -9px -6px no-repeat; padding-left:25px; line-height:1.9;-moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px;} +a:hover.userFollow{border:1px solid #888888; } +a.userCancel{ display:inline-block; width:55px; height:20px; border:1px solid #d3d3d3; color:#888888; background:#f2f3f3 url(../images/homepage_icon2.png) -177px -6px no-repeat; padding-left:25px; line-height:1.9;-moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px;} +a:hover.userCancel{border:1px solid #888888; } +.pAbsolute {position:absolute; z-index:999;} +.userAvatarWrap {width:50px; height:50px; position:relative; border:1px solid #cbcbcb; padding: 2px;} +.userAvatarWrap:hover {border:1px solid #269ac9;} +.mr27 {margin-right:27px;} +.userCard {width:208px; border:1px solid #dddddd; background-color:#ffffff; margin-top:10px; padding:15px; top:-176px; left:-95px; position:absolute; z-index:999; display:none;} +.userCard font {display:block; border-width:8px; position:absolute; bottom:-16px; left:110px; border-style:solid dashed dashed dashed; border-color:#FFF transparent transparent transparent; font-size:0; line-height:0;} +.userCard em {display:block; border-width:8px; position:absolute; bottom:-17px; left:110px; border-style:solid dashed dashed dashed; border-color:#eaeaea transparent transparent transparent; font-size:0; line-height:0;} +.userCardM {width:201px; height:20px; border:1px solid #dddddd; resize:none;} +.resourceCopy {padding:0px; margin:0px; width:12px; height:12px; display:inline-block;} \ No newline at end of file