From 742506f52b8fd000f8d4160ed50e9ed8c523cd95 Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Tue, 16 Jun 2015 21:13:40 +0800 Subject: [PATCH] =?UTF-8?q?IE8=E4=B8=8D=E8=83=BD=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/welcome_controller.rb | 6 +- app/views/student_work/edit.html.erb | 4 +- config/settings.yml | 6 + public/javascripts/attachments.js | 257 +++++++++++++++++--------- 4 files changed, 181 insertions(+), 92 deletions(-) diff --git a/app/controllers/welcome_controller.rb b/app/controllers/welcome_controller.rb index 20b855fd8..9ce107f8b 100644 --- a/app/controllers/welcome_controller.rb +++ b/app/controllers/welcome_controller.rb @@ -219,7 +219,7 @@ class WelcomeController < ApplicationController # 判断网站的入口,是课程 course 则跳过index去渲染 course 方法 def entry_select 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 course render :course @@ -228,7 +228,7 @@ class WelcomeController < ApplicationController end return 0 - elsif url.include?(Setting.host_contest.gsub('/','')) + elsif url.include?(Setting.url_contest.gsub('/','')) if @first_page.show_contest == 1 contest render :contest @@ -237,7 +237,7 @@ class WelcomeController < ApplicationController end return 0 - elsif url.include?(Setting.host_user.gsub('/','')) + elsif url.include?(Setting.url_user.gsub('/','')) #redirect_to(:controller => "users", :action => "index") end diff --git a/app/views/student_work/edit.html.erb b/app/views/student_work/edit.html.erb index f63c1792b..dfa995f47 100644 --- a/app/views/student_work/edit.html.erb +++ b/app/views/student_work/edit.html.erb @@ -12,7 +12,7 @@
- <%= labelled_form_for @work do |f|%> + <%= labelled_form_for @work,:html => { :multipart => true } do |f|%>

@@ -57,4 +57,4 @@

-
\ No newline at end of file +
diff --git a/config/settings.yml b/config/settings.yml index cf98025e0..f952e23bf 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -89,6 +89,12 @@ host_user: default: user.trustie.net host_repository: default: repository.trustie.net +url_course: + default: course.trustie.net +url_contest: + default: contest.trustie.net +url_user: + default: user.trustie.net protocol: default: http feeds_limit: diff --git a/public/javascripts/attachments.js b/public/javascripts/attachments.js index 3df755a7f..9c32e41dc 100644 --- a/public/javascripts/attachments.js +++ b/public/javascripts/attachments.js @@ -1,8 +1,7 @@ /* Redmine - project management software Copyright (C) 2006-2013 Jean-Philippe Lang */ -function postUpMsg(attachmentId) -{ +function postUpMsg(attachmentId) { $.ajax({ url: '/attachments/renderTag', type: "GET", @@ -30,28 +29,57 @@ function addFile_board(inputEl, file, eagerUpload, id) { deleteallfiles = $(inputEl).data('deleteAllFiles'); var attachmentId = addFile.nextAttachmentId++; - var fileSpan = $('', { 'id': 'attachments_' + attachmentId, 'class':'attachment' }); + var fileSpan = $('', { + 'id': 'attachments_' + attachmentId, + 'class': 'attachment' + }); fileSpan.append( - $('', { 'type': 'text', 'class': 'filename readonly', 'name': 'attachments[' + attachmentId + '][filename]', 'readonly': 'readonly'} ).val(file.name), - $('', { 'type': 'text', 'class': 'description', 'name': 'attachments[' + attachmentId + '][description]', 'maxlength': 254, 'placeholder': $(inputEl).data('descriptionPlaceholder') } ).toggle(!eagerUpload), - $(''+$(inputEl).data('fieldIsPublic')+':').attr({ 'class': 'ispublic-label' }) , - $('', { 'type': 'checkbox', 'class': 'is_public_checkbox','value':1, 'name': 'attachments[' + attachmentId + '][is_public_checkbox]', checked:'checked' } ).toggle(!eagerUpload), - $(' ').attr({ 'href': "#", 'class': 'remove-upload', 'data-containerid':id }).click(function(){ - if(confirm($(inputEl).data('areYouSure'))){ + $('', { + 'type': 'text', + 'class': 'filename readonly', + 'name': 'attachments[' + attachmentId + '][filename]', + 'readonly': 'readonly' + }).val(file.name), + $('', { + 'type': 'text', + 'class': 'description', + 'name': 'attachments[' + attachmentId + '][description]', + 'maxlength': 254, + 'placeholder': $(inputEl).data('descriptionPlaceholder') + }).toggle(!eagerUpload), + $('' + $(inputEl).data('fieldIsPublic') + ':').attr({ + 'class': 'ispublic-label' + }), + $('', { + 'type': 'checkbox', + 'class': 'is_public_checkbox', + 'value': 1, + 'name': 'attachments[' + attachmentId + '][is_public_checkbox]', + checked: 'checked' + }).toggle(!eagerUpload), + $(' ').attr({ + 'href': "#", + 'class': 'remove-upload', + 'data-containerid': id + }).click(function() { + if (confirm($(inputEl).data('areYouSure'))) { removeFile(); - if(!eagerUpload){ - (function(e){ + if (!eagerUpload) { + (function(e) { reload(e); })(fileSpan); } } }).toggle(!eagerUpload), - $('
', { 'class': 'div_attachments', 'name': 'div_'+'attachments_' + attachmentId} ) + $('
', { + 'class': 'div_attachments', + 'name': 'div_' + 'attachments_' + attachmentId + }) ).appendTo(attachments_frame); - if(eagerUpload) { + if (eagerUpload) { ajaxUpload(file, attachmentId, fileSpan, inputEl); } @@ -59,6 +87,7 @@ function addFile_board(inputEl, file, eagerUpload, id) { } return null; } + function addFile(inputEl, file, eagerUpload) { var attachments_frame = '#attachments_fields'; @@ -66,28 +95,56 @@ function addFile(inputEl, file, eagerUpload) { deleteallfiles = $(inputEl).data('deleteAllFiles'); var attachmentId = addFile.nextAttachmentId++; - var fileSpan = $('', { 'id': 'attachments_' + attachmentId, 'class':'attachment' }); + var fileSpan = $('', { + 'id': 'attachments_' + attachmentId, + 'class': 'attachment' + }); fileSpan.append( - $('', { 'type': 'text', 'class': 'filename readonly', 'name': 'attachments[' + attachmentId + '][filename]', 'readonly': 'readonly'} ).val(file.name), - $('', { 'type': 'text', 'class': 'description', 'name': 'attachments[' + attachmentId + '][description]', 'maxlength': 254, 'placeholder': $(inputEl).data('descriptionPlaceholder') } ).toggle(!eagerUpload), - $(''+$(inputEl).data('fieldIsPublic')+':').attr({ 'class': 'ispublic-label' }) , - $('', { 'type': 'checkbox', 'class': 'is_public_checkbox','value':1, 'name': 'attachments[' + attachmentId + '][is_public_checkbox]', checked:'checked' } ).toggle(!eagerUpload), - $(' ').attr({ 'href': "#", 'class': 'remove-upload' }).click(function(){ - if(confirm($(inputEl).data('areYouSure'))){ + $('', { + 'type': 'text', + 'class': 'filename readonly', + 'name': 'attachments[' + attachmentId + '][filename]', + 'readonly': 'readonly' + }).val(file.name), + $('', { + 'type': 'text', + 'class': 'description', + 'name': 'attachments[' + attachmentId + '][description]', + 'maxlength': 254, + 'placeholder': $(inputEl).data('descriptionPlaceholder') + }).toggle(!eagerUpload), + $('' + $(inputEl).data('fieldIsPublic') + ':').attr({ + 'class': 'ispublic-label' + }), + $('', { + 'type': 'checkbox', + 'class': 'is_public_checkbox', + 'value': 1, + 'name': 'attachments[' + attachmentId + '][is_public_checkbox]', + checked: 'checked' + }).toggle(!eagerUpload), + $(' ').attr({ + 'href': "#", + 'class': 'remove-upload' + }).click(function() { + if (confirm($(inputEl).data('areYouSure'))) { removeFile(); - if(!eagerUpload){ - (function(e){ + if (!eagerUpload) { + (function(e) { reload(e); })(fileSpan); } } }).toggle(!eagerUpload), - $('
', { 'class': 'div_attachments', 'name': 'div_'+'attachments_' + attachmentId} ) + $('
', { + 'class': 'div_attachments', + 'name': 'div_' + 'attachments_' + attachmentId + }) ).appendTo('#attachments_fields'); - if(eagerUpload) { + if (eagerUpload) { ajaxUpload(file, attachmentId, fileSpan, inputEl); } @@ -106,8 +163,8 @@ function ajaxUpload(file, attachmentId, fileSpan, inputEl) { } function onProgress(e) { - if(e.lengthComputable) { - this.progressbar( 'value', e.loaded * 100 / e.total ); + if (e.lengthComputable) { + this.progressbar('value', e.loaded * 100 / e.total); } } @@ -116,18 +173,17 @@ function ajaxUpload(file, attachmentId, fileSpan, inputEl) { ajaxUpload.uploading++; uploadBlob(file, $(inputEl).data('upload-path'), attachmentId, { - loadstartEventHandler: onLoadstart.bind(progressSpan), - progressEventHandler: onProgress.bind(progressSpan) - }) + loadstartEventHandler: onLoadstart.bind(progressSpan), + progressEventHandler: onProgress.bind(progressSpan) + }) .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.is_public_checkbox, a').css('display', 'inline-block'); }) .fail(function(result) { progressSpan.text(result.statusText); - if($("#network_issue")) - { + if ($("#network_issue")) { $("#network_issue").show(); } }).always(function() { @@ -143,33 +199,37 @@ function ajaxUpload(file, attachmentId, fileSpan, inputEl) { //gcm files count and add delete_all link //modify by yutao 2015-5-14 1ҳڶϴؼʱ˿bug ʸ֮ start - var containerid=$(inputEl).data('containerid'); - if(containerid==undefined){ - var count=$('#attachments_fields>span').length; - $('#upload_file_count').html(""+count+""+$(inputEl).data('fileCount')); - if(count>=1){ - var add_attachs=$('.add_attachment'); - var delete_all=$('.remove_all'); - if(delete_all.length<1){ - add_attachs.append($(" ").attr({"href":"javascript:void(0)", 'class': 'remove_all',"onclick": "removeAll()"})); + var containerid = $(inputEl).data('containerid'); + if (containerid == undefined) { + var count = $('#attachments_fields>span').length; + $('#upload_file_count').html("" + count + "" + $(inputEl).data('fileCount')); + if (count >= 1) { + var add_attachs = $('.add_attachment'); + var delete_all = $('.remove_all'); + if (delete_all.length < 1) { + add_attachs.append($(" ").attr({ + "href": "javascript:void(0)", + 'class': 'remove_all', + "onclick": "removeAll()" + })); } } - }else{ - var count=$('#attachments_fields'+containerid+'>span').length; - $('#upload_file_count'+containerid).html(""+count+""+$(inputEl).data('fileCount')); - if(count>=1){ - var add_attachs=$('.add_attachment').filter(function(index){ - return $(this).data('containerid')==containerid; + } else { + var count = $('#attachments_fields' + containerid + '>span').length; + $('#upload_file_count' + containerid).html("" + count + "" + $(inputEl).data('fileCount')); + if (count >= 1) { + var add_attachs = $('.add_attachment').filter(function(index) { + return $(this).data('containerid') == containerid; }); - var delete_all=$('.remove_all').filter(function(index){ - return $(this).data('containerid')==containerid; + var delete_all = $('.remove_all').filter(function(index) { + return $(this).data('containerid') == containerid; }); - if(delete_all.length<1){ + if (delete_all.length < 1) { add_attachs.append($(" ").attr({ - "href":"javascript:void(0)", + "href": "javascript:void(0)", 'class': 'remove_all', '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'); - if(maxSyncUpload == null || maxSyncUpload <= 0 || ajaxUpload.uploading < maxSyncUpload) + if (maxSyncUpload == null || maxSyncUpload <= 0 || ajaxUpload.uploading < maxSyncUpload) actualUpload(file, attachmentId, fileSpan, inputEl); else $(inputEl).parents('form').queue('upload', actualUpload.bind(this, file, attachmentId, fileSpan, inputEl)); @@ -201,23 +261,23 @@ function removeFile() { //gcm delete all file //modify by yutao 2015-5-14 1ҳڶϴؼʱ˿bug ʸ֮ start -function removeAll(containerid){ - if(confirm(deleteallfiles)){ - if(containerid==undefined){ - $(".remove-upload").removeAttr("data-confirm"); - $(".remove-upload").click(); - }else{ - var arr = $(".remove-upload").filter(function(){ - return $(this).data('containerid')==containerid; - }); - arr.removeAttr("data-confirm"); - arr.click(); +function removeAll(containerid) { + if (confirm(deleteallfiles)) { + if (containerid == undefined) { + $(".remove-upload").removeAttr("data-confirm"); + $(".remove-upload").click(); + } else { + var arr = $(".remove-upload").filter(function() { + return $(this).data('containerid') == containerid; + }); + arr.removeAttr("data-confirm"); + 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) { @@ -225,9 +285,9 @@ function uploadBlob(blob, uploadUrl, attachmentId, options) { loadstartEventHandler: $.noop, progressEventHandler: $.noop }, options); - if(uploadUrl.indexOf('?') > 0){ + if (uploadUrl.indexOf('?') > 0) { uploadUrl = uploadUrl + '&attachment_id=' + attachmentId; - }else{ + } else { uploadUrl = uploadUrl + '?attachment_id=' + attachmentId; } if (blob instanceof window.File) { @@ -254,7 +314,6 @@ function uploadBlob(blob, uploadUrl, attachmentId, options) { function addInputFiles(inputEl) { // var clearedFileInput = $(inputEl).clone().val(''); - if (inputEl.files) { // upload files using ajax uploadAndAttachFiles(inputEl.files, inputEl); @@ -263,15 +322,22 @@ function addInputFiles(inputEl) { // browser not supporting the file API, upload on form submission var attachmentId; 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) { - $(inputEl).attr({ name: 'attachments[' + attachmentId + '][file]'}).hide(); - $('#upload_file_count').html(""+count+""+$(inputEl).data('fileCount')); + $(inputEl).attr({ + name: 'attachments[' + attachmentId + '][file]' + }).hide(); + if (count <= 0) count = 1; + $('#upload_file_count').html("" + count + "" + $(inputEl).data('fileCount')); } } //clearedFileInput.insertAfter('#attachments_fields'); } + function addInputFiles_board(inputEl, id) { // var clearedFileInput = $(inputEl).clone().val(''); @@ -283,15 +349,20 @@ function addInputFiles_board(inputEl, id) { // browser not supporting the file API, upload on form submission var attachmentId; 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) { - $(inputEl).attr({ name: 'attachments[' + attachmentId + '][file]'}).hide(); - $('#upload_file_count').html(""+count+""+$(inputEl).data('fileCount')); + $(inputEl).attr({ + name: 'attachments[' + attachmentId + '][file]' + }).hide(); + $('#upload_file_count').html("" + count + "" + $(inputEl).data('fileCount')); } } //clearedFileInput.insertAfter('#attachments_fields'); } + function uploadAndAttachFiles(files, inputEl) { var maxFileSize = $(inputEl).data('max-file-size'); @@ -299,14 +370,19 @@ function uploadAndAttachFiles(files, inputEl) { var sizeExceeded = false; $.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) { window.alert(maxFileSizeExceeded); } else { - $.each(files, function() {addFile(inputEl, this, true);}); + $.each(files, function() { + addFile(inputEl, this, true); + }); } } + function uploadAndAttachFiles_board(files, inputEl, id) { var maxFileSize = $(inputEl).data('max-file-size'); @@ -314,14 +390,19 @@ function uploadAndAttachFiles_board(files, inputEl, id) { var sizeExceeded = false; $.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) { window.alert(maxFileSizeExceeded); } else { - $.each(files, function() {addFile_board(inputEl, this, true, id);}); + $.each(files, function() { + addFile_board(inputEl, this, true, id); + }); } } + function handleFileDropEvent(e) { $(this).removeClass('fileover'); @@ -345,7 +426,9 @@ function dragOutHandler(e) { function setupFileDrop() { 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() { $(this).on({ @@ -358,18 +441,18 @@ function setupFileDrop() { } $(document).ready(setupFileDrop); -$(function(){ +$(function() { $(".file_selector").each(function() { deleteallfiles = $(this).data('deleteAllFiles'); var containerid = $(this).data('containerid'); - if (containerid == undefined)containerid = ''; + if (containerid == undefined) containerid = ''; var count = $('#attachments_fields' + containerid + '>span').length; if (count >= 1) { $('#upload_file_count' + containerid).html("" + count + "" + $(this).data('fileCount')); - var add_attachs = $('.add_attachment').filter(function (index) { + var add_attachs = $('.add_attachment').filter(function(index) { 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; }); if (delete_all.length < 1) { @@ -383,4 +466,4 @@ $(function(){ } }); -}); \ No newline at end of file +});