ke_guange
ouyangxuhua 10 years ago
commit 0b8053c5d5

@ -31,27 +31,25 @@ class CoursesController < ApplicationController
def join def join
if User.current.logged? if User.current.logged?
cs = CoursesService.new if params[:role] == 10
user = User.current cs = CoursesService.new
join = cs.join_course params,user @user = User.current
@state = join[:state] join = cs.join_course params,user
course = join[:course] @state = join[:state]
@course = join[:course]
else
@course = Course.find_by_id params[:object_id]
CourseMessage.create(:user_id => @course.tea_id, :course_id => @course.id, :viewed => false,:content=> params[:role],:course_message_id=>User.current.id,:course_message_type=>'JoinCourseRequest')
@state = 6
end
else else
@state = 5 #未登录 @state = 5 #未登录
end end
# if @state == 1 || @state == 3 @object_id = params[:object_id]
# respond_to course_path(course.id)
# else
respond_to do |format|
format.js { render :partial => 'set_join', :locals => {:user => user, :course => course, :object_id => params[:object_id]} }
end
#end
rescue Exception => e
@state = 4 #已经加入了课程
respond_to do |format| respond_to do |format|
format.js { render :partial => 'set_join', :locals => {:user => User.current, :course => nil, :object_id => nil} } format.js #{ render :partial => 'set_join', :locals => {:user => @user, :course => @course, :object_id => params[:object_id]} }
end end
end end
def unjoin def unjoin

@ -63,7 +63,7 @@ class StudentWorkController < ApplicationController
journal_for_teacher.update_attributes(:viewed => true) journal_for_teacher.update_attributes(:viewed => true)
end end
#不能参与作业匿评消息状态更新 #不能参与作业匿评消息状态更新
no_evaluation = CourseMessage.where("user_id =? and course_id =? and course_message_type =? and viewed =?", User.current.id, @homework.course, "NoEvaluation", 0) no_evaluation = CourseMessage.where("user_id =? and course_id =? and course_message_type =? and viewed =? and status =?", User.current.id, @homework.course, "StudentWork", 0, 0)
no_evaluation.update_all(:viewed => true) no_evaluation.update_all(:viewed => true)
# 作品留言 # 作品留言
# 消息end # 消息end
@ -144,6 +144,10 @@ class StudentWorkController < ApplicationController
end end
def new def new
#更新消息
noEvaluation = @homework.course_messages.where("user_id =? and viewed =?", User.current.id, 0)
noEvaluation.update_all(:viewed => true)
if @homework.homework_type==2 if @homework.homework_type==2
redirect_to new_user_commit_homework_users_path(homework_id: @homework.id) redirect_to new_user_commit_homework_users_path(homework_id: @homework.id)
return return

@ -128,7 +128,7 @@ class UsersController < ApplicationController
#课程相关消息 #课程相关消息
when 'homework' when 'homework'
@message_alls = CourseMessage.where("course_message_type in ('HomeworkCommon','StudentWorksScore','JournalsForMessage','NoEvaluation') and user_id =?", @user).order("created_at desc") @message_alls = CourseMessage.where("course_message_type in ('HomeworkCommon','StudentWorksScore','JournalsForMessage','StudentWork') and user_id =?", @user).order("created_at desc")
when 'course_message' when 'course_message'
@message_alls = CourseMessage.where("course_message_type =? and user_id =?", "Message", @user).order("created_at desc") @message_alls = CourseMessage.where("course_message_type =? and user_id =?", "Message", @user).order("created_at desc")
when 'course_news' when 'course_news'

@ -50,6 +50,8 @@ class Course < ActiveRecord::Base
validates_format_of :name,:with =>/^[^ ]+[a-zA-Z0-9_\u4e00-\u9fa5\s\S]+$/ validates_format_of :name,:with =>/^[^ ]+[a-zA-Z0-9_\u4e00-\u9fa5\s\S]+$/
validates_length_of :description, :maximum => 10000 validates_length_of :description, :maximum => 10000
before_save :self_validate before_save :self_validate
# 公开课程变成私有课程,所有资源都变成私有
after_update :update_files_public
after_create :create_board_sync, :act_as_course_activity, :act_as_course_message after_create :create_board_sync, :act_as_course_activity, :act_as_course_message
before_destroy :delete_all_members before_destroy :delete_all_members
@ -212,6 +214,14 @@ class Course < ActiveRecord::Base
def self_validate def self_validate
end end
def update_files_public
unless self.is_public?
self.attachments.each do |a|
a.update_attributes(:is_public => false)
end
end
end
# 创建课程讨论区 # 创建课程讨论区
def create_board_sync def create_board_sync

@ -18,8 +18,10 @@ class CourseMessage < ActiveRecord::Base
after_create :add_user_message after_create :add_user_message
def add_user_message def add_user_message
if MessageAll.where("message_type = '#{self.class.to_s}' and message_id = '#{self.id}'").first.nil? #unless self.course_message_type == 'JoinCourseRequest'
self.message_alls << MessageAll.new(:user_id => self.user_id) if MessageAll.where("message_type = '#{self.class.to_s}' and message_id = '#{self.id}'").first.nil?
end self.message_alls << MessageAll.new(:user_id => self.user_id)
end
#end
end end
end end

@ -8,6 +8,8 @@ class StudentWork < ActiveRecord::Base
has_many :student_works_scores, :dependent => :destroy has_many :student_works_scores, :dependent => :destroy
belongs_to :project belongs_to :project
has_many :student_work_tests, order: 'id desc' has_many :student_work_tests, order: 'id desc'
# course's message
has_many :course_messages, :class_name =>'CourseMessage', :as => :course_message, :dependent => :destroy
before_destroy :delete_praise before_destroy :delete_praise
before_save :set_program_score, :set_src before_save :set_program_score, :set_src
@ -138,10 +140,10 @@ class StudentWork < ActiveRecord::Base
end end
end end
# status == 0 : delay
def act_as_message def act_as_message
if self.created_at > self.homework_common.end_time + 1 if self.created_at > self.homework_common.end_time + 1
CourseMessage.create(:user_id => self.user_id, :course_id => self.homework_common.course_id, self.course_messages << CourseMessage.new(:user_id => self.user_id, :course_id => self.homework_common.course_id, :viewed => false, :status => false)
:course_message_id => self.id, :course_message_type => 'NoEvaluation',:viewed => false)
end end
end end
end end

@ -299,6 +299,7 @@ class CoursesService
#@state == 3 您已经加入了课程 #@state == 3 您已经加入了课程
#@state == 4 您加入的课程不存在 #@state == 4 您加入的课程不存在
#@state == 5 您还未登录 #@state == 5 您还未登录
#@state == 6 申请成功,请等待审核完毕
#@state 其他 未知错误,请稍后再试 #@state 其他 未知错误,请稍后再试
def join_course params,current_user def join_course params,current_user
course = Course.find_by_id params[:object_id] course = Course.find_by_id params[:object_id]

@ -12,5 +12,5 @@
</div> </div>
</div> </div>
<%= render :partial => 'boards/course_new', <%= render :partial => 'boards/course_new',
:locals => {:f => f, :edit_mode => edit_mode, :topic => topic} %> :locals => {:f => f, :edit_mode => edit_mode, :topic => topic, :course => course} %>
</div> </div>

@ -71,12 +71,12 @@
<span class="tips">密&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;码:</span> <span class="tips">密&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;码:</span>
<input class=" width190" type="password" name="course_password" id="course_password" value="" > <input class=" width190" type="password" name="course_password" id="course_password" value="" >
</li> </li>
<li style="margin-top: 30px;display: none"> <li style="margin-top: 30px;">
<span style="margin-right: 20px;">身&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;份:</span> <span style="margin-right: 20px;">身&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;份:</span>
<select class="IDType"> <select name="role" class="IDType">
<option>教师</option> <option value="9">教师</option>
<option>教辅</option> <option value="7">教辅</option>
<option>学生</option> <option value="10">学生</option>
</select> </select>
</li> </li>
<li> <li>

@ -1,4 +1,4 @@
<% if object_id%> <% if object_id && @state != 6%>
$("#join_in_course_header").html("<%= escape_javascript(join_in_course_header(course, user)) %>"); $("#join_in_course_header").html("<%= escape_javascript(join_in_course_header(course, user)) %>");
<% end %> <% end %>
<% if @state %> <% if @state %>
@ -18,6 +18,8 @@
alert("您加入的课程不存在"); alert("您加入的课程不存在");
<% elsif @state == 5 %> <% elsif @state == 5 %>
alert("您还未登录"); alert("您还未登录");
<% elsif @state == 6 %>
alert("申请成功,请等待审核")
<% else %> <% else %>
alert("未知错误,请稍后再试"); alert("未知错误,请稍后再试");
<% end %> <% end %>

@ -0,0 +1,26 @@
<% if @object_id && @state != 6%>
$("#join_in_course_header").html("<%= escape_javascript(join_in_course_header(@course, @user)) %>");
<% end %>
<% if @state %>
<% if @state == 0 %>
alert("加入成功");
hideModal($("#popbox02"));
$("#try_join_course_link").replaceWith("<a href='<%=url_for(:controller => 'homework_common', :action => 'index',:course=>course.id, :host=>Setting.host_course)%>' target='_blank' class='blue_n_btn fr mt20'>提交作品</a>");
window.location.href= "http://"+"<%= Setting.host_name%>"+"/courses/" + "<%= course.id%>"
<% elsif @state == 1 %>
alert("密码错误");
<% elsif @state == 2 %>
alert("课程已过期\n请联系课程管理员重启课程。(在配置课程处)");
<% elsif @state == 3 %>
alert("您已经加入了课程");
window.location.href= "http://"+"<%= Setting.host_name%>"+"/courses/" + "<%= course.id%>"
<% elsif @state == 4 %>
alert("您加入的课程不存在");
<% elsif @state == 5 %>
alert("您还未登录");
<% elsif @state == 6 %>
alert("申请成功,请等待审核")
<% else %>
alert("未知错误,请稍后再试");
<% end %>
<% end %>

@ -23,23 +23,44 @@
</div> </div>
<% checkBox = (@course.present? && @course.is_public?) ? 'public' : 'private'%> <% checkBox = (@course.present? && @course.is_public?) ? 'public' : 'private'%>
<button name="button" class="sub_btn" onclick="_file.click()" onmouseover="this.focus()" style="<%= ie8? ? 'display:none' : ''%>" type="button" ><%= l(:label_browse) %></button> <button name="button" class="sub_btn" onclick="_file.click()" onmouseover="this.focus()" style="<%= ie8? ? 'display:none' : ''%>" type="button" ><%= l(:label_browse) %></button>
<%= file_field_tag 'attachments[dummy][file]', <% if @course %>
:id => '_file', <%= file_field_tag 'attachments[dummy][file]',
:class => ie8? ? '':'file_selector', :id => '_file',
:multiple => true, :class => ie8? ? '':'file_selector',
:onchange => 'addInputFiles(this,"'+ checkBox.to_s+'");', :multiple => true,
:style => ie8? ? '': 'display:none', :onchange => 'addInputFilesCourseSource(this,"'+ checkBox.to_s+'");',
:data => { :style => ie8? ? '': 'display:none',
:max_file_size => Setting.attachment_max_size.to_i.kilobytes, :data => {
:max_file_size_message => l(:error_attachment_too_big, :max_size => number_to_human_size(Setting.attachment_max_size.to_i.kilobytes)), :max_file_size => Setting.attachment_max_size.to_i.kilobytes,
:max_concurrent_uploads => Redmine::Configuration['max_concurrent_ajax_uploads'].to_i, :max_file_size_message => l(:error_attachment_too_big, :max_size => number_to_human_size(Setting.attachment_max_size.to_i.kilobytes)),
:upload_path => uploads_path(:format => 'js'), :max_concurrent_uploads => Redmine::Configuration['max_concurrent_ajax_uploads'].to_i,
:description_placeholder => l(:label_optional_description), :upload_path => uploads_path(:format => 'js'),
:field_is_public => l(:field_is_public), :description_placeholder => l(:label_optional_description),
:are_you_sure => l(:text_are_you_sure), :field_is_public => l(:field_is_public),
:file_count => l(:label_file_count), :are_you_sure => l(:text_are_you_sure),
:delete_all_files => l(:text_are_you_sure_all) :file_count => l(:label_file_count),
} %> :delete_all_files => l(:text_are_you_sure_all)
} %>
<% else %>
<%= file_field_tag 'attachments[dummy][file]',
:id => '_file',
:class => ie8? ? '':'file_selector',
:multiple => true,
:onchange => 'addInputFiles(this);',
:style => ie8? ? '': 'display:none',
:data => {
:max_file_size => Setting.attachment_max_size.to_i.kilobytes,
:max_file_size_message => l(:error_attachment_too_big, :max_size => number_to_human_size(Setting.attachment_max_size.to_i.kilobytes)),
:max_concurrent_uploads => Redmine::Configuration['max_concurrent_ajax_uploads'].to_i,
:upload_path => uploads_path(:format => 'js'),
:description_placeholder => l(:label_optional_description),
:field_is_public => l(:field_is_public),
:are_you_sure => l(:text_are_you_sure),
:file_count => l(:label_file_count),
:delete_all_files => l(:text_are_you_sure_all)
} %>
<% end %>
<!--<input type="submit" name="" value="上传文件" class="f_l ml10" style="width:80px; height:26px;">--> <!--<input type="submit" name="" value="上传文件" class="f_l ml10" style="width:80px; height:26px;">-->
<span id="upload_file_count"> <span id="upload_file_count">

@ -30,7 +30,7 @@
:method => :post} :method => :post}
} do |f| %> } do |f| %>
<%= render :partial => 'boards/course_message_edit', <%= render :partial => 'boards/course_message_edit',
:locals => {:f => f, :edit_mode => true, :topic => @message} %> :locals => {:f => f, :edit_mode => true, :topic => @message, :course => @message.course} %>
<% end %> <% end %>
<% end %> <% end %>

@ -603,7 +603,7 @@
success: function (data) { success: function (data) {
schoolsResult = data.schools; schoolsResult = data.schools;
count = data.count; count = data.count;
maxPage = count % 100 + 1; //最大页码值 maxPage = Math.ceil(count/100) //最大页码值
if(schoolsResult.length != undefined && schoolsResult.length != 0) { if(schoolsResult.length != undefined && schoolsResult.length != 0) {
var i = 0; var i = 0;
$("#search_school_result_list").html(''); $("#search_school_result_list").html('');

@ -37,7 +37,7 @@
<li class="homepageNewsTime fl"><%= time_tag(ma.created_at).html_safe %> </li> <li class="homepageNewsTime fl"><%= time_tag(ma.created_at).html_safe %> </li>
</ul> </ul>
<% end %> <% end %>
<% if ma.course_message_type == "HomeworkCommon" && ma.status.nil? && !ma.course_message.nil? %> <% if ma.course_message_type == "HomeworkCommon" %>
<ul class="homepageNewsList fl"> <ul class="homepageNewsList fl">
<li class="homepageNewsPortrait fl"><a href="javascript:void(0);"><%=link_to image_tag(url_to_avatar(ma.course_message.user), :width => "30", :height => "30"), user_path(ma.course_message.user) %></a></li> <li class="homepageNewsPortrait fl"><a href="javascript:void(0);"><%=link_to image_tag(url_to_avatar(ma.course_message.user), :width => "30", :height => "30"), user_path(ma.course_message.user) %></a></li>
<li class="homepageNewsPubType fl"><%=link_to ma.course_message.user.lastname + ma.course_message.user.firstname + "老师", user_path(ma.course_message.user), :class => "newsBlue homepageNewsPublisher" %> <li class="homepageNewsPubType fl"><%=link_to ma.course_message.user.lastname + ma.course_message.user.firstname + "老师", user_path(ma.course_message.user), :class => "newsBlue homepageNewsPublisher" %>
@ -376,27 +376,27 @@
<% end %> <% end %>
<% end %> <% end %>
<!-- 作业迟交,不能参与匿评提醒消息 --> <!-- 作业迟交,不能参与匿评提醒消息 -->
<% if ma.course_message_type == "NoEvaluation" %> <% if ma.course_message_type == "StudentWork" && !ma.course_message.homework_common.nil? %>
<ul class="homepageNewsList fl"> <ul class="homepageNewsList fl">
<li class="homepageNewsPortrait fl"><a href="javascript:void(0);"></a></li> <li class="homepageNewsPortrait fl"><a href="javascript:void(0);"></a></li>
<li class="homepageNewsPubType fl"> <li class="homepageNewsPubType fl">
<span class="<%= ma.viewed == 0 ? "homepageNewsTypeNotRead fl":"homepageNewsType fl" %>">迟交作业,不能参与作业匿评!</span> <span class="<%= ma.viewed == 0 ? "homepageNewsTypeNotRead fl":"homepageNewsType fl" %>">迟交作业,不能参与作业匿评!</span>
</li> </li>
<% student_work = StudentWork.find(ma.course_message_id)%>
<li class="homepageNewsContent fl"><a href="javascript:void(0);" class="newsGrey"> <li class="homepageNewsContent fl"><a href="javascript:void(0);" class="newsGrey">
<%= link_to "由于迟交作业,您及您的作品都不能参与作业的匿评", student_work_index_path(:homework => student_work.homework_common_id), <%= link_to "由于迟交作业,您及您的作品都不能参与作业的匿评", student_work_index_path(:homework => ma.course_message.homework_common_id),
:class => "#{ma.viewed==0 ? "newsBlack" : "newsGrey"}", :class => "#{ma.viewed==0 ? "newsBlack" : "newsGrey"}",
:onmouseover => "message_titile_show($(this),event)", :onmouseover => "message_titile_show($(this),event)",
:onmouseout => "message_titile_hide($(this))" %></a></li> :onmouseout => "message_titile_hide($(this))" %></a>
</li>
<div style="display: none" class="message_title_red system_message_style"> <div style="display: none" class="message_title_red system_message_style">
<p> <p>
<%= User.current.lastname + User.current.firstname %> <%= User.current.lastname + User.current.firstname %>
<%= User.current.allowed_to?(:as_teacher,student_work.homework_common.course) ? '老师':'同学'%>您好!由于迟交作业,您及您的作品都不能参与以下作业的匿评。作业详情如下: <%= User.current.allowed_to?(:as_teacher,ma.course_message.homework_common.course) ? '老师':'同学'%>您好!由于迟交作业,您及您的作品都不能参与以下作业的匿评。作业详情如下:
</p> </p>
<p>课程名称:<%= student_work.homework_common.course.name %>(<%= student_work.homework_common.course.time.to_s + '年' + student_work.homework_common.course.term %>)</p> <p>课程名称:<%= ma.course_message.homework_common.course.name %>(<%= ma.course_message.homework_common.course.time.to_s + '年' + ma.course_message.homework_common.course.term %>)</p>
<p>作业标题:<span style="color:Red;"><%=student_work.homework_common.name %></span></p> <p>作业标题:<span style="color:Red;"><%=ma.course_message.homework_common.name %></span></p>
<p>提交截止:<span style="color:Red;"><%=student_work.homework_common.end_time %>&nbsp;24:00</span></p> <p>提交截止:<span style="color:Red;"><%=ma.course_message.homework_common.end_time %>&nbsp;24:00</span></p>
<p>提交时间:<span style="color:Red;"><%=format_time(student_work.created_at) %></span></p> <p>提交时间:<span style="color:Red;"><%=format_time(ma.course_message.created_at) %></span></p>
</div> </div>
<li class="homepageNewsTime fl"><%= time_tag(ma.created_at).html_safe %> </li> <li class="homepageNewsTime fl"><%= time_tag(ma.created_at).html_safe %> </li>
</ul> </ul>

@ -0,0 +1,23 @@
class UpdateCourseActivity < ActiveRecord::Migration
def up
count = CourseActivity.all.count / 30 + 2
transaction do
for i in 1 ... count do i
CourseActivity.page(i).per(30).each do |activity|
if activity.course_act
if activity.course_act_type == 'Poll'
if activity.course_act.polls_status == 1
activity.destroy
end
end
else
activity.destroy
end
end
end
end
end
def down
end
end

@ -11,7 +11,7 @@
# #
# It's strongly recommended to check this file into your version control system. # It's strongly recommended to check this file into your version control system.
ActiveRecord::Schema.define(:version => 20151020014759) do ActiveRecord::Schema.define(:version => 20151020021234) do
create_table "activities", :force => true do |t| create_table "activities", :force => true do |t|
t.integer "act_id", :null => false t.integer "act_id", :null => false

@ -88,7 +88,7 @@ function addFile_board(inputEl, file, eagerUpload, id) {
return null; return null;
} }
function addFile(inputEl, file, eagerUpload,checkBox) { function addFile(inputEl, file, eagerUpload) {
var attachments_frame = '#attachments_fields'; var attachments_frame = '#attachments_fields';
if ($(attachments_frame).children().length < 30) { if ($(attachments_frame).children().length < 30) {
@ -99,72 +99,50 @@ function addFile(inputEl, file, eagerUpload,checkBox) {
'id': 'attachments_' + attachmentId, 'id': 'attachments_' + attachmentId,
'class': 'attachment' 'class': 'attachment'
}); });
//alert(checkBox);
if(checkBox){ fileSpan.append(
fileSpan.append( $('<input>', {
$('<input>', { 'type': 'text',
'type': 'text', 'class': 'filename readonly',
'class': 'filename readonly', 'name': 'attachments[' + attachmentId + '][filename]',
'name': 'attachments[' + attachmentId + '][filename]', 'readonly': 'readonly'
'readonly': 'readonly' }).val(file.name),
}).val(file.name), $('<input>', {
$('<input>', { 'type': 'text',
'type': 'text', 'class': 'description',
'class': 'description', 'name': 'attachments[' + attachmentId + '][description]',
'name': 'attachments[' + attachmentId + '][description]', 'maxlength': 254,
'maxlength': 254, 'placeholder': $(inputEl).data('descriptionPlaceholder')
'placeholder': $(inputEl).data('descriptionPlaceholder') }).toggle(!eagerUpload),
}).toggle(!eagerUpload), $('<span >' + $(inputEl).data('fieldIsPublic') + ':</span>').attr({
$('<div>', { 'class': 'ispublic-label'
'class': 'div_attachments', }),
'name': 'div_' + 'attachments_' + attachmentId $('<input>', {
}) 'type': 'checkbox',
).appendTo('#attachments_fields'); 'class': 'is_public_checkbox',
}else { 'value': 1,
fileSpan.append( 'name': 'attachments[' + attachmentId + '][is_public_checkbox]',
$('<input>', { checked: 'checked'
'type': 'text', }).toggle(!eagerUpload),
'class': 'filename readonly', $('<a>&nbsp</a>').attr({
'name': 'attachments[' + attachmentId + '][filename]', 'href': "#",
'readonly': 'readonly' 'class': 'remove-upload'
}).val(file.name), }).click(function() {
$('<input>', { if (confirm($(inputEl).data('areYouSure'))) {
'type': 'text', removeFile();
'class': 'description', if (!eagerUpload) {
'name': 'attachments[' + attachmentId + '][description]', (function(e) {
'maxlength': 254, reload(e);
'placeholder': $(inputEl).data('descriptionPlaceholder') })(fileSpan);
}).toggle(!eagerUpload),
$('<span >' + $(inputEl).data('fieldIsPublic') + ':</span>').attr({
'class': 'ispublic-label'
}),
$('<input>', {
'type': 'checkbox',
'class': 'is_public_checkbox',
'value': 1,
'name': 'attachments[' + attachmentId + '][is_public_checkbox]',
checked: 'checked'
}).toggle(!eagerUpload),
$('<a>&nbsp</a>').attr({
'href': "#",
'class': 'remove-upload'
}).click(function () {
if (confirm($(inputEl).data('areYouSure'))) {
removeFile();
if (!eagerUpload) {
(function (e) {
reload(e);
})(fileSpan);
}
} }
}
}).toggle(!eagerUpload), }).toggle(!eagerUpload),
$('<div>', { $('<div>', {
'class': 'div_attachments', 'class': 'div_attachments',
'name': 'div_' + 'attachments_' + attachmentId 'name': 'div_' + 'attachments_' + attachmentId
}) })
).appendTo('#attachments_fields'); ).appendTo('#attachments_fields');
}
if (eagerUpload) { if (eagerUpload) {
ajaxUpload(file, attachmentId, fileSpan, inputEl); ajaxUpload(file, attachmentId, fileSpan, inputEl);
@ -195,9 +173,9 @@ function ajaxUpload(file, attachmentId, fileSpan, inputEl) {
ajaxUpload.uploading++; ajaxUpload.uploading++;
uploadBlob(file, $(inputEl).data('upload-path'), attachmentId, { uploadBlob(file, $(inputEl).data('upload-path'), attachmentId, {
loadstartEventHandler: onLoadstart.bind(progressSpan), loadstartEventHandler: onLoadstart.bind(progressSpan),
progressEventHandler: onProgress.bind(progressSpan) progressEventHandler: onProgress.bind(progressSpan)
}) })
.done(function(result) { .done(function(result) {
progressSpan.progressbar('value', 100).remove(); progressSpan.progressbar('value', 100).remove();
fileSpan.find('input.description, a').css('display', 'inline-block'); fileSpan.find('input.description, a').css('display', 'inline-block');
@ -284,22 +262,22 @@ function removeFile() {
//gcm delete all file //gcm delete all file
//modify by yutao 2015-5-14 <20><>1<EFBFBD><31>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD>ϴ<EFBFBD><CFB4>ؼ<EFBFBD>ʱ<EFBFBD>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bug <20>ʸ<EFBFBD>֮ start //modify by yutao 2015-5-14 <20><>1<EFBFBD><31>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD>ϴ<EFBFBD><CFB4>ؼ<EFBFBD>ʱ<EFBFBD>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bug <20>ʸ<EFBFBD>֮ start
function removeAll(containerid) { function removeAll(containerid) {
if (confirm(deleteallfiles)) { if (confirm(deleteallfiles)) {
if (containerid == undefined) { if (containerid == undefined) {
$(".remove-upload").removeAttr("data-confirm"); $(".remove-upload").removeAttr("data-confirm");
$(".remove-upload").click(); $(".remove-upload").click();
} else { } else {
var arr = $(".remove-upload").filter(function() { var arr = $(".remove-upload").filter(function() {
return $(this).data('containerid') == containerid; return $(this).data('containerid') == containerid;
}); });
arr.removeAttr("data-confirm"); arr.removeAttr("data-confirm");
arr.click(); arr.click();
}
} }
// return false;
} }
//modify by yutao 2015-5-14 <20><>1<EFBFBD><31>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD>ϴ<EFBFBD><CFB4>ؼ<EFBFBD>ʱ<EFBFBD>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bug <20>ʸ<EFBFBD>֮ end // return false;
//gcm }
//modify by yutao 2015-5-14 <20><>1<EFBFBD><31>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD>ϴ<EFBFBD><CFB4>ؼ<EFBFBD>ʱ<EFBFBD>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bug <20>ʸ<EFBFBD>֮ end
//gcm
function uploadBlob(blob, uploadUrl, attachmentId, options) { function uploadBlob(blob, uploadUrl, attachmentId, options) {
@ -335,11 +313,10 @@ function uploadBlob(blob, uploadUrl, attachmentId, options) {
} }
function addInputFiles(inputEl) { function addInputFiles(inputEl) {
checkBox = arguments[1] == 'public' ? false : true;
// var clearedFileInput = $(inputEl).clone().val(''); // var clearedFileInput = $(inputEl).clone().val('');
if (inputEl.files) { if (inputEl.files) {
// upload files using ajax // upload files using ajax
uploadAndAttachFiles(inputEl.files, inputEl,checkBox); uploadAndAttachFiles(inputEl.files, inputEl);
// $(inputEl).remove(); // $(inputEl).remove();
} else { } else {
// browser not supporting the file API, upload on form submission // browser not supporting the file API, upload on form submission
@ -386,7 +363,7 @@ function addInputFiles_board(inputEl, id) {
//clearedFileInput.insertAfter('#attachments_fields'); //clearedFileInput.insertAfter('#attachments_fields');
} }
function uploadAndAttachFiles(files, inputEl,checkBox) { function uploadAndAttachFiles(files, inputEl) {
var maxFileSize = $(inputEl).data('max-file-size'); var maxFileSize = $(inputEl).data('max-file-size');
var maxFileSizeExceeded = $(inputEl).data('max-file-size-message'); var maxFileSizeExceeded = $(inputEl).data('max-file-size-message');
@ -401,7 +378,7 @@ function uploadAndAttachFiles(files, inputEl,checkBox) {
window.alert(maxFileSizeExceeded); window.alert(maxFileSizeExceeded);
} else { } else {
$.each(files, function() { $.each(files, function() {
addFile(inputEl, this, true,checkBox); addFile(inputEl, this, true);
}); });
} }
} }
@ -490,3 +467,139 @@ $(function() {
} }
}); });
}); });
//课程课件
function addInputFilesCourseSource(inputEl) {
checkBox = arguments[1] == 'public' ? false : true;
// var clearedFileInput = $(inputEl).clone().val('');
if (inputEl.files) {
// upload files using ajax
uploadAndAttachFilesCourseSource(inputEl.files, inputEl,checkBox);
// $(inputEl).remove();
} else {
// browser not supporting the file API, upload on form submission
var attachmentId;
var aFilename = inputEl.value.split(/\/|\\/);
var count = $('#attachments_fields>span').length;
attachmentId = addFile(inputEl, {
name: aFilename[aFilename.length - 1]
}, false);
if (attachmentId) {
$(inputEl).attr({
name: 'attachments[' + attachmentId + '][file]'
}).hide();
if (count <= 0) count = 1;
$('#upload_file_count').html("<span id=\"count\">" + count + "</span>" + $(inputEl).data('fileCount'));
}
}
//clearedFileInput.insertAfter('#attachments_fields');
}
function uploadAndAttachFilesCourseSource(files, inputEl,checkBox) {
var maxFileSize = $(inputEl).data('max-file-size');
var maxFileSizeExceeded = $(inputEl).data('max-file-size-message');
var sizeExceeded = false;
$.each(files, function() {
if (this.size && maxFileSize != null && this.size > parseInt(maxFileSize)) {
sizeExceeded = true;
}
});
if (sizeExceeded) {
window.alert(maxFileSizeExceeded);
} else {
$.each(files, function() {
addFileCourseSource(inputEl, this, true,checkBox);
});
}
}
function addFileCourseSource(inputEl, file, eagerUpload,checkBox) {
var attachments_frame = '#attachments_fields';
if ($(attachments_frame).children().length < 30) {
deleteallfiles = $(inputEl).data('deleteAllFiles');
var attachmentId = addFile.nextAttachmentId++;
var fileSpan = $('<span>', {
'id': 'attachments_' + attachmentId,
'class': 'attachment'
});
//alert(checkBox);
if(checkBox){
fileSpan.append(
$('<input>', {
'type': 'text',
'class': 'filename readonly',
'name': 'attachments[' + attachmentId + '][filename]',
'readonly': 'readonly'
}).val(file.name),
$('<input>', {
'type': 'text',
'class': 'description',
'name': 'attachments[' + attachmentId + '][description]',
'maxlength': 254,
'placeholder': $(inputEl).data('descriptionPlaceholder')
}).toggle(!eagerUpload),
$('<div>', {
'class': 'div_attachments',
'name': 'div_' + 'attachments_' + attachmentId
})
).appendTo('#attachments_fields');
}else {
fileSpan.append(
$('<input>', {
'type': 'text',
'class': 'filename readonly',
'name': 'attachments[' + attachmentId + '][filename]',
'readonly': 'readonly'
}).val(file.name),
$('<input>', {
'type': 'text',
'class': 'description',
'name': 'attachments[' + attachmentId + '][description]',
'maxlength': 254,
'placeholder': $(inputEl).data('descriptionPlaceholder')
}).toggle(!eagerUpload),
$('<span >' + $(inputEl).data('fieldIsPublic') + ':</span>').attr({
'class': 'ispublic-label'
}),
$('<input>', {
'type': 'checkbox',
'class': 'is_public_checkbox',
'value': 1,
'name': 'attachments[' + attachmentId + '][is_public_checkbox]',
checked: 'checked'
}).toggle(!eagerUpload),
$('<a>&nbsp</a>').attr({
'href': "#",
'class': 'remove-upload'
}).click(function () {
if (confirm($(inputEl).data('areYouSure'))) {
removeFile();
if (!eagerUpload) {
(function (e) {
reload(e);
})(fileSpan);
}
}
}).toggle(!eagerUpload),
$('<div>', {
'class': 'div_attachments',
'name': 'div_' + 'attachments_' + attachmentId
})
).appendTo('#attachments_fields');
}
if (eagerUpload) {
ajaxUpload(file, attachmentId, fileSpan, inputEl);
}
return attachmentId;
}
return null;
}
addFileCourseSource.nextAttachmentId = 1;

@ -19,12 +19,12 @@
if(options.minStatue == "true"){ if(options.minStatue == "true"){
show_btn.css("float", options.float); show_btn.css("float", options.float);
sideContent.css('width', 0); sideContent.css('width', 0);
show_btn.css('width', 25); show_btn.css('width', 28);
} }
//close //close
closeBtn.bind("click",function(){ closeBtn.bind("click",function(){
sideContent.animate({width: '0px'},"fast"); sideContent.animate({width: '0px'},"fast");
show_btn.stop(true, true).delay(300).animate({ width: '25px'},"fast"); show_btn.stop(true, true).delay(300).animate({ width: '28px'},"fast");
cookiesave('minStatue','true','','',''); cookiesave('minStatue','true','','','');
}); });
//show //show

Loading…
Cancel
Save