diff --git a/app/controllers/boards_controller.rb b/app/controllers/boards_controller.rb index 03581d0c2..7ccfb0e10 100644 --- a/app/controllers/boards_controller.rb +++ b/app/controllers/boards_controller.rb @@ -80,7 +80,7 @@ class BoardsController < ApplicationController includes(:last_reply). limit(@topic_pages.per_page). offset(@topic_pages.offset). - order(sort_clause). + order("last_replies_messages.created_on desc"). preload(:author, {:last_reply => :author}). all elsif @course @@ -88,7 +88,7 @@ class BoardsController < ApplicationController includes(:last_reply). # limit(@topic_pages.per_page). # offset(@topic_pages.offset). - order(sort_clause). + order("last_replies_messages.created_on desc"). preload(:author, {:last_reply => :author}). all : [] @topics = paginateHelper board_topics,10 diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 9c261df85..bb62695c0 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -593,6 +593,17 @@ module ApplicationHelper Project.project_tree(projects, &block) end + # 判断当前用户是否为项目管理员 + def is_project_manager?(user_id,project_id) + @result = false + mem = Member.where("user_id = ? and project_id = ?",user_id, project_id) + unless mem.blank? + mem.first.roles.to_s.include?("Manager") + @result = false + end + return @result + end + def principals_check_box_tags(name, principals) s = '' principals.each do |principal| diff --git a/app/views/attachments/upload.js.erb b/app/views/attachments/upload.js.erb index 24256ccab..c3e7fc3ff 100644 --- a/app/views/attachments/upload.js.erb +++ b/app/views/attachments/upload.js.erb @@ -3,14 +3,15 @@ var fileSpan = $('#attachments_<%= j params[:attachment_id] %>'); fileSpan.hide(); alert("<%= escape_javascript @attachment.errors.full_messages.join(', ') %>"); <% else %> -$('', { type: 'hidden', name: 'attachments[<%= j params[:attachment_id] %>][token]' } ).val('<%= j @attachment.token %>').appendTo(fileSpan); fileSpan.find('a.remove-upload') - .attr({ - "data-remote": true, - "data-method": 'delete', - "href": '<%= j attachment_path(@attachment, :attachment_id => params[:attachment_id], :format => 'js') %>' - }) - .off('click'); + .attr({ + "data-remote": true, + "data-method": 'delete', + "href": '<%= j attachment_path(@attachment, :attachment_id => params[:attachment_id], :format => 'js') %>' + }) + .off('click'); +$('', { type: 'hidden', name: 'attachments[<%= j params[:attachment_id] %>][token]' } ).val('<%= j @attachment.token %>').appendTo(fileSpan); + //var divattach = fileSpan.find('div.div_attachments'); //divattach.html('<%= j(render :partial => 'tags/tagEx', :locals => {:obj => @attachment, :object_flag => "6"})%>'); <% end %> diff --git a/app/views/boards/_course_new.html.erb b/app/views/boards/_course_new.html.erb index fba80127b..a380ad67f 100644 --- a/app/views/boards/_course_new.html.erb +++ b/app/views/boards/_course_new.html.erb @@ -3,7 +3,7 @@ <%= render :partial => 'form_course', :locals => {:f => f, :topic => @message} %>
讨论区共有<%= @topic_count %>个帖子
<% if @topics.any? %> <% @topics.each do |topic| %> -<%= h(topic.subject) %>
<% if topic.course_editable_by?(User.current) %> - <%= l(:button_edit) %> - <% end %> - <% if topic.sticky? %> - <%= l(:label_board_sticky)%> + <%= l(:button_edit) %> <% end %> + <%= link_to( l(:button_delete), {:controller =>'messages',:action => 'destroy', :id => topic.id, :board_id => topic.board_id, :is_board=>'true'}, @@ -55,7 +53,9 @@ :style => ' margin-right: 10px;' ) if topic.destroyable_by?(User.current) %> - + <% if topic.sticky? %> + <%= l(:label_board_sticky)%> + <% end %><%= e.event_description.html_safe %>
diff --git a/app/views/files/_project_file_list.html.erb b/app/views/files/_project_file_list.html.erb
index b2862a634..d3e383a4e 100644
--- a/app/views/files/_project_file_list.html.erb
+++ b/app/views/files/_project_file_list.html.erb
@@ -20,16 +20,14 @@
<%= textAreailizable act,:content %>
diff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erb
index fe36b2cd1..6083b547c 100644
--- a/app/views/users/show.html.erb
+++ b/app/views/users/show.html.erb
@@ -323,10 +323,9 @@
<%= link_to format_activity_title("#{act.board.name}: #{act.subject}"),
- {:controller => 'messages',
- :action => 'show',
- :board_id => act.board_id}.merge(act.parent_id.nil? ? {:id => act.id} : {:id => act.parent_id, :r => act.id, :anchor => "message-#{act.id}"}) %>
-
+ act.board.project ? project_boards_path(act.board.project,:topic_id => act.id) : course_boards_path(act.board.course,:topic_id => act.id),
+ :class => "problem_tit fl fb " %>
+
<% else %>
<%= content_tag('span', h(e.project), :class => 'project') %> <%= l(:label_new_activity) %> <%= link_to format_activity_title(e.event_title), e.event_url %> | +<%= content_tag('span', h(e.project), :class => 'project') %> <%= l(:label_new_activity) %> + <% if e.event_type.eql?("message") || e.event_type.eql?("reply") %> + <%= link_to format_activity_title(e.event_title), e.board.project ? project_boards_path(e.board.project,:topic_id => e.id):course_boards_path(e.board.course,:topic_id => e.id) %> + <%else %> + <%= link_to format_activity_title(e.event_title), e.event_url %> + <%end%> + | ||
<%= format_activity_description(e.event_description) %> |
diff --git a/public/javascripts/course.js b/public/javascripts/course.js
index f0b1338da..227048ef6 100644
--- a/public/javascripts/course.js
+++ b/public/javascripts/course.js
@@ -151,45 +151,48 @@ function submit_edit_course(id)
///////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////课程讨论区
-function regexSubject()
-{
- var content = $.trim($("#message_subject").val());
- if(content.length ==0)
- {
- $("#subject_span").text("主题不能为空");
- $("#subject_span").css('color','#ff0000');
+function regexSubject(id) {
+ var subjectid = "#message_subject" + id ;
+ var content = $.trim($(subjectid).val());
+ var message = "#subject_span" + id;
+ if (content.length == 0) {
+ $(message).text("主题不能为空");
+ $(message).css('color', '#ff0000');
return false;
}
- else
- {
- $("#subject_span").text("填写正确");
- $("#subject_span").css('color','#008000');
+ else {
+ $(message).text("填写正确");
+ $(message).css('color', '#008000');
return true;
}
return false;
}
-function regexContent()
-{
- var content = message_content_editor.html();
- if(content.length ==0)
- {
- $("#message_content_span").text("描述不能为空");
- $("#message_content_span").css('color','#ff0000');
+function regexContent(id) {
+ var contentid = "#message_content" + id;
+ var message = "#message_content_span"+ id;
+ var content = $.trim($(contentid).val());
+ if (content.length == 0) {
+ $(message).text("描述不能为空");
+ $(message).css('color', '#ff0000');
return false;
}
- else
- {
- $("#message_content_span").text("填写正确");
- $("#message_content_span").css('color','#008000');
+ else {
+ $(message).text("填写正确");
+ $(message).css('color', '#008000');
return true;
}
return false;
}
-function submitCoursesBoard()
-{
- message_content_editor.sync();
- if(regexSubject()&®exContent()){$("#message-form").submit();}
+
+// 项目讨论区编辑和提交
+function submitProjectsBoard(id) {
+ var formid = "#message-form" + id;
+ if (regexSubject(id) && regexContent(id)) {
+ $(formid).submit();
+ }
}
+
+
///////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////// 课程通知
function regexTitle()
diff --git a/public/javascripts/project.js b/public/javascripts/project.js
index 0bc094b1d..70888e5d0 100644
--- a/public/javascripts/project.js
+++ b/public/javascripts/project.js
@@ -144,42 +144,51 @@ $(function(){
///////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////项目讨论区
-function regexSubject() {
- var content = $.trim($("#message_subject").val());
+function regexSubject(id) {
+
+ var subjectid = "#message_subject" + id ;
+ var content = $.trim($(subjectid).val());
+ var message = "#subject_span" + id;
if (content.length == 0) {
- $("#subject_span").text("主题不能为空");
- $("#subject_span").css('color', '#ff0000');
+ $(message).text("主题不能为空");
+ $(message).css('color', '#ff0000');
return false;
}
else {
- $("#subject_span").text("填写正确");
- $("#subject_span").css('color', '#008000');
+ $(message).text("填写正确");
+ $(message).css('color', '#008000');
return true;
}
return false;
}
-function regexContent() {
- var content = $.trim($("#message_content").val());
+function regexContent(id) {
+
+ var contentid = "#message_content" + id;
+ var message = "#message_content_span"+ id;
+ var content = $.trim($(contentid).val());
if (content.length == 0) {
- $("#message_content_span").text("描述不能为空");
- $("#message_content_span").css('color', '#ff0000');
+
+ $(message).text("描述不能为空");
+ $(message).css('color', '#ff0000');
return false;
}
else {
- $("#message_content_span").text("填写正确");
- $("#message_content_span").css('color', '#008000');
+
+ $(message).text("填写正确");
+ $(message).css('color', '#008000');
return true;
}
return false;
}
// 项目讨论区编辑和提交
-function submitProjectsBoard() {
- if (regexSubject() && regexContent()) {
- $("#message-form").submit();
+function submitProjectsBoard(id) {
+ var formid = "#message-form" + id;
+
+ if (regexSubject(id) && regexContent(id)) {
+ $(formid).submit();
}
}
-
// 提交新闻
function regexTitle() {
var name = $("#news_title").val();
diff --git a/public/stylesheets/project.css b/public/stylesheets/project.css
index 14a7a9a34..3b04e23bf 100644
--- a/public/stylesheets/project.css
+++ b/public/stylesheets/project.css
@@ -738,6 +738,6 @@ a:hover.Reply_pic{border:1px solid #64bdd9;}
.Replybox{ float:left; width:495px; margin-left:5px;}
.talk_nextpage{ border:none; width:410px; margin:0 auto;}
.newtalk { margin-top:8px; margin-right:8px;}
-.talk_new{ border-bottom:1px dashed #d9d9d9; padding-bottom:10px;}
+
#about_newtalk{ display:none;}