IE8不能提交作业

redis_cache
guange 10 years ago
parent 56f522f563
commit 742506f52b

@ -219,7 +219,7 @@ class WelcomeController < ApplicationController
# 判断网站的入口,是课程 course 则跳过index去渲染 course 方法 # 判断网站的入口,是课程 course 则跳过index去渲染 course 方法
def entry_select def entry_select
url = request.original_url.gsub('/','') url = request.original_url.gsub('/','')
if url.include?(Setting.host_course.gsub('/','')) if url.include?(Setting.url_course.gsub('/',''))
if @first_page.show_course == 1 if @first_page.show_course == 1
course course
render :course render :course
@ -228,7 +228,7 @@ class WelcomeController < ApplicationController
end end
return 0 return 0
elsif url.include?(Setting.host_contest.gsub('/','')) elsif url.include?(Setting.url_contest.gsub('/',''))
if @first_page.show_contest == 1 if @first_page.show_contest == 1
contest contest
render :contest render :contest
@ -237,7 +237,7 @@ class WelcomeController < ApplicationController
end end
return 0 return 0
elsif url.include?(Setting.host_user.gsub('/','')) elsif url.include?(Setting.url_user.gsub('/',''))
#redirect_to(:controller => "users", :action => "index") #redirect_to(:controller => "users", :action => "index")
end end

@ -12,7 +12,7 @@
<!--</div>--> <!--</div>-->
<div class="hwork_ctt"> <div class="hwork_ctt">
<div class="hwork_dis" id="tbc_01"> <div class="hwork_dis" id="tbc_01">
<%= labelled_form_for @work do |f|%> <%= labelled_form_for @work,:html => { :multipart => true } do |f|%>
<div class="N_con"> <div class="N_con">
<p> <p>
<label class="fl"><span class="c_red">*</span>&nbsp;&nbsp;作品名称&nbsp;&nbsp;&nbsp;&nbsp;</label> <label class="fl"><span class="c_red">*</span>&nbsp;&nbsp;作品名称&nbsp;&nbsp;&nbsp;&nbsp;</label>

@ -89,6 +89,12 @@ host_user:
default: user.trustie.net default: user.trustie.net
host_repository: host_repository:
default: repository.trustie.net default: repository.trustie.net
url_course:
default: course.trustie.net
url_contest:
default: contest.trustie.net
url_user:
default: user.trustie.net
protocol: protocol:
default: http default: http
feeds_limit: feeds_limit:

@ -1,8 +1,7 @@
/* Redmine - project management software /* Redmine - project management software
Copyright (C) 2006-2013 Jean-Philippe Lang */ Copyright (C) 2006-2013 Jean-Philippe Lang */
function postUpMsg(attachmentId) function postUpMsg(attachmentId) {
{
$.ajax({ $.ajax({
url: '/attachments/renderTag', url: '/attachments/renderTag',
type: "GET", type: "GET",
@ -30,28 +29,57 @@ function addFile_board(inputEl, file, eagerUpload, id) {
deleteallfiles = $(inputEl).data('deleteAllFiles'); deleteallfiles = $(inputEl).data('deleteAllFiles');
var attachmentId = addFile.nextAttachmentId++; var attachmentId = addFile.nextAttachmentId++;
var fileSpan = $('<span>', { 'id': 'attachments_' + attachmentId, 'class':'attachment' }); var fileSpan = $('<span>', {
'id': 'attachments_' + attachmentId,
'class': 'attachment'
});
fileSpan.append( fileSpan.append(
$('<input>', { 'type': 'text', 'class': 'filename readonly', 'name': 'attachments[' + attachmentId + '][filename]', 'readonly': 'readonly'} ).val(file.name), $('<input>', {
$('<input>', { 'type': 'text', 'class': 'description', 'name': 'attachments[' + attachmentId + '][description]', 'maxlength': 254, 'placeholder': $(inputEl).data('descriptionPlaceholder') } ).toggle(!eagerUpload), 'type': 'text',
$('<span >'+$(inputEl).data('fieldIsPublic')+':</span>').attr({ 'class': 'ispublic-label' }) , 'class': 'filename readonly',
$('<input>', { 'type': 'checkbox', 'class': 'is_public_checkbox','value':1, 'name': 'attachments[' + attachmentId + '][is_public_checkbox]', checked:'checked' } ).toggle(!eagerUpload), 'name': 'attachments[' + attachmentId + '][filename]',
$('<a>&nbsp</a>').attr({ 'href': "#", 'class': 'remove-upload', 'data-containerid':id }).click(function(){ 'readonly': 'readonly'
if(confirm($(inputEl).data('areYouSure'))){ }).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',
'data-containerid': id
}).click(function() {
if (confirm($(inputEl).data('areYouSure'))) {
removeFile(); removeFile();
if(!eagerUpload){ if (!eagerUpload) {
(function(e){ (function(e) {
reload(e); reload(e);
})(fileSpan); })(fileSpan);
} }
} }
}).toggle(!eagerUpload), }).toggle(!eagerUpload),
$('<div>', { 'class': 'div_attachments', 'name': 'div_'+'attachments_' + attachmentId} ) $('<div>', {
'class': 'div_attachments',
'name': 'div_' + 'attachments_' + attachmentId
})
).appendTo(attachments_frame); ).appendTo(attachments_frame);
if(eagerUpload) { if (eagerUpload) {
ajaxUpload(file, attachmentId, fileSpan, inputEl); ajaxUpload(file, attachmentId, fileSpan, inputEl);
} }
@ -59,6 +87,7 @@ function addFile_board(inputEl, file, eagerUpload, id) {
} }
return null; return null;
} }
function addFile(inputEl, file, eagerUpload) { function addFile(inputEl, file, eagerUpload) {
var attachments_frame = '#attachments_fields'; var attachments_frame = '#attachments_fields';
@ -66,28 +95,56 @@ function addFile(inputEl, file, eagerUpload) {
deleteallfiles = $(inputEl).data('deleteAllFiles'); deleteallfiles = $(inputEl).data('deleteAllFiles');
var attachmentId = addFile.nextAttachmentId++; var attachmentId = addFile.nextAttachmentId++;
var fileSpan = $('<span>', { 'id': 'attachments_' + attachmentId, 'class':'attachment' }); var fileSpan = $('<span>', {
'id': 'attachments_' + attachmentId,
'class': 'attachment'
});
fileSpan.append( fileSpan.append(
$('<input>', { 'type': 'text', 'class': 'filename readonly', 'name': 'attachments[' + attachmentId + '][filename]', 'readonly': 'readonly'} ).val(file.name), $('<input>', {
$('<input>', { 'type': 'text', 'class': 'description', 'name': 'attachments[' + attachmentId + '][description]', 'maxlength': 254, 'placeholder': $(inputEl).data('descriptionPlaceholder') } ).toggle(!eagerUpload), 'type': 'text',
$('<span >'+$(inputEl).data('fieldIsPublic')+':</span>').attr({ 'class': 'ispublic-label' }) , 'class': 'filename readonly',
$('<input>', { 'type': 'checkbox', 'class': 'is_public_checkbox','value':1, 'name': 'attachments[' + attachmentId + '][is_public_checkbox]', checked:'checked' } ).toggle(!eagerUpload), 'name': 'attachments[' + attachmentId + '][filename]',
$('<a>&nbsp</a>').attr({ 'href': "#", 'class': 'remove-upload' }).click(function(){ 'readonly': 'readonly'
if(confirm($(inputEl).data('areYouSure'))){ }).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(); removeFile();
if(!eagerUpload){ if (!eagerUpload) {
(function(e){ (function(e) {
reload(e); reload(e);
})(fileSpan); })(fileSpan);
} }
} }
}).toggle(!eagerUpload), }).toggle(!eagerUpload),
$('<div>', { 'class': 'div_attachments', 'name': 'div_'+'attachments_' + attachmentId} ) $('<div>', {
'class': 'div_attachments',
'name': 'div_' + 'attachments_' + attachmentId
})
).appendTo('#attachments_fields'); ).appendTo('#attachments_fields');
if(eagerUpload) { if (eagerUpload) {
ajaxUpload(file, attachmentId, fileSpan, inputEl); ajaxUpload(file, attachmentId, fileSpan, inputEl);
} }
@ -106,8 +163,8 @@ function ajaxUpload(file, attachmentId, fileSpan, inputEl) {
} }
function onProgress(e) { function onProgress(e) {
if(e.lengthComputable) { if (e.lengthComputable) {
this.progressbar( 'value', e.loaded * 100 / e.total ); this.progressbar('value', e.loaded * 100 / e.total);
} }
} }
@ -116,18 +173,17 @@ 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');
fileSpan.find('input.is_public_checkbox, a').css('display', 'inline-block'); fileSpan.find('input.is_public_checkbox, a').css('display', 'inline-block');
}) })
.fail(function(result) { .fail(function(result) {
progressSpan.text(result.statusText); progressSpan.text(result.statusText);
if($("#network_issue")) if ($("#network_issue")) {
{
$("#network_issue").show(); $("#network_issue").show();
} }
}).always(function() { }).always(function() {
@ -143,33 +199,37 @@ function ajaxUpload(file, attachmentId, fileSpan, inputEl) {
//gcm files count and add delete_all link //gcm files count and add delete_all link
//modify by yutao 2015-5-14 当1个页面存在多个上传控件时此块代码存在bug 故改之 start //modify by yutao 2015-5-14 当1个页面存在多个上传控件时此块代码存在bug 故改之 start
var containerid=$(inputEl).data('containerid'); var containerid = $(inputEl).data('containerid');
if(containerid==undefined){ if (containerid == undefined) {
var count=$('#attachments_fields>span').length; var count = $('#attachments_fields>span').length;
$('#upload_file_count').html("<span id=\"count\">"+count+"</span>"+$(inputEl).data('fileCount')); $('#upload_file_count').html("<span id=\"count\">" + count + "</span>" + $(inputEl).data('fileCount'));
if(count>=1){ if (count >= 1) {
var add_attachs=$('.add_attachment'); var add_attachs = $('.add_attachment');
var delete_all=$('.remove_all'); var delete_all = $('.remove_all');
if(delete_all.length<1){ if (delete_all.length < 1) {
add_attachs.append($("<a>&nbsp</a>").attr({"href":"javascript:void(0)", 'class': 'remove_all',"onclick": "removeAll()"})); add_attachs.append($("<a>&nbsp</a>").attr({
"href": "javascript:void(0)",
'class': 'remove_all',
"onclick": "removeAll()"
}));
} }
} }
}else{ } else {
var count=$('#attachments_fields'+containerid+'>span').length; var count = $('#attachments_fields' + containerid + '>span').length;
$('#upload_file_count'+containerid).html("<span id=\"count\">"+count+"</span>"+$(inputEl).data('fileCount')); $('#upload_file_count' + containerid).html("<span id=\"count\">" + count + "</span>" + $(inputEl).data('fileCount'));
if(count>=1){ if (count >= 1) {
var add_attachs=$('.add_attachment').filter(function(index){ var add_attachs = $('.add_attachment').filter(function(index) {
return $(this).data('containerid')==containerid; return $(this).data('containerid') == containerid;
}); });
var delete_all=$('.remove_all').filter(function(index){ var delete_all = $('.remove_all').filter(function(index) {
return $(this).data('containerid')==containerid; return $(this).data('containerid') == containerid;
}); });
if(delete_all.length<1){ if (delete_all.length < 1) {
add_attachs.append($("<a>&nbsp</a>").attr({ add_attachs.append($("<a>&nbsp</a>").attr({
"href":"javascript:void(0)", "href": "javascript:void(0)",
'class': 'remove_all', 'class': 'remove_all',
'data-containerid': containerid, 'data-containerid': containerid,
"onclick": "removeAll('"+containerid+"')" "onclick": "removeAll('" + containerid + "')"
})); }));
} }
} }
@ -186,7 +246,7 @@ function ajaxUpload(file, attachmentId, fileSpan, inputEl) {
var maxSyncUpload = $(inputEl).data('max-concurrent-uploads'); var maxSyncUpload = $(inputEl).data('max-concurrent-uploads');
if(maxSyncUpload == null || maxSyncUpload <= 0 || ajaxUpload.uploading < maxSyncUpload) if (maxSyncUpload == null || maxSyncUpload <= 0 || ajaxUpload.uploading < maxSyncUpload)
actualUpload(file, attachmentId, fileSpan, inputEl); actualUpload(file, attachmentId, fileSpan, inputEl);
else else
$(inputEl).parents('form').queue('upload', actualUpload.bind(this, file, attachmentId, fileSpan, inputEl)); $(inputEl).parents('form').queue('upload', actualUpload.bind(this, file, attachmentId, fileSpan, inputEl));
@ -201,23 +261,23 @@ function removeFile() {
//gcm delete all file //gcm delete all file
//modify by yutao 2015-5-14 当1个页面存在多个上传控件时此块代码存在bug 故改之 start //modify by yutao 2015-5-14 当1个页面存在多个上传控件时此块代码存在bug 故改之 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;
} }
// return false; //modify by yutao 2015-5-14 当1个页面存在多个上传控件时此块代码存在bug 故改之 end
} //gcm
//modify by yutao 2015-5-14 当1个页面存在多个上传控件时此块代码存在bug 故改之 end
//gcm
function uploadBlob(blob, uploadUrl, attachmentId, options) { function uploadBlob(blob, uploadUrl, attachmentId, options) {
@ -225,9 +285,9 @@ function uploadBlob(blob, uploadUrl, attachmentId, options) {
loadstartEventHandler: $.noop, loadstartEventHandler: $.noop,
progressEventHandler: $.noop progressEventHandler: $.noop
}, options); }, options);
if(uploadUrl.indexOf('?') > 0){ if (uploadUrl.indexOf('?') > 0) {
uploadUrl = uploadUrl + '&attachment_id=' + attachmentId; uploadUrl = uploadUrl + '&attachment_id=' + attachmentId;
}else{ } else {
uploadUrl = uploadUrl + '?attachment_id=' + attachmentId; uploadUrl = uploadUrl + '?attachment_id=' + attachmentId;
} }
if (blob instanceof window.File) { if (blob instanceof window.File) {
@ -254,7 +314,6 @@ function uploadBlob(blob, uploadUrl, attachmentId, options) {
function addInputFiles(inputEl) { function addInputFiles(inputEl) {
// 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); uploadAndAttachFiles(inputEl.files, inputEl);
@ -263,15 +322,22 @@ function addInputFiles(inputEl) {
// browser not supporting the file API, upload on form submission // browser not supporting the file API, upload on form submission
var attachmentId; var attachmentId;
var aFilename = inputEl.value.split(/\/|\\/); var aFilename = inputEl.value.split(/\/|\\/);
attachmentId = addFile(inputEl, { name: aFilename[ aFilename.length - 1 ] }, false); var count = $('#attachments_fields>span').length;
attachmentId = addFile(inputEl, {
name: aFilename[aFilename.length - 1]
}, false);
if (attachmentId) { if (attachmentId) {
$(inputEl).attr({ name: 'attachments[' + attachmentId + '][file]'}).hide(); $(inputEl).attr({
$('#upload_file_count').html("<span id=\"count\">"+count+"</span>"+$(inputEl).data('fileCount')); 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'); //clearedFileInput.insertAfter('#attachments_fields');
} }
function addInputFiles_board(inputEl, id) { function addInputFiles_board(inputEl, id) {
// var clearedFileInput = $(inputEl).clone().val(''); // var clearedFileInput = $(inputEl).clone().val('');
@ -283,15 +349,20 @@ function addInputFiles_board(inputEl, id) {
// browser not supporting the file API, upload on form submission // browser not supporting the file API, upload on form submission
var attachmentId; var attachmentId;
var aFilename = inputEl.value.split(/\/|\\/); var aFilename = inputEl.value.split(/\/|\\/);
attachmentId = addFile_board(inputEl, { name: aFilename[ aFilename.length - 1 ] }, false, id); attachmentId = addFile_board(inputEl, {
name: aFilename[aFilename.length - 1]
}, false, id);
if (attachmentId) { if (attachmentId) {
$(inputEl).attr({ name: 'attachments[' + attachmentId + '][file]'}).hide(); $(inputEl).attr({
$('#upload_file_count').html("<span id=\"count\">"+count+"</span>"+$(inputEl).data('fileCount')); name: 'attachments[' + attachmentId + '][file]'
}).hide();
$('#upload_file_count').html("<span id=\"count\">" + count + "</span>" + $(inputEl).data('fileCount'));
} }
} }
//clearedFileInput.insertAfter('#attachments_fields'); //clearedFileInput.insertAfter('#attachments_fields');
} }
function uploadAndAttachFiles(files, inputEl) { function uploadAndAttachFiles(files, inputEl) {
var maxFileSize = $(inputEl).data('max-file-size'); var maxFileSize = $(inputEl).data('max-file-size');
@ -299,14 +370,19 @@ function uploadAndAttachFiles(files, inputEl) {
var sizeExceeded = false; var sizeExceeded = false;
$.each(files, function() { $.each(files, function() {
if (this.size && maxFileSize != null && this.size > parseInt(maxFileSize)) {sizeExceeded=true;} if (this.size && maxFileSize != null && this.size > parseInt(maxFileSize)) {
sizeExceeded = true;
}
}); });
if (sizeExceeded) { if (sizeExceeded) {
window.alert(maxFileSizeExceeded); window.alert(maxFileSizeExceeded);
} else { } else {
$.each(files, function() {addFile(inputEl, this, true);}); $.each(files, function() {
addFile(inputEl, this, true);
});
} }
} }
function uploadAndAttachFiles_board(files, inputEl, id) { function uploadAndAttachFiles_board(files, inputEl, id) {
var maxFileSize = $(inputEl).data('max-file-size'); var maxFileSize = $(inputEl).data('max-file-size');
@ -314,14 +390,19 @@ function uploadAndAttachFiles_board(files, inputEl, id) {
var sizeExceeded = false; var sizeExceeded = false;
$.each(files, function() { $.each(files, function() {
if (this.size && maxFileSize != null && this.size > parseInt(maxFileSize)) {sizeExceeded=true;} if (this.size && maxFileSize != null && this.size > parseInt(maxFileSize)) {
sizeExceeded = true;
}
}); });
if (sizeExceeded) { if (sizeExceeded) {
window.alert(maxFileSizeExceeded); window.alert(maxFileSizeExceeded);
} else { } else {
$.each(files, function() {addFile_board(inputEl, this, true, id);}); $.each(files, function() {
addFile_board(inputEl, this, true, id);
});
} }
} }
function handleFileDropEvent(e) { function handleFileDropEvent(e) {
$(this).removeClass('fileover'); $(this).removeClass('fileover');
@ -345,7 +426,9 @@ function dragOutHandler(e) {
function setupFileDrop() { function setupFileDrop() {
if (window.File && window.FileList && window.ProgressEvent && window.FormData) { if (window.File && window.FileList && window.ProgressEvent && window.FormData) {
$.event.fixHooks.drop = { props: [ 'dataTransfer' ] }; $.event.fixHooks.drop = {
props: ['dataTransfer']
};
$('form div.box').has('input:file').each(function() { $('form div.box').has('input:file').each(function() {
$(this).on({ $(this).on({
@ -358,18 +441,18 @@ function setupFileDrop() {
} }
$(document).ready(setupFileDrop); $(document).ready(setupFileDrop);
$(function(){ $(function() {
$(".file_selector").each(function() { $(".file_selector").each(function() {
deleteallfiles = $(this).data('deleteAllFiles'); deleteallfiles = $(this).data('deleteAllFiles');
var containerid = $(this).data('containerid'); var containerid = $(this).data('containerid');
if (containerid == undefined)containerid = ''; if (containerid == undefined) containerid = '';
var count = $('#attachments_fields' + containerid + '>span').length; var count = $('#attachments_fields' + containerid + '>span').length;
if (count >= 1) { if (count >= 1) {
$('#upload_file_count' + containerid).html("<span id=\"count\">" + count + "</span>" + $(this).data('fileCount')); $('#upload_file_count' + containerid).html("<span id=\"count\">" + count + "</span>" + $(this).data('fileCount'));
var add_attachs = $('.add_attachment').filter(function (index) { var add_attachs = $('.add_attachment').filter(function(index) {
return $(this).data('containerid') == containerid; return $(this).data('containerid') == containerid;
}); });
var delete_all = $('.remove_all').filter(function (index) { var delete_all = $('.remove_all').filter(function(index) {
return $(this).data('containerid') == containerid; return $(this).data('containerid') == containerid;
}); });
if (delete_all.length < 1) { if (delete_all.length < 1) {

Loading…
Cancel
Save