作业提交的部分问题

禁止js的情况
修复一些路由错误
ie提交的问题.
This commit is contained in:
yanxd 2013-12-19 15:59:10 +08:00
parent ca9da99f7e
commit 60be338848
16 changed files with 146 additions and 92 deletions

View File

@ -3,7 +3,7 @@ class BidsController < ApplicationController
#Added by young #Added by young
menu_item l(:label_homework), :only => [:edit, :udpate] menu_item l(:label_homework), :only => [:edit, :udpate]
menu_item :respond menu_item :respond
menu_item :project, :only => [:show_project,:show_results] menu_item :project, :only => [:show_project,:show_results, :new_submit_homework]
menu_item :homework_respond, :only => :homework_respond menu_item :homework_respond, :only => :homework_respond
menu_item :homework_statistics, :only => :homework_statistics menu_item :homework_statistics, :only => :homework_statistics
#Ended by young #Ended by young
@ -714,23 +714,41 @@ class BidsController < ApplicationController
end end
end end
def new_submit_homework
#render html to prepare create submit homework
find_bid
render :layout => 'base_homework'
end
def add_homework def add_homework
if User.current.logged? && (!Member.where('user_id = ? and project_id = ?', User.current.id, @bid.courses.first.id).first.nil? && (Member.where('user_id = ? and project_id = ?', User.current.id, @bid.courses.first.id).first.roles&Role.where('id = ? or id = ? or id =?',5, 10, 7)).size >0) if User.current.logged? && (!Member.where('user_id = ? and project_id = ?', User.current.id, @bid.courses.first.id).first.nil? && (Member.where('user_id = ? and project_id = ?', User.current.id, @bid.courses.first.id).first.roles&Role.where('id = ? or id = ? or id =?',5, 10, 7)).size >0)
# homework = HomeworkAttach.create(:bid_id => @bid.id, :user_id => User.current.id) # homework = HomeworkAttach.create(:bid_id => @bid.id, :user_id => User.current.id)
# homework.save_attachments(params[:attachments] || (params[:bid] && params[:bid][:uploads])) # homework.save_attachments(params[:attachments] || (params[:bid] && params[:bid][:uploads]))
@homework = HomeworkAttach.new @homework = HomeworkAttach.new
@homework.safe_attributes = params[:homeworkattach]
@homework.bid_id = @bid.id @homework.bid_id = @bid.id
@homework.user_id = User.current.id @homework.user_id = User.current.id
@homework.save_attachments(params[:attachments]) @homework.save_attachments(params[:attachments])
@homework.save render_attachment_warning_if_needed(@homework)
if @homework.save
@homework_flag = l(:label_bidding_homework_succeed)
else
@homework_flag = l(:label_bidding_homework_failed)
end
if @homework.attachments.empty? if @homework.attachments.empty?
@homework.delete @homework.delete
flash[:error] = l(:no_attachmens_allowed) flash[:error] = l(:no_attachmens_allowed)
@homework_flag = l(:no_attachmens_allowed)
# else # else
end end
end end
@homework_list = @bid.homeworks @homework_list = @bid.homeworks
@homework = HomeworkAttach.new respond_to do |format|
format.html{
redirect_to project_for_bid_path, notice: @homework_flag.to_s
}
format.js
end
end end

View File

@ -1,9 +1,10 @@
class HomeworkAttach < ActiveRecord::Base class HomeworkAttach < ActiveRecord::Base
attr_accessible :bid_id, :user_id include Redmine::SafeAttributes
belongs_to :user belongs_to :user
belongs_to :bid belongs_to :bid
safe_attributes "bid_id",
"user_id"
acts_as_attachable acts_as_attachable
end end

View File

@ -1,4 +1,8 @@
var fileSpan = $('#attachments_<%= j params[:attachment_id] %>'); var fileSpan = $('#attachments_<%= j params[:attachment_id] %>');
<% if @attachment.new_record? %>
fileSpan.hide();
alert("<%= escape_javascript @attachment.errors.full_messages.join(', ') %>");
<% else %>
$('<input>', { type: 'hidden', name: 'attachments[<%= j params[:attachment_id] %>][token]' } ).val('<%= j @attachment.token %>').appendTo(fileSpan); $('<input>', { type: 'hidden', name: 'attachments[<%= j params[:attachment_id] %>][token]' } ).val('<%= j @attachment.token %>').appendTo(fileSpan);
fileSpan.find('a.remove-upload') fileSpan.find('a.remove-upload')
.attr({ .attr({
@ -7,3 +11,4 @@ fileSpan.find('a.remove-upload')
href: '<%= j attachment_path(@attachment, :attachment_id => params[:attachment_id], :format => 'js') %>' href: '<%= j attachment_path(@attachment, :attachment_id => params[:attachment_id], :format => 'js') %>'
}) })
.off('click'); .off('click');
<% end %>

View File

@ -1,21 +1,33 @@
<%= render_flash_messages %>
<div id="put-bid-form" style="display: none"> <div id="put-bid-form" style="display: none">
<%= form_for "bid_for_save", :remote=>true, :url => {:controller => 'bids', :action => 'add_homework'}, <%= form_for HomeworkAttach.new, :url => {:controller => 'bids', :action => 'add_homework'}, :update => "bidding_project_list", :complete => '$("#put-bid-form").hide();', :html => {:multipart => true, :id => 'add_homework_form'} do |f| %>
:update => "bidding_project_list",
:complete => '$("#put-bid-form").hide();' do |f| %>
<fieldset> <fieldset>
<legend> <legend>
<%= l(:label_attachment_plural) %> <%= l(:label_attachment_plural) %>
</legend> </legend>
<p id="put-bid-form-partial"> <p id="put-bid-form-partial">
<%= render :partial => 'attachments/form', :locals => {:container => @homework} %> <%= render :partial => 'attachments/form' %>
</p> </p>
</fieldset> </fieldset>
<%= submit_tag l(:button_create) %> <%= submit_tag l(:button_create),
:onclick => "return true;"
%>
<% end %> <% end %>
<script type="text/javascript">
function j_submit () {
alert('start')
var submit_homework = function(){
$('#add_homework_form').clone().attr('action', '<%= url_for({:controller => "bids", :action => "add_homework"})+".js" %>').ajaxSubmit()
};
alert('stop')
$.globalEval(submit_homework());
return false;
}
</script>
</div> </div>
<% if User.current.logged? && (!Member.where('user_id = ? and project_id = ?', User.current.id, @bid.courses.first.id).first.nil? && (Member.where('user_id = ? and project_id = ?', User.current.id, @bid.courses.first.id).first.roles&Role.where('id = ? or id = ? or id =?',5, 10, 7)).size >0) %> <% if User.current.logged? && (!Member.where('user_id = ? and project_id = ?', User.current.id, @bid.courses.first.id).first.nil? && (Member.where('user_id = ? and project_id = ?', User.current.id, @bid.courses.first.id).first.roles&Role.where('id = ? or id = ? or id =?',5, 10, 7)).size >0) %>
<div class='icon icon-add'> <div class='icon icon-add'>
<%= toggle_link l(:label_commit_homework), 'put-bid-form' %> <%= link_to l(:label_commit_homework), new_submit_homework_path, :onclick => "$('#put-bid-form').slideToggle(); this.blur(); return false;" %>
</div> </div>
<% end %> <% end %>

View File

@ -1,5 +1,4 @@
<!-- fq --> <!-- fq -->
<%= render_flash_messages %>
<%= form_tag(:controller => 'bids', :action => "show_project", :method => :get) do %> <%= form_tag(:controller => 'bids', :action => "show_project", :method => :get) do %>
<div class="project-search-block"> <div class="project-search-block">
<table width="100%" valign="center"> <table width="100%" valign="center">

View File

@ -1,5 +1,7 @@
$('#bidding_project_list').html('<%= escape_javascript(render(:partial => 'homework_list', :locals => {:homework => @homework_list})) %>'); $('#bidding_project_list').html('<%= escape_javascript(render(:partial => 'homework_list', :locals => {:homework => @homework_list})) %>');
$('#put-bid-form-partial').html(' <%= escape_javascript( render( :partial => 'attachments/form', :locals => {:container => @homework}) )%>') $('#put-bid-form-partial').html(' <%= escape_javascript( render( :partial => 'attachments/form') )%>')
$('#flash_notice').remove()
$("#project_id").val("请选择项目"); $("#project_id").val("请选择项目");
$("#bid_message").val( "<%= l(:label_bid_reason) %>" ); $("#bid_message").val( "<%= l(:label_bid_reason) %>" );
$("#put-bid-form").hide(); $("#put-bid-form").hide();
alert('<%= @homework_flag %>');

View File

@ -0,0 +1,15 @@
<h3><%= l :label_bidding_homework %></h3>
<div id="put-bid-form">
<%= form_for HomeworkAttach.new, :method => :post, :url => {:controller => 'bids', :action => 'add_homework'}, :update => "bidding_project_list", :complete => '$("#put-bid-form").hide();', :html => {:multipart => true} do |f| %>
<fieldset>
<legend>
<%= l(:label_attachment_plural) %>
</legend>
<p id="put-bid-form-partial">
<%= render :partial => 'attachments/form' %>
</p>
</fieldset>
<%= submit_tag l(:button_create) %>
<%= link_to (t :button_back), project_for_bid_homework_path %>
<% end %>
</div>

View File

@ -25,7 +25,7 @@
</p> </p>
</div> </div>
<div class="reviews"> <div class="reviews">
<%= content_tag('a', tag('img', {:src => '../images/pai.png', :class => 'img-ta'}, false, false), :class => 'img-tag3') %> <%= content_tag('a', tag('img', {:class => 'img-ta'}, false, false), :class => 'img-tag3') %>
<%= content_tag('div', "Vert High Activity", :class => 'img-tag4') %> <%= content_tag('div', "Vert High Activity", :class => 'img-tag4') %>
<%= content_tag('div', tag('img', {:src => '../images/stars_ro.png', :class => 'img-ta'}, false, false), :class => 'img-tag2') %> <%= content_tag('div', tag('img', {:src => '../images/stars_ro.png', :class => 'img-ta'}, false, false), :class => 'img-tag2') %>
<%= content_tag('div', "#{WatchersOfProjects.watcher_count(project)}Reviews", :class => 'img-tag1') %> <%= content_tag('div', "#{WatchersOfProjects.watcher_count(project)}Reviews", :class => 'img-tag1') %>

View File

@ -4,7 +4,7 @@
:html => { :accesskey => Redmine::AccessKeys.key_for(:new_issue) }, :class => 'icon icon-add' %> :html => { :accesskey => Redmine::AccessKeys.key_for(:new_issue) }, :class => 'icon icon-add' %>
<%= link_to l(:label_query), '#', :class => 'icon icon-help', <%= link_to l(:label_query), '#', :class => 'icon icon-help',
:onclick => '$("#custom_query").toggle(); ' if User.current.logged? %> :onclick => '$("#custom_query").slideToggle(); ' if User.current.logged? %>
</div> </div>
</div> </div>

View File

@ -8,7 +8,7 @@
<%= csrf_meta_tag %> <%= csrf_meta_tag %>
<%= favicon %> <%= favicon %>
<%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2', 'application', :media => 'all' %> <%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2', 'application', 'nyan', :media => 'all' %>
<%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %> <%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %>
<%= javascript_heads %> <%= javascript_heads %>
<%= heads_for_theme %> <%= heads_for_theme %>

View File

@ -1,4 +1,4 @@
<%= form_for(@mome_new, url: forum_memos_path) do |f| %> <%= form_for(@mome_new, url: forum_memos_path, :html => {:multipart => true}) do |f| %>
<%= f.hidden_field :subject, :required => true, value: @memo.subject %> <%= f.hidden_field :subject, :required => true, value: @memo.subject %>
<%= f.hidden_field :forum_id, :required => true, value: @memo.forum_id %> <%= f.hidden_field :forum_id, :required => true, value: @memo.forum_id %>
<%= f.hidden_field :parent_id, :required => true, value: @memo.id %> <%= f.hidden_field :parent_id, :required => true, value: @memo.id %>
@ -8,7 +8,7 @@
<script type="text/javascript">var ckeditor=CKEDITOR.replace('editor01');</script> <script type="text/javascript">var ckeditor=CKEDITOR.replace('editor01');</script>
<p><%= l(:label_attachment_plural) %><br /> <p><%= l(:label_attachment_plural) %><br />
<%= render :partial => 'attachments/form', :locals => {:container => @mome_new} %> <%= render :partial => 'attachments/form' %>
</p> </p>
<%= f.submit value: l(:label_reply_plural), class: "replies" %> <%= f.submit value: l(:label_reply_plural), class: "replies" %>
<% end %> <% end %>

View File

@ -1331,6 +1331,7 @@ zh:
label_bidding_succeed: 应标成功 label_bidding_succeed: 应标成功
label_bidding_contest_succeed: 竞赛提交成功 #added by bai label_bidding_contest_succeed: 竞赛提交成功 #added by bai
label_bidding_homework_succeed: 作业提交成功 #added by bai label_bidding_homework_succeed: 作业提交成功 #added by bai
label_bidding_homework_failed: 作业提交失败 #added by bai
label_bidding_fail: 应标失败,该项目已经应标 label_bidding_fail: 应标失败,该项目已经应标
label_bidding_homework_fail: 作业提交失败,该作业已经被提交! label_bidding_homework_fail: 作业提交失败,该作业已经被提交!

View File

@ -466,7 +466,8 @@ RedmineApp::Application.routes.draw do
match 'calls/:id/show_project', :controller => 'bids', :action => 'show_project', :as => 'project_for_bid' match 'calls/:id/show_project', :controller => 'bids', :action => 'show_project', :as => 'project_for_bid'
match 'calls/:id/show_project_homework', :controller => 'bids', :action => 'show_project_homework', :as => 'project_for_bid_homework' # by huang match 'calls/:id/show_project_homework', :controller => 'bids', :action => 'show_project_homework', :as => 'project_for_bid_homework' # by huang
match 'calls/:id/add', :controller => 'bids', :action => 'add' match 'calls/:id/add', :controller => 'bids', :action => 'add'
match 'calls/:id/add_homework', :controller => 'bids', :action => 'add_homework' match 'calls/:id/add_homework', :controller => 'bids', :action => 'add_homework', via: :post
match 'calls/:id/new_submit_homework', to: 'bids#new_submit_homework', via: :get, as: 'new_submit_homework'
match 'words/add_project_respond', :controller => 'words', :action => 'add_project_respond' match 'words/add_project_respond', :controller => 'words', :action => 'add_project_respond'
match 'words/:id/leave_project_message', :controller => 'words', :action => 'leave_project_message' match 'words/:id/leave_project_message', :controller => 'words', :action => 'leave_project_message'
@ -499,7 +500,7 @@ RedmineApp::Application.routes.draw do
match 'new_join_in_contest', :to => 'bids#new_join', :as => 'try_join_in_contest' match 'new_join_in_contest', :to => 'bids#new_join', :as => 'try_join_in_contest'
match 'projects/:id/respond', :to => 'projects#project_respond', :via => :post match 'projects/:id/respond', :to => 'projects#project_respond', :via => :post
match 'calls/:id/manage',:to => 'bids#manage',:via => [:get,:post] match 'calls/:id/manage',:to => 'bids#manage',:via => [:get,:post]
match 'project/course', :to => 'projects#course', :as => 'course' #nyan match 'project/course', :to => 'projects#course', :as => 'course'
#added by william #added by william
# match 'calls/:id/set_results',:controller => 'bids', :action => 'set_results',:via => [:get,:post],:as => 'set_results' # match 'calls/:id/set_results',:controller => 'bids', :action => 'set_results',:via => [:get,:post],:as => 'set_results'

View File

@ -141,7 +141,7 @@ function uploadAndAttachFiles(files, inputEl) {
var sizeExceeded = false; var sizeExceeded = false;
$.each(files, function() { $.each(files, function() {
if (this.size && maxFileSize && 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);

View File

@ -211,7 +211,7 @@ div.forums-line{
} }
div.forums-info{ div.forums-info{
background-image: url(../images/sidebar/forums.png); /*background-image: url(../images/sidebar/forums.png); */
border-bottom: solid 1px #15bccf; border-bottom: solid 1px #15bccf;
height: 100px; height: 100px;
width: 214px; width: 214px;

View File

@ -36,7 +36,7 @@
@media only screen and (-webkit-min-device-pixel-ratio: 2), @media only screen and (-webkit-min-device-pixel-ratio: 2),
only screen and (min-device-pixel-ratio: 2) { only screen and (min-device-pixel-ratio: 2) {
#header > h1 { #header > h1 {
background-image:ol url(../images/logo-2x.png); /*background-image:ol url(../images/logo-2x.png);*/
background-size: 43px 30px; background-size: 43px 30px;
} }
} }
@ -1251,7 +1251,7 @@ a.root {
a.img-tag3{ a.img-tag3{
float: left; float: left;
background-image: url("../images/pai.png"); /*background-image: url("../images/pai.png");*/
background-position: 0px 0px; background-position: 0px 0px;
background-repeat: no-repeat; background-repeat: no-repeat;
position: absolute; position: absolute;
@ -1891,7 +1891,7 @@ div.tableline{
* *
* @2013-09-27 * @2013-09-27
/*added by bai*/ /*added by bai*/
input[type="submit"] { input[type="submit"], .button_submit {
padding-bottom: 5px; padding-bottom: 5px;
width: auto; width: auto;
height: 25px; height: 25px;