diff --git a/app/controllers/account_controller.rb b/app/controllers/account_controller.rb index 1e4b01df0..5c64ad332 100644 --- a/app/controllers/account_controller.rb +++ b/app/controllers/account_controller.rb @@ -62,12 +62,12 @@ class AccountController < ApplicationController if params[:token] @token = Token.find_token("recovery", params[:token].to_s) if @token.nil? || @token.expired? - redirect_to home_url + redirect_to signin_path return end @user = @token.user unless @user && @user.active? - redirect_to home_url + redirect_to signin_path return end if request.post? @@ -79,7 +79,7 @@ class AccountController < ApplicationController return end end - render :layout => 'static_base', :template => "account/password_recovery" + render :template => "account/password_recovery" return else if request.post? diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index 6dec9a82f..126b269bb 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -127,18 +127,19 @@ update end else # 原逻辑 ##xianbo - params[:repository_scm] = "Git" @root_path=RepositoriesHelper::ROOT_PATH @repository_name=User.current.login.to_s+"/"+params[:repository][:identifier]+".git" @project_path=@root_path+"htdocs/"+@repository_name - @repository_tag=params[:repository][:upassword] || params[:repository][:password] || '1234' + @repository_tag=params[:repository][:upassword] || params[:repository][:password] @repo_name=User.current.login.to_s+"_"+params[:repository][:identifier] logger.info "htpasswd -mb "+@root_path+"htdocs/user.passwd "+@repo_name+": "+@repository_tag logger.info "the value of create repository"+@root_path+": "+@repository_name+": "+@project_path+": "+@repo_name attrs = pickup_extra_info - params[:repository][:url]=@project_path + if((@repository_tag!="")&¶ms[:repository_scm]=="Git") + params[:repository][:url]=@project_path + end ###xianbo - @repository = Repository.factory(params[:repository_scm]||"Git") + @repository = Repository.factory(params[:repository_scm]) @repository.safe_attributes = params[:repository] if attrs[:attrs_extra].keys.any? @repository.merge_extra_info(attrs[:attrs_extra]) @@ -277,8 +278,7 @@ update @course_tag = params[:course] project_path_cut = RepositoriesHelper::PROJECT_PATH_CUT ip = RepositoriesHelper::REPO_IP_ADDRESS - # @repos_url = "http://"+@repository.login.to_s+"_"+@repository.identifier.to_s+"@"+ip.to_s+ - @repos_url = "http://#{Setting.host_name}/#{@repository.login.to_s}/#{@repository.identifier.to_s}.git" + @repos_url = "http://"+@repository.login.to_s+"_"+@repository.identifier.to_s+"@"+ip.to_s+ @repository.url.slice(project_path_cut, @repository.url.length).to_s if @course_tag == 1 render :action => 'show', :layout => 'base_courses' diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index a8243c5a5..555c67d13 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -39,20 +39,14 @@ class UsersController < ApplicationController # before_filter :can_show_course, :only => [:user_courses,:user_homeworks] - before_filter :require_admin, :except => [:show, :index, :search, :tag_save, :tag_saveEx,:user_projects, :user_newfeedback, :user_comments, :watch_contests, :info, - :user_watchlist, :user_fanslist,:update, :user_courses, :user_homeworks, :watch_projects, :show_score, :topic_score_index, :project_score_index, - :activity_score_index, :influence_score_index, :score_index,:show_new_score, :topic_new_score_index, :project_new_score_index, - :activity_new_score_index, :influence_new_score_index, :score_new_index,:update_score,:user_activities,:user_projects_index, - :user_courses4show,:user_projects4show,:user_course_activities,:user_project_activities,:user_feedback4show,:user_visitorlist, - :user_resource,:user_resource_create,:user_resource_delete,:rename_resource,:search_user_course,:add_exist_file_to_course, - :search_user_project,:resource_preview,:resource_search,:add_exist_file_to_project,:user_messages,:edit_brief_introduction,:user_new_homework] #edit has been deleted by huang, 2013-9-23 before_filter :find_user, :only => [:user_fanslist, :user_watchlist, :show, :edit, :update, :destroy, :edit_membership, :user_courses, :user_homeworks, :destroy_membership, :user_activities, :user_projects, :user_newfeedback, :user_comments, :watch_contests, :info, :watch_projects, :show_score, :topic_score_index, :project_score_index, :activity_score_index, :influence_score_index, :score_index,:show_new_score, :topic_new_score_index, :project_new_score_index, :activity_new_score_index, :influence_new_score_index, :score_new_index,:user_projects_index,:user_resource, - :user_courses4show,:user_projects4show,:user_course_activities,:user_project_activities,:user_feedback4show,:user_visitorlist,:user_messages,:edit_brief_introduction] + :user_courses4show,:user_projects4show,:user_course_activities,:user_project_activities,:user_feedback4show,:user_visitorlist,:user_messages,:edit_brief_introduction, + :user_import_homeworks,:user_search_homeworks,:user_import_resource] before_filter :auth_user_extension, only: :show #before_filter :rest_user_score, only: :show #before_filter :select_entry, only: :user_projects @@ -122,7 +116,7 @@ class UsersController < ApplicationController user_querys.update_all(:viewed => true) forum_querys.update_all(:viewed => true) end - @new_message_count = forge_querys.count + forum_querys.count + course_querys.count + user_querys.count + # @new_message_count = forge_querys.count + forum_querys.count + course_querys.count + user_querys.count case params[:type] when nil @message_alls = [] @@ -176,6 +170,7 @@ class UsersController < ApplicationController render_404 return end + @message_alls = paginateHelper @message_alls,25 respond_to do |format| format.html{render :layout=>'new_base_user'} end @@ -310,7 +305,46 @@ class UsersController < ApplicationController respond_to do |format| format.js format.html {render :layout => 'new_base_user'} + end + end + + #导入作业 + def user_import_homeworks + @user_homeworks = HomeworkCommon.where(:user_id => @user.id).order("created_at desc") + respond_to do |format| + format.js + end end + + #用户主页过滤作业 + def user_search_homeworks + @user_homeworks = HomeworkCommon.where("user_id = '#{@user.id}' and lower(name) like '%#{params[:name].to_s.downcase}%'").order("created_at desc") + respond_to do |format| + format.js + end + end + + #导入作业,确定按钮 + def user_select_homework + homework = HomeworkCommon.find_by_id params[:checkMenu] + @homework = HomeworkCommon.new + if homework + @homework.name = homework.name + @homework.description = homework.description + @homework.end_time = homework.end_time + @homework.course_id = homework.course_id + homework.attachments.each do |attachment| + att = attachment.copy + att.container_id = nil + att.container_type = nil + att.copy_from = attachment.id + att.save + @homework.attachments << att + end + end + respond_to do |format| + format.js + end end def user_new_homework @@ -345,6 +379,16 @@ class UsersController < ApplicationController end end + #用户从资源库导入资源到作业 + def user_import_resource + user_course_ids = User.current.courses.map { |c| c.id} #我的资源库的话,那么应该是我上传的所有资源 加上 我加入的课程的所有资源 + @attachments = Attachment.where("(author_id = #{params[:id]} and container_type in('Project','Principal','Course','Issue','Document','Message','News','StudentWorkScore','HomewCommon')) "+ + "or (container_type = 'Course' and container_id in (#{user_course_ids.empty? ? '0': user_course_ids.join(',')}))").order("created_on desc") + respond_to do |format| + format.js + end + end + include CoursesHelper def user_courses @@ -962,13 +1006,13 @@ class UsersController < ApplicationController end end @type = params[:type] || 1 - @limit = 15 + @limit = 25 @is_remote = true @atta_count = @attachments.count @atta_pages = Paginator.new @atta_count, @limit, params['page'] || 1 @offset ||= @atta_pages.offset #@curse_attachments_all = @all_attachments[@offset, @limit] - @attachments = paginateHelper @attachments,15 + @attachments = paginateHelper @attachments,25 respond_to do |format| format.js end @@ -1018,13 +1062,13 @@ class UsersController < ApplicationController end end @type = params[:type] - @limit = 15 + @limit = 25 @is_remote = true @atta_count = @attachments.count @atta_pages = Paginator.new @atta_count, @limit, params['page'] || 1 @offset ||= @atta_pages.offset #@curse_attachments_all = @all_attachments[@offset, @limit] - @attachments = paginateHelper @attachments,15 + @attachments = paginateHelper @attachments,25 respond_to do |format| format.js end @@ -1066,10 +1110,14 @@ class UsersController < ApplicationController # 将资源发送到对应的课程,分为发送单个,或者批量发送 def add_exist_file_to_course + @flag = true if params[:send_id].present? send_id = params[:send_id] ori = Attachment.find_by_id(send_id) course_ids = params[:course_ids] + if course_ids.nil? + @flag = false + end unless course_ids.nil? course_ids.each do |id| next if ori.blank? @@ -1087,9 +1135,13 @@ class UsersController < ApplicationController end elsif params[:send_ids].present? send_ids = params[:send_ids].split(" ") + course_ids = params[:course_ids] + if course_ids.nil? + @flag = false + end send_ids.each do |send_id| ori = Attachment.find_by_id(send_id) - course_ids = params[:course_ids] + unless course_ids.nil? course_ids.each do |id| next if ori.blank? @@ -1106,6 +1158,8 @@ class UsersController < ApplicationController end end end + else + @flag = false end respond_to do |format| format.js @@ -1114,9 +1168,13 @@ class UsersController < ApplicationController # 添加资源到对应的项目 def add_exist_file_to_project + @flag = true if params[:send_id].present? send_id = params[:send_id] project_ids = params[:projects_ids] + if project_ids.nil? + @flag = false + end ori = Attachment.find_by_id(send_id) unless project_ids.nil? project_ids.each do |project_id| @@ -1134,8 +1192,12 @@ class UsersController < ApplicationController end elsif params[:send_ids].present? send_ids = params[:send_ids].split(" ") + project_ids = params[:projects_ids] + if project_ids.nil? + @flag = false + end send_ids.each do |send_id| - project_ids = params[:projects_ids] + ori = Attachment.find_by_id(send_id) unless project_ids.nil? project_ids.each do |project_id| @@ -1153,6 +1215,7 @@ class UsersController < ApplicationController end end else + @flag=true end respond_to do |format| @@ -1403,13 +1466,13 @@ class UsersController < ApplicationController end end @type = params[:type] - @limit = 15 + @limit = 25 @is_remote = true @atta_count = @attachments.count @atta_pages = Paginator.new @atta_count, @limit, params['page'] || 1 @offset ||= @atta_pages.offset #@curse_attachments_all = @all_attachments[@offset, @limit] - @attachments = paginateHelper @attachments,15 + @attachments = paginateHelper @attachments,25 respond_to do |format| format.js format.html {render :layout => 'new_base_user'} @@ -1455,13 +1518,13 @@ class UsersController < ApplicationController end end @type = params[:type] - @limit = 15 + @limit = 25 @is_remote = true @atta_count = @attachments.count @atta_pages = Paginator.new @atta_count, @limit, params['page'] || 1 @offset ||= @atta_pages.offset #@curse_attachments_all = @all_attachments[@offset, @limit] - @attachments = paginateHelper @attachments,15 + @attachments = paginateHelper @attachments,25 respond_to do |format| format.js end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 709426d41..7f93345b4 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -2493,4 +2493,14 @@ int main(int argc, char** argv){ return 0; }".html_safe end + + #判断用户是否已经提交了问卷 + def has_commit_poll?(poll_id,user_id) + pu = PollUser.find_by_poll_id_and_user_id(poll_id,user_id) + if pu.nil? + false + else + true + end + end end diff --git a/app/helpers/issues_helper.rb b/app/helpers/issues_helper.rb index a26d2661a..412c3f889 100644 --- a/app/helpers/issues_helper.rb +++ b/app/helpers/issues_helper.rb @@ -380,6 +380,22 @@ module IssuesHelper value = content_tag("i", h(value)) if value end end + # 缺陷更新结果在消息中显示样式 + if no_html == "message" + label = content_tag(:span, label, :class => "issue_update_message") + old_value = content_tag("span", h(old_value)) if detail.old_value + old_value = content_tag("del", old_value) if detail.old_value and detail.value.blank? + if detail.property == 'attachment' && !value.blank? && atta = Attachment.find_by_id(detail.prop_key) + # Link to the attachment if it has not been removed + if options[:token].nil? + value = atta.filename + else + value = atta.filename + end + else + value = content_tag(:span, h(value), :class => "issue_update_message_value") if value + end + end if detail.property == 'attr' && detail.prop_key == 'description' s = l(:text_journal_changed_no_detail, :label => label) diff --git a/app/helpers/poll_helper.rb b/app/helpers/poll_helper.rb index 22ee21936..170e1b92c 100644 --- a/app/helpers/poll_helper.rb +++ b/app/helpers/poll_helper.rb @@ -37,16 +37,6 @@ module PollHelper pv.vote_text end end - - #判断用户是否已经提交了问卷 - def has_commit_poll?(poll_id,user_id) - pu = PollUser.find_by_poll_id_and_user_id(poll_id,user_id) - if pu.nil? - false - else - true - end - end #统计答题百分比,统计结果保留两位小数 def statistics_result_percentage(e, t) diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb index ebfd9f881..e7ab001da 100644 --- a/app/helpers/users_helper.rb +++ b/app/helpers/users_helper.rb @@ -425,9 +425,13 @@ module UsersHelper return str.html_safe end + # journal.details 记录每个动作的新旧值 def get_issue_des_update(journal) - arr = details_to_strings(journal.details,true) - arr << journal.notes + no_html = "message" + arr = details_to_strings(journal.details, no_html) + unless journal.notes.empty? + arr << "留言内容:" + journal.notes + end str = '' arr.each { |item| str = str+item } return str diff --git a/app/models/journal.rb b/app/models/journal.rb index 3a9f5a89d..0d86d12ff 100644 --- a/app/models/journal.rb +++ b/app/models/journal.rb @@ -174,7 +174,7 @@ class Journal < ActiveRecord::Base if self.user_id != self.issue.author_id self.forge_messages << ForgeMessage.new(:user_id => self.issue.author_id, :project_id => self.issue.project_id, :viewed => false) end - if self.user_id != self.issue.assigned_to_id # 指派人不是自己的话,则给指派人发送 + if self.user_id != self.issue.assigned_to_id && self.issue.assigned_to_id != self.issue.author_id # 指派人不是自己的话,则给指派人发送 self.forge_messages << ForgeMessage.new(:user_id => self.issue.assigned_to_id, :project_id => self.issue.project_id, :viewed => false) end end diff --git a/app/models/journals_for_message.rb b/app/models/journals_for_message.rb index 1f5f2e1a6..6f775e7a2 100644 --- a/app/models/journals_for_message.rb +++ b/app/models/journals_for_message.rb @@ -212,33 +212,11 @@ class JournalsForMessage < ActiveRecord::Base if self.user_id != self.reply_id # 添加我回复的那个人 receivers << reply_to end - if self.user_id != self.parent.jour_id # 给东家发信息 + if self.user_id != self.parent.jour_id && self.reply_id != self.parent.jour_id # 给东家发信息,如果回复的对象是东家则不发 receivers << self.parent.jour end - # if self.user_id != self.parent.user_id - # receivers << reply_to - # if self.reply_id != self.parent.user_id - # receivers << self.parent.user - # end - # else - # receivers << reply_to - # end - - # 添加留言回复人 - #reply_to = User.find(self.reply_id) - #if self.user_id != self.parent.user_id && self.user_id != self.parent.jour_id # 如果回帖人不是用户自己 - # receivers << self.parent.user - # if self.reply_id != self.parent.user_id - # receivers << reply_to - # end - #else # 用户自己回复别人的,别人收到消息通知 - # if self.user_id != self.reply_id # 过滤掉自己回复自己的 - # receivers << reply_to - # end - #end end if self.jour_type == 'Principal' - receivers.each do |r| self.user_feedback_messages << UserFeedbackMessage.new(:user_id => r.id, :journals_for_message_id => self.id, :journals_for_message_type => "Principal", :viewed => false) end diff --git a/app/models/user.rb b/app/models/user.rb index 61dd60eec..b08b29981 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -263,6 +263,7 @@ class User < Principal user_memo_count = MemoMessage.where("user_id =? and viewed =?", User.current.id, 0).count messages_count = course_count + forge_count + user_feedback_count + user_memo_count end + # 查询指派给我的缺陷记录 def issue_status_update self.status_updates diff --git a/app/views/account/agreement.html.erb b/app/views/account/agreement.html.erb index 95befbfd4..921f66350 100644 --- a/app/views/account/agreement.html.erb +++ b/app/views/account/agreement.html.erb @@ -1,6 +1,6 @@ <%= stylesheet_link_tag 'new_user'%> -
+

Trustie服务协议

尊敬的用户,您好!
diff --git a/app/views/account/login.html.erb b/app/views/account/login.html.erb index 816ef4a77..8bdace544 100644 --- a/app/views/account/login.html.erb +++ b/app/views/account/login.html.erb @@ -47,6 +47,12 @@ $("#loginInBox").css({display:"none"}); } }); + +// $('#regist_btn').bind('keyup', function(event) { +// if (event.keyCode == "13" && $("#signUpBox").css('display') == 'block')) { +// register(); +// } +//}); function clearInfo(id, content) { var text = $('#' + id); if (text.val() == content) { @@ -161,7 +167,7 @@

-
欢迎加入Trustie高校创新实践社区,老师、学生和科研人员可以在此开展各种在线协同学习、协同作业、协同开发等活动。Trustie是在中国推行大规模开放在线研究模式(MOORE)的支撑平台。
+
欢迎加入Trustie高校创新实践社区!老师、学生和科研人员可以在此开展各种在线协同学习、协同作业、协同开发等活动。Trustie是在中国推行大规模开放在线研究模式(MOORE)的支撑平台。
@@ -206,7 +212,7 @@
<% end %>
@@ -248,7 +254,7 @@
我已阅读并接受Trustie服务协议条款
<% end %> diff --git a/app/views/account/password_recovery.html.erb b/app/views/account/password_recovery.html.erb index 568d4d4bb..5cd438336 100644 --- a/app/views/account/password_recovery.html.erb +++ b/app/views/account/password_recovery.html.erb @@ -1,20 +1,19 @@ -

<%=l(:label_password_lost)%>

- <%= error_messages_for 'user' %> +
+
+

重置密码

+
+ <%= form_tag(lost_password_path) do %> + <%= hidden_field_tag 'token', @token.value %> + + <%= password_field_tag 'new_password', nil, :size => 25,:placeholder=>'新密码',:style=>"width:308px; height:38px; border:1px solid #98a1a6; outline:none; color:#888888; font-size:14px; " %> +

至少需要 6 个字符

+ + <%= password_field_tag 'new_password_confirmation', nil, :size => 25,:placeholder=>'确定密码',:style=>"width:308px; height:38px; border:1px solid #98a1a6; outline:none; color:#888888; font-size:14px;margin-bottom:20px; " %> + + <% end %> +
-<%= form_tag(lost_password_path) do %> - <%= hidden_field_tag 'token', @token.value %> -
-

- - <%= password_field_tag 'new_password', nil, :size => 25 %> - <%= l(:text_caracters_minimum, :count => Setting.password_min_length) %> -

-

- - <%= password_field_tag 'new_password_confirmation', nil, :size => 25 %> -

-
-

<%= submit_tag l(:button_save) %>

-<% end %> +
+
diff --git a/app/views/layouts/_footer.html.erb b/app/views/layouts/_footer.html.erb index 5aeb0031f..720ff3e8f 100644 --- a/app/views/layouts/_footer.html.erb +++ b/app/views/layouts/_footer.html.erb @@ -1,11 +1,11 @@ \ No newline at end of file diff --git a/app/views/layouts/_logined_header.html.erb b/app/views/layouts/_logined_header.html.erb index 5ba49cd5d..e48864305 100644 --- a/app/views/layouts/_logined_header.html.erb +++ b/app/views/layouts/_logined_header.html.erb @@ -1,19 +1,19 @@