diff --git a/app/controllers/student_work_controller.rb b/app/controllers/student_work_controller.rb index 17c98e3b1..593d6bf53 100644 --- a/app/controllers/student_work_controller.rb +++ b/app/controllers/student_work_controller.rb @@ -42,9 +42,6 @@ class StudentWorkController < ApplicationController end end - - - render :json => resultObj end @@ -165,24 +162,23 @@ class StudentWorkController < ApplicationController def create if params[:student_work] - stundet_work = StudentWork.find(params[:student_work_id]) if params[:student_work_id] - stundet_work ||= StudentWork.new - stundet_work.name = params[:student_work][:name] - stundet_work.description = params[:student_work][:description] - stundet_work.project_id = params[:student_work][:project_id] - stundet_work.homework_common_id = @homework.id - stundet_work.user_id = User.current.id - stundet_work.save_attachments(params[:attachments]) + student_work = StudentWork.find(params[:student_work_id]) if params[:student_work_id] + student_work ||= StudentWork.new + student_work.name = params[:student_work][:name] + student_work.description = params[:student_work][:description] + student_work.project_id = params[:student_work][:project_id] + student_work.homework_common_id = @homework.id + student_work.user_id = User.current.id + student_work.save_attachments(params[:attachments]) if Time.parse(@homework.end_time.to_s).strftime("%Y-%m-%d") < Time.parse(Time.now.to_s).strftime("%Y-%m-%d") - stundet_work.late_penalty = @homework.late_penalty + student_work.late_penalty = @homework.late_penalty else - stundet_work.late_penalty = 0 + student_work.late_penalty = 0 end - render_attachment_warning_if_needed(stundet_work) - if stundet_work.save - if @homework.homework_type == 2 && @homework.homework_detail_programing #编程作业,学生提交作品后计算系统得分 - - end + render_attachment_warning_if_needed(student_work) + + if student_work.save + respond_to do |format| format.html { flash[:notice] = l(:notice_successful_create) @@ -624,7 +620,7 @@ class StudentWorkController < ApplicationController end def find_or_save_student_work(is_test) - student_work = @homework.student_works.where(user_id: User.current.id).first + student_work = StudentWork.where(homework_common_id: @homework.id, user_id: User.current.id).first if student_work.nil? @homework.student_works.build( name: params[:title], @@ -633,6 +629,7 @@ class StudentWorkController < ApplicationController is_test: is_test ) unless @homework.save + logger.debug @homework.errors.full_messages else student_work = @homework.student_works.where(user_id: User.current.id).first end diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 9c6492448..9b2d49f2d 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -300,6 +300,7 @@ class UsersController < ApplicationController @page = params[:page] ? params[:page].to_i + 1 : 0 user_course_ids = @user.courses.empty? ? "(-1)" :"(" + @user.courses.visible.map{|course| course.id}.join(",") + ")" @homework_commons = HomeworkCommon.where("course_id in #{user_course_ids}").order("created_at desc").limit(10).offset(@page * 10) + @is_teacher = User.current.user_extensions && User.current.user_extensions.identity == 0 && User.current.allowed_to?(:add_course, nil, :global => true) respond_to do |format| format.js format.html {render :layout => 'new_base_user'} @@ -367,8 +368,15 @@ class UsersController < ApplicationController end def user_commit_homework - flash[:notice] = l(:notice_successful_create) - redirect_to student_work_index_url(:homework => params[:homework]) + homework = HomeworkCommon.find(params[:homework]) + student_work = homework.student_works.where(user_id: User.current.id).first + if student_work + student_work.save + flash[:notice] = l(:notice_successful_create) + redirect_to student_work_index_url(:homework => params[:homework]) + else + render_403 + end end def user_new_homework diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index f4a70117f..4c78c03df 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -2359,7 +2359,7 @@ module ApplicationHelper link_to "提交作品", new_student_work_path(:homework => homework.id),:class => 'c_blue' else if homework.homework_type == 1 && homework.homework_detail_manual && homework.homework_detail_manual.comment_status != 1 #匿评作业,且作业状态不是在开启匿评之前 - link_to "修改作品", "", :class => 'c_blue', :title => "开启匿评后不可修改作品" + link_to "作品已交", "", :class => 'c_blue', :title => "开启匿评后不可修改作品" elsif homework.homework_type == 2 #编程作业不能修改作品 link_to "作品已交", student_work_index_path(:homework => homework.id),:class => 'c_blue',:title => "编程作业不可修改作品" else diff --git a/app/models/homework_common.rb b/app/models/homework_common.rb index b51de6c2c..0bff38558 100644 --- a/app/models/homework_common.rb +++ b/app/models/homework_common.rb @@ -56,6 +56,10 @@ class HomeworkCommon < ActiveRecord::Base Mailer.run.homework_added(self) end + def is_program_homework? + self.homework_type == 2 && self.homework_detail_programing + end + delegate :language_name, :to => :homework_detail_programing end diff --git a/app/models/student_work.rb b/app/models/student_work.rb index d7287dcc4..0a5c1b65c 100644 --- a/app/models/student_work.rb +++ b/app/models/student_work.rb @@ -10,10 +10,32 @@ class StudentWork < ActiveRecord::Base has_many :student_work_tests, order: 'id desc' before_destroy :delete_praise + before_save :set_program_score, :set_src acts_as_attachable def delete_praise PraiseTread.where("praise_tread_object_id = #{self.id} AND praise_tread_object_type = 'StudentWork'").destroy_all end + + def last_test + student_work_tests.order('id desc').first + end + + private + def set_program_score + if homework_common.is_program_homework? #编程作业,学生提交作品后计算系统得分 + #根据最后一次测试计算得分 + unless last_test + self.system_score = 0 + else + self.system_score = last_test.test_score + end + end + + end + def set_src + self.description = last_test.src if last_test + end + end diff --git a/app/models/student_work_test.rb b/app/models/student_work_test.rb index 96aa1d6c3..1cfb7f8b2 100644 --- a/app/models/student_work_test.rb +++ b/app/models/student_work_test.rb @@ -34,10 +34,19 @@ class StudentWorkTest < ActiveRecord::Base def test_score if self.status.to_i == 0 - format("%.1f",100.0 / self.student_work.homework_common.homework_tests.count) - else + 100 + elsif self.results.empty? 0 + else + get_success_count * 100 / self.results.count end end + private + def get_success_count + self.results.inject(0) do |sum, result| + sum += (result["status"].to_i == 0 ? 1 : 0) + end || 0 + end + end diff --git a/app/views/admin/latest_login_users.html.erb b/app/views/admin/latest_login_users.html.erb index c438dcebd..28ef8091e 100644 --- a/app/views/admin/latest_login_users.html.erb +++ b/app/views/admin/latest_login_users.html.erb @@ -70,18 +70,20 @@ <%=link_to(user.login, user_path(user)) %> - <% case user.user_extensions.identity %> - <% when 0 %> - <%='老师' %> - <% when 1 %> - <%='学生' %> - <% when 2 %> - <%='企业' %> - <% when 3 %> - <%='开发者' %> - <% else %> - <%='未知身份' %> - <% end %> + <%if user.user_extensions%> + <% case user.user_extensions.identity %> + <% when 0 %> + <%='老师' %> + <% when 1 %> + <%='学生' %> + <% when 2 %> + <%='企业' %> + <% when 3 %> + <%='开发者' %> + <% else %> + <%='未知身份' %> + <% end %> + <% end%> <% end %> diff --git a/app/views/student_work/edit.html.erb b/app/views/student_work/edit.html.erb index 5bb362b46..deb6a1201 100644 --- a/app/views/student_work/edit.html.erb +++ b/app/views/student_work/edit.html.erb @@ -1,54 +1,62 @@ -
-
-
编辑作品
-
-
-
-
- <%= labelled_form_for @work,:html => { :multipart => true } do |f|%> -
-

- - - 项目信息 - - -

-

-

-
- -

- - <%= f.select :project,options_for_select(user_projects_option,@work.project_id), {},{:class => "bo02 mb10"} %> -

-
+
+
编辑作品
+
+
-

- - -

-

-
-

- - <%= render :partial => 'attachments/new_form',:locals => {:container => @work} %> -

-
-

- 提交作品 - <%= link_to "返  回".html_safe, student_work_index_path(:homework => @homework), :class => "blue_btn grey_btn fl c_white mt10 ml10"%> -

-

-
- <% end%> +
+
+
+
+ <%= @homework.name%>(作业名称) +
+ + 截止时间:<%= @homework.end_time%> + +
+ + <%= link_to @homework.user.show_name, user_activities_path(@homework.user_id), :class => "c_blue"%> + +
+
+ <%= @homework.description.html_safe %>
-
-
-
+
+
+ +
+ <%= labelled_form_for @work,:html => { :multipart => true } do |f|%> +
+ 提示:作品名称和描述中不要出现真实的姓名信息 +
+
+ +
+ +
+

+
+
+ + +
+

+
+ +
+ <%= render :partial => 'users/user_homework_attachment', :locals => {:container => @work, :has_program=>false} %> +
+ +
+ 确定 + + <%= link_to "取消", student_work_index_path(:homework => @homework), :class => "fr mr10 mt3"%> +
+
+ <% end%> +
diff --git a/app/views/student_work/new.html.erb b/app/views/student_work/new.html.erb index f0f4d8e7c..8f36d3dd5 100644 --- a/app/views/student_work/new.html.erb +++ b/app/views/student_work/new.html.erb @@ -1,8 +1,4 @@ -<% content_for :header_tags do %> - <%= javascript_include_tag 'homework','baiduTemplate' %> -<% end %> - -<% if @homework.homework_type == 1 %> + -
-
-
提交作品
-
-
-
-
- <%= form_for(@student_work, - :html => { :multipart => true }, - :url => {:controller => 'student_work', - :action => 'create', - :homework => @homework.id - }) do |f|%> -
- <% if @homework.homework_type == 1%> -
- 提示:匿评作业提交的作品,作品名称和描述中不能出现真实的姓名信息 -
- <% end%> -

- - <%= f.text_field "name", :required => true, :size => 60, :class => "bo fl", :maxlength => 200, :placeholder => "作品名称", :onkeyup => "regexStudentWorkName();" %> - <% if @homework.homework_type != 2%> - - 项目信息 - - - <% end%> -

-

-

-
-

- - <%= f.select :project_id,options_for_select(user_projects_option), {},{:class => "bo02 mb10"} %> -

-
-

- - <% if @homework.homework_type == 2 && @homework.homework_detail_programing%> - <%= f.text_area "description", :class => "w620 hwork_txt h400", :placeholder => "作品描述不能为空", :onkeyup => "regexStudentWorkDescription();", :value => @homework.homework_detail_programing.language == "1" ? c_stantard_code_student : c_stantard_code_student_%> - <% else %> - <%= f.text_area "description", :class => "w620 hwork_txt", :placeholder => "作品描述不能为空", :onkeyup => "regexStudentWorkDescription();"%> - <% end%> -

-

-

-
- <% if @homework.homework_type != 2%> -

- - <%= render :partial => 'attachments/new_form' %> -

-
- <% end%> -

- 提交作品 - <%= link_to "返  回".html_safe, student_work_index_path(:homework => @homework), :class => "blue_btn grey_btn fl c_white mt10 ml10"%> -

-

-
- <% end%> -
-
-
-
-
-<% else %> +
+
提交作品
+
+
+
- - - +
+
+
+
+ <%= form_for(@student_work, + :html => { :multipart => true }, + :url => {:controller => 'student_work', + :action => 'create', + :homework => @homework.id + }) do |f|%> +
+ 提示:作品名称和描述中不要出现真实的姓名信息 +
+
-
-
-
提交作品
+
+ <%= f.text_field "name", :required => true, :size => 60, :class => "InputBox W700", :maxlength => 200, :placeholder => "请简洁的概括作品的功能或特性", :onkeyup => "regexStudentWorkName();" %> +
+

+
+
+ <%= f.text_area "description", :class => "InputBox W700 H150", :placeholder => "请介绍你的作品", :onkeyup => "regexStudentWorkDescription();"%> + +
+

-
-
-
<%= @homework.name %>
截止时间:<%= @homework.end_time %> -
- <%= @homework.user.show_name %> -

<%= @homework.description %>
-输入 2 1 1 4 4 2 3 6 5
-输出 15
-

-
-

注:迟交扣2分,缺评一个作品扣2

-
-
- <%= form_for(@student_work, - :html => { :multipart => true }, - :url => {:controller => 'student_work', - :action => 'create', - :student_work_id => @student_work.id, - :homework => @homework.id - }, - :method => :post) do |f|%> -
- 请使用 <%= @homework.language_name %> 语言编写 -
-
- <%= f.text_area :name, id: 'program-title', class:"InputBox W700", placeholder:"请概括你的代码的功能" %> -
-
- <%= f.text_area :description, id: 'program-src', class:" W700 H150", placeholder:"请贴入你的代码", rows: 10 %> -
- - <% end %> -
-
-
- <% @student_work.student_work_tests.each_with_index do |test, index| %> -
-

第<%= @student_work.student_work_tests.count - index%>次测试

<%= test.created_at.to_s(:db) %> -
-
- <% if test.status.to_i == -2 %> -
<%= test.results.first %>
- <% else %> -
-
    - <% test.results.each_with_index do |x, i| %> -
  • 测试<%=i+1%> - <% if x["status"].to_i != 0 %> - 测试错误! - 您的输出: - <%=x["result"]%> - 正确输出: - <%=x["output"]%> -
    -
  • - <% else %> - 测试正确! -
    - - <% end %> - <% end %> -
-
- <% end %> - <% end %> -
+
+ <%= render :partial => 'users/user_homework_attachment', :locals => {:container => @student_work, :has_program=>false} %> +
-<% end %> +
+ 确定 + + <%= link_to "取消", user_homeworks_user_path(User.current.id), :class => "fr mr10 mt3"%> +
+
+ <% end%> +
+
diff --git a/app/views/users/_user_homework_form.html.erb b/app/views/users/_user_homework_form.html.erb index 72ace3ba5..4af5742a9 100644 --- a/app/views/users/_user_homework_form.html.erb +++ b/app/views/users/_user_homework_form.html.erb @@ -45,7 +45,7 @@
- 发送 + 发送 取消
@@ -89,7 +89,7 @@
- +
diff --git a/app/views/users/_user_homework_list.html.erb b/app/views/users/_user_homework_list.html.erb index 1a24b1499..642373d58 100644 --- a/app/views/users/_user_homework_list.html.erb +++ b/app/views/users/_user_homework_list.html.erb @@ -35,8 +35,8 @@ <%= render :partial => 'student_work/work_attachments', :locals => {:attachments => homework_common.attachments} %>
- <%# if is_teacher%> - <% if false%> + <% if is_teacher%> + <%# if false%>
-<% if User.current.user_extensions && User.current.user_extensions.identity == 0 && User.current.allowed_to?(:add_course, nil, :global => true)%> +<% if @is_teacher%>
<% homework = HomeworkCommon.new %> diff --git a/app/views/users/user_newfeedback.html.erb b/app/views/users/user_newfeedback.html.erb index 19cdd845f..b94e33b16 100644 --- a/app/views/users/user_newfeedback.html.erb +++ b/app/views/users/user_newfeedback.html.erb @@ -8,7 +8,7 @@ span.ke-icon-emoticons{background-position:0px -671px;width:50px;height:26px;} span.ke-icon-emoticons:hover{background-position:-79px -671px;width:50px;height:26px;} div.ke-toolbar .ke-outline{border:none;} - .ke-container{height: 80px !important;} + /*.ke-container{height: 80px !important;}*/
@@ -20,7 +20,7 @@
<%= form_for('new_form',:url => leave_user_message_path(@user.id),:method => "post") do |f|%> - +

取消 diff --git a/db/schema.rb b/db/schema.rb index 3ca1510d6..9c0f8e373 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -236,13 +236,6 @@ ActiveRecord::Schema.define(:version => 20150907152238) do t.boolean "tracker_in_review_dialog", :default => false end - create_table "code_review_user_settings", :force => true do |t| - t.integer "user_id", :default => 0, :null => false - t.integer "mail_notification", :default => 0, :null => false - t.datetime "created_at" - t.datetime "updated_at" - end - create_table "code_reviews", :force => true do |t| t.integer "project_id" t.integer "change_id" @@ -1163,18 +1156,18 @@ ActiveRecord::Schema.define(:version => 20150907152238) do create_table "relative_memos", :force => true do |t| t.integer "osp_id" t.integer "parent_id" - t.string "subject", :null => false - t.text "content", :limit => 16777215, :null => false + t.string "subject", :null => false + t.text "content", :null => false t.integer "author_id" - t.integer "replies_count", :default => 0 + t.integer "replies_count", :default => 0 t.integer "last_reply_id" - t.boolean "lock", :default => false - t.boolean "sticky", :default => false - t.boolean "is_quote", :default => false - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.integer "viewed_count_crawl", :default => 0 - t.integer "viewed_count_local", :default => 0 + t.boolean "lock", :default => false + t.boolean "sticky", :default => false + t.boolean "is_quote", :default => false + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "viewed_count_crawl", :default => 0 + t.integer "viewed_count_local", :default => 0 t.string "url" t.string "username" t.string "userhomeurl" @@ -1199,19 +1192,6 @@ ActiveRecord::Schema.define(:version => 20150907152238) do add_index "repositories", ["project_id"], :name => "index_repositories_on_project_id" - create_table "rich_rich_files", :force => true do |t| - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.string "rich_file_file_name" - t.string "rich_file_content_type" - t.integer "rich_file_file_size" - t.datetime "rich_file_updated_at" - t.string "owner_type" - t.integer "owner_id" - t.text "uri_cache" - t.string "simplified_type", :default => "file" - end - create_table "roles", :force => true do |t| t.string "name", :limit => 30, :default => "", :null => false t.integer "position", :default => 1 @@ -1263,11 +1243,10 @@ ActiveRecord::Schema.define(:version => 20150907152238) do t.string "url" t.string "title" t.integer "share_type" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false t.integer "project_id" t.integer "user_id" - t.string "description" end create_table "softapplications", :force => true do |t| @@ -1430,8 +1409,8 @@ ActiveRecord::Schema.define(:version => 20150907152238) do t.integer "zip_code" t.datetime "created_at", :null => false t.datetime "updated_at", :null => false - t.string "technical_title" t.integer "identity" + t.string "technical_title" t.string "student_id" t.string "teacher_realname" t.string "student_realname" @@ -1499,6 +1478,9 @@ ActiveRecord::Schema.define(:version => 20150907152238) do t.integer "active" t.datetime "created_at", :null => false t.datetime "updated_at", :null => false + t.integer "level" + t.integer "file" + t.integer "issue" end create_table "user_statuses", :force => true do |t| diff --git a/public/assets/kindeditor/plugins/code/prettify.css b/public/assets/kindeditor/plugins/code/prettify.css deleted file mode 100644 index b8287e5f6..000000000 --- a/public/assets/kindeditor/plugins/code/prettify.css +++ /dev/null @@ -1,13 +0,0 @@ -.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} - -pre.prettyprint { - border: 0; - border-left: 3px solid rgb(204, 204, 204); - margin-left: 2em; - padding: 0.5em; - font-size: 110%; - display: block; - font-family: "Consolas", "Monaco", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace; - margin: 1em 0px; - white-space: pre; -} diff --git a/public/assets/kindeditor/plugins/code/prettify.js b/public/assets/kindeditor/plugins/code/prettify.js deleted file mode 100644 index eef5ad7e6..000000000 --- a/public/assets/kindeditor/plugins/code/prettify.js +++ /dev/null @@ -1,28 +0,0 @@ -var q=null;window.PR_SHOULD_USE_CONTINUATION=!0; -(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a= -[],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;ci[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m), -l=[],p={},d=0,g=e.length;d=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/, -q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/, -q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g, -"");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a), -a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e} -for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"], -"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"], -H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"], -J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+ -I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]), -["default-markup","htm","html","mxml","xhtml","xml","xsl"]);k(x([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css", -/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);k(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);k(u({keywords:F,hashComments:!0,cStyleComments:!0,types:K}),["c","cc","cpp","cxx","cyc","m"]);k(u({keywords:"null,true,false"}),["json"]);k(u({keywords:H,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:K}),["cs"]);k(u({keywords:G,cStyleComments:!0}),["java"]);k(u({keywords:v,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);k(u({keywords:I,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}), -["cv","py"]);k(u({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),["js"]);k(u({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes", -hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);k(x([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(a,m,e){var h=document.createElement("PRE");h.innerHTML=a;e&&D(h,e);E({g:m,i:e,h:h});return h.innerHTML};window.prettyPrint=function(a){function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;p=0){var k=k.match(g),f,b;if(b= -!k){b=n;for(var o=void 0,c=b.firstChild;c;c=c.nextSibling)var i=c.nodeType,o=i===1?o?b:c:i===3?N.test(c.nodeValue)?b:o:o;b=(f=o===b?void 0:o)&&"CODE"===f.tagName}b&&(k=f.className.match(g));k&&(k=k[1]);b=!1;for(o=n.parentNode;o;o=o.parentNode)if((o.tagName==="pre"||o.tagName==="code"||o.tagName==="xmp")&&o.className&&o.className.indexOf("prettyprint")>=0){b=!0;break}b||((b=(b=n.className.match(/\blinenums\b(?::(\d+))?/))?b[1]&&b[1].length?+b[1]:!0:!1)&&D(n,b),d={g:k,h:n,i:b},E(d))}}p minHeight) { + if (maxHeight && elem.scrollHeight > maxHeight) { + height = maxHeight - padding; + style.overflowY = 'auto'; + } else { + height = elem.scrollHeight - padding; + style.overflowY = 'hidden'; + }; + style.height = height + extra + 'px'; + scrollTop += parseInt(style.height) - elem.currHeight; + document.body.scrollTop = scrollTop; + document.documentElement.scrollTop = scrollTop; + elem.currHeight = parseInt(style.height); + }; + }; + + addEvent('propertychange', change); + addEvent('input', change); + addEvent('focus', change); + change(); +}; \ No newline at end of file diff --git a/public/javascripts/user.js b/public/javascripts/user.js index 6a5d93139..a775f5936 100644 --- a/public/javascripts/user.js +++ b/public/javascripts/user.js @@ -8,11 +8,12 @@ $(function(){ params.div_form = $("div[nhname='div_form']",params.container); params.form = $("form",params.div_form); params.textarea = $("textarea[name='user_notes']",params.div_form); - params.textarea.prev('div').css("height","60px"); + //params.textarea.prev('div').css("height","60px"); params.contentmsg = $("p[nhname='contentmsg']",params.div_form); params.toolbar_container = $("div[nhname='toolbar_container']",params.div_form); params.cancel_btn = $("a[nhname='cancel_btn']",params.div_form); params.submit_btn = $("a[nhname='submit_btn']",params.div_form); + params.height = 55; if(params.textarea.data('init') == undefined){ params.editor = init_editor(params); init_form(params); @@ -42,11 +43,12 @@ $(function(){ params.div_form = $("div[nhname='sub_div_form']",params.container); params.form = $("form",params.div_form); params.textarea = $("textarea[name='user_notes']",params.div_form); - params.textarea.prev('div').css("height","60px"); + //params.textarea.prev('div').css("height","60px"); params.contentmsg = $("p[nhname='sub_contentmsg']",params.div_form); params.toolbar_container = $("div[nhname='sub_toolbar_container']",params.div_form); params.cancel_btn = $("a[nhname='sub_cancel_btn']",params.div_form); params.submit_btn = $("a[nhname='sub_submit_btn']",params.div_form); + params.height = 45; if(params.textarea.data('init') == undefined){ params.editor = init_editor(params); init_form(params); @@ -82,7 +84,7 @@ $(function(){ params.toolbar_container = $("div[nhname='toolbar_container']",params.div_form); params.cancel_btn = $("#new_message_cancel_btn"); params.submit_btn = $("#new_message_submit_btn"); - + params.height = 80; if(params.textarea.data('init') == undefined){ params.editor = init_editor(params); init_form(params); diff --git a/public/stylesheets/new_user.css b/public/stylesheets/new_user.css index d4797f9f9..3365fda1a 100644 --- a/public/stylesheets/new_user.css +++ b/public/stylesheets/new_user.css @@ -499,8 +499,8 @@ a.coursesLineGrey:hover {color:#ffffff;} .homepageLeftMenuMore {height:18px;} .homepageLeftMenuMore:hover {background-color:#269ac9;} .homepageLeftMenuMoreIcon {background:url(../images/homepage_icon.png) -74px -240px no-repeat; display:block; height:18px;} -.homepageMenuSetting {display:inline-block; background:url(../images/homepage_icon.png) -190px -365px no-repeat; width:15px; height:15px; margin-top: 16px; margin-right: 15px;} -.homepageMenuSetting:hover {background:url(../images/homepage_icon.png) -190px -407px no-repeat;} +.homepageMenuSetting {display:inline-block; background:url(../images/homepage_icon2.png) -190px -365px no-repeat; width:15px; height:15px; margin-top: 16px; margin-right: 15px;} +.homepageMenuSetting:hover {background:url(../images/homepage_icon2.png) -190px -407px no-repeat;} a.homepageMenuText {color:#484848; font-size:16px; margin-left:20px;} .homepageLeftLabelContainer {width:238px; border:1px solid #dddddd; background-color:#ffffff; margin-top:10px;} .homepageLabelText {color:#484848; font-size:16px; margin-left:10px; margin-bottom:12px; display:block;} @@ -895,6 +895,8 @@ a:hover.icon_remove{background:url(../images/course/icons.png) -20px -338px no-r .HomeWorkBox{ background:#f6f6f6; padding:10px; margin:10px 0;} .c_grey{ color:#888888;} .HomeWorkP{ width:690px; font-size:14px;} +.HomeWorkP p{background-color: transparent !important;} +.HomeWorkP div{background-color: transparent !important;} .H150{ height:150px;} .ProResult{width:748px; background-color:#fff; border:1px solid #dddddd;border-bottom:none; } .ProResultTop{ height:38px; line-height:38px; border-bottom:1px solid #dddddd; background:#f2f2f2; padding:0 10px;} @@ -903,10 +905,11 @@ a:hover.icon_remove{background:url(../images/course/icons.png) -20px -338px no-r .W200{ width:200px;} .ProResultTable{ color:#888888;} .T_C{ text-align:center;} -.SearchIcon{background:url(../images/homepage_icon.png) 676px -393px no-repeat; } -.SearchIcon:hover{background:url(../images/homepage_icon.png) 676px -419px no-repeat; } -a.link_file{ background:url(../images/course/pic_file.png) 0 2px no-repeat; padding-left:20px; } -a:hover.link_file{ background:url(../images/course/pic_file.png) 0 -25px no-repeat; color:#3ca5c6;} +.SearchIcon{background:url(../images/homepage_icon2.png) 676px -393px no-repeat; } +.SearchIcon:hover{background:url(../images/homepage_icon2.png) 676px -419px no-repeat; } +a.link_file{ background:url(../images/pic_file.png) 0 2px no-repeat; padding-left:20px; } +a:hover.link_file{ background:url(../images/pic_file.png) 0 -25px no-repeat; color:#3ca5c6;} +a.remove-upload {background: url(../images/delete.png) no-repeat 1px 50%;width: 1px;display: inline-block;padding-left: 16px;} a.FilesName{ max-width:540px;overflow:hidden; white-space:nowrap; text-overflow:ellipsis; display:block;} a.FilesName02{ max-width:665px;overflow:hidden; white-space:nowrap; text-overflow:ellipsis; display:block;} .ProResultUl span { display:block; float:left;} @@ -1001,7 +1004,7 @@ blockquote { } /* 创建作品 work */ -.Newwork{ width:668px; height:418px;} +.Newwork{ width:668px;} .N_top{ float:right; margin-left:390px; } .N_con{ color:#484747; font-weight:bold; width:660px; margin-top:10px; } .N_con p{ }