diff --git a/app/controllers/org_subfields_controller.rb b/app/controllers/org_subfields_controller.rb index bc339319b..661073cdc 100644 --- a/app/controllers/org_subfields_controller.rb +++ b/app/controllers/org_subfields_controller.rb @@ -130,6 +130,12 @@ class OrgSubfieldsController < ApplicationController @organization = @org_subfield.organization end + def update_status + @subfield = OrgSubfield.find(params[:id]) + @organization = Organization.find(@subfield.organization_id) + @subfield.update_attributes(:status => params[:status]) + end + def show_attachments obj @attachments = [] obj.each do |container| diff --git a/app/controllers/organizations_controller.rb b/app/controllers/organizations_controller.rb index e1ea6935a..1ea109ff1 100644 --- a/app/controllers/organizations_controller.rb +++ b/app/controllers/organizations_controller.rb @@ -34,6 +34,7 @@ class OrganizationsController < ApplicationController end + def new @organization = Organization.new render :layout => 'new_base' @@ -74,10 +75,12 @@ class OrganizationsController < ApplicationController if @organization.is_public? || User.current.admin? || User.current.member_of_org?(@organization) @subfield_content = @organization.org_subfields.order("priority") # 项目两种动态 + @project_acts = get_project_activities_org @organization @project_issue_acts = get_project_issue_activities_org @organization @project_message_acts = get_project_message_activities_org @organization # 磕碜动态 #@project_acts_issues = get_project_activities_org @organization + @course_acts = get_course_activities_org @organization @course_acts_homework = get_course_homework_activities_org @organization @course_acts_message = get_course_message_activities_org @organization @course_acts_news = get_course_news_activities_org @organization @@ -153,6 +156,29 @@ class OrganizationsController < ApplicationController #project_acts = OrgActivity.find_by_sql("SELECT * FROM org_activities where container_id in (#{project_ids}) and container_type = 'project' and org_act_type = 'issue' order by updated_at desc limit 4;") end + # 获取整过项目的动态 + def get_project_activities_org org + project_ids = org.projects.map{|project| project.id}.join(",") + unless project_ids.blank? + project_acts = OrgActivity.find_by_sql("SELECT * FROM org_activities where container_id in (#{project_ids}) and container_type = 'project' order by updated_at desc limit 8;") + else + project_acts = nil + end + #project_acts = OrgActivity.find_by_sql("SELECT * FROM org_activities where container_id in (#{project_ids}) and container_type = 'project' and org_act_type = 'issue' order by updated_at desc limit 4;") + end + + # 获取整过课程的动态 + def get_course_activities_org org + course_ids = org.courses.map{|course| course.id}.join(",") + unless course_ids.blank? + project_acts = OrgActivity.find_by_sql("SELECT * FROM org_activities where container_id in (#{course_ids}) and container_type = 'course' order by updated_at desc limit 8;") + else + project_acts = nil + end + #project_acts = OrgActivity.find_by_sql("SELECT * FROM org_activities where container_id in (#{course_ids}) and container_type = 'course' order by updated_at desc limit 5;") + #project_acts = OrgActivity.find_by_sql("SELECT * FROM org_activities where container_id in (#{course_ids}) and container_type = 'course' and org_act_type = 'HomeworkCommon' order by updated_at desc limit 1;") + end + def get_course_homework_activities_org org course_ids = org.courses.map{|course| course.id}.join(",") unless course_ids.blank? @@ -228,11 +254,6 @@ class OrganizationsController < ApplicationController end end - - def clear_org_avatar_temp - - end - def set_homepage @org = Organization.find(params[:id]) @org.home_id = params[:home_id] diff --git a/app/helpers/organizations_helper.rb b/app/helpers/organizations_helper.rb index c2ba5b03b..4faa802a5 100644 --- a/app/helpers/organizations_helper.rb +++ b/app/helpers/organizations_helper.rb @@ -30,7 +30,7 @@ module OrganizationsHelper end def get_message_org(org_id, field_id) - OrgDocumentComment.find_by_sql("SELECT * FROM org_document_comments where organization_id = #{org_id} and org_subfield_id = #{field_id} and parent_id is null order by updated_at desc limit 2;") + OrgDocumentComment.find_by_sql("SELECT * FROM org_document_comments where organization_id = #{org_id} and org_subfield_id = #{field_id} and parent_id is null order by updated_at desc limit 8;") end def get_message_reply_org(org_id, ids) @@ -59,4 +59,18 @@ module OrganizationsHelper end end + #排列下拉框 + def subfield_status_option + type = [] + option1 = [] + option1 << "列表" + option1 << "1" + type << option1 + option2 = [] + option2 << "图片" + option2 << "0" + type << option2 + type + end + end diff --git a/app/views/layouts/base_org_newstyle.html.erb b/app/views/layouts/base_org_newstyle.html.erb index e344e64dd..442bb7b60 100644 --- a/app/views/layouts/base_org_newstyle.html.erb +++ b/app/views/layouts/base_org_newstyle.html.erb @@ -77,7 +77,7 @@ <% @subfield_content.each do |field| %> <% if is_default_field?(field) %> <% case field.name %> - <% when 'activity' %> + <% when 'activity' %> <%= link_to "首页", organization_path(@organization), :class => "fl navact" %> <% when 'course' %> 课程动态 @@ -92,6 +92,9 @@ <% end %> <% end %> <% end %> + <% if User.current.admin_of_org?(@organization) %> + 配置 + <% end %> @@ -107,114 +110,169 @@ <% if is_default_field?(field) %> <% case field.name %> <% when 'course' %> -
+
+ <% if field.status == 0 %>
-

课程动态

course activities

-
-
    - <% unless @course_acts_homework.nil? %> -
  • - <% @course_acts_homework.each do |act| %> - <%= render :partial => 'org_new_course_homework', :locals => {:activity => HomeworkCommon.find(act.org_act_id),:user_activity_id =>act.id, :course_activity => 0} %> - <% end %> -
  • - <% end %> +

    课程动态

    + <% if @course_acts.nil? %> + + <% else %> +
    +
      + <% unless @course_acts_homework.nil? %> +
    • + <% @course_acts_homework.each do |act| %> + <%= render :partial => 'org_new_course_homework', :locals => {:activity => HomeworkCommon.find(act.org_act_id),:user_activity_id =>act.id, :course_activity => 0} %> + <% end %> +
    • + <% end %> <% unless @course_acts_message.nil? %> -
    • - <% @course_acts_message.each do |act| %> - <%= render :partial => 'org_new_course_message', :locals => {:activity => Message.find(act.org_act_id), :user_activity_id =>act.id} %> - <% end %> -
    • - <% end %> - <% unless @course_acts_news.nil? %> -
    • - <% @course_acts_news.each do |act| %> - <%= render :partial => 'org_new_course_news', :locals => {:activity => News.find(act.org_act_id), :user_activity_id =>act.id} %> - <% end %> -
    • - <% end %> +
    • + <% @course_acts_message.each do |act| %> + <%= render :partial => 'org_new_course_message', :locals => {:activity => Message.find(act.org_act_id), :user_activity_id =>act.id} %> + <% end %> +
    • + <% end %> + <% unless @course_acts_news.nil? %> +
    • + <% @course_acts_news.each do |act| %> + <%= render :partial => 'org_new_course_news', :locals => {:activity => News.find(act.org_act_id), :user_activity_id =>act.id} %> + <% end %> +
    • + <% end %> +
      +
    +
    -
-
+ <%= link_to "More", organization_path(@organization, :org_subfield_id => field.id), :class => "more-btn-center mt30" , :target => "_blank" %> +
+ <% end %>
+ <% else %> +
+

课程动态

+ <% if @course_acts.nil? %> + + <% else %> +
+ <%= render :partial => 'organizations/org_new_course_act_list', :locals =>{:activities => @course_acts, :field => field, :organization => @organization} %> + +
+
+ <%= link_to "More", organization_path(@organization, :org_subfield_id => field.id), :class => "more-btn-center mt30" , :target => "_blank" %> +
+ <% end %> + + +
+ <% end %>
<% when 'project' %> -
-
-

项目动态

project activities

-
- <% unless @project_message_acts.nil? %> -
- - <% @project_message_acts.each do |act| %> - <%= render :partial => 'organizations/org_new_project_message', :locals => {:activity => Message.find(act.org_act_id)} %> - <% end %> - <%= link_to "More", organization_path(@organization, :type => 1), :class => "more-btn mt30 fr", :target => "_blank" %> -
-
- <% end %> - - <% unless @project_issue_acts.nil? %> -
- <% @project_issue_acts.each do |act| %> - <%= render :partial => 'organizations/org_new_project_issues', :locals => {:activity => Issue.find(act.org_act_id)} %> - <% end %> - <%= link_to "More", organization_path(@organization, :type => 1), :class => "more-btn mt30 fr", :target => "_blank" %> -
-
- <% end %> - -
-
+
+ <% if field.status == 0 %> +
+

项目动态

+ <% if @project_acts.nil? %> + + <% else %> +
+
    + <% unless @project_acts.nil? %> + <%= render :partial => 'organizations/org_new_project_pic', :locals => {:activities => @project_acts.first(3)} %> + <% end %> +
    + <%= link_to "More", organization_path(@organization, :org_subfield_id => field.id), :class => "more-btn-center mt30" , :target => "_blank" %> +
    +
+
+ <% end %> +
-
+ <% else %> +
+

项目动态

+ <% if @project_acts.nil? %> + + <% else %> +
+ <%= render :partial => 'organizations/org_new_project_act_list', :locals =>{:activities => @project_acts, :field => field, :organization => @organization} %> + +
+
+ <%= link_to "More", organization_path(@organization, :org_subfield_id => field.id), :class => "more-btn-center mt30" , :target => "_blank" %> +
+ <% end %> + +
+ <% end %> +
<% end %> <% else %> <% if field.field_type == "Post" %> <%# 讨论类型 %> <% message_ats = get_message_org(@organization.id, field.id) %> <% ids = field.org_document_comments.map{|o| o.id}.join(",") %>
-
-

<%= field.name %><%= field.id %>

discussion zone

-
-
- <% message_ats.each do |act| %> - <%= render :partial => 'organizations/org_new_forum', :locals => {:activity => act, :field => field, :organization => @organization} %> - <% end %> - <%#= link_to "More", organization_path(@organization, :org_subfield_id => field.id), :class => "more-btn mt30 fr", :target => "_blank" %> -
-
- <% unless ids.blank? %> - <% message_reply_ats = get_message_reply_org(@organization.id, ids) %> -
- <% message_reply_ats.each do |act| %> - <%= render :partial => 'organizations/org_new_forum_reply', :locals => {:activity => act, :field => field, :organization => @organization} %> - <% end %> -
-
+ <% if field.status == 0 %> +
+

<%= field.name %>

+ <% if message_ats.blank? %> + + <% else %> +
+
    - <% end %> -
-
-
- <%= link_to "More", organization_path(@organization, :org_subfield_id => field.id), :class => "more-btn-center mt30" , :target => "_blank" %> -
+ <% message_ats.first(3).each do |act| %> + <%= render :partial => 'organizations/org_new_forum_pic', :locals => {:activity => act, :field => field, :organization => @organization} %> + <% end %> +
+ + <%= link_to "More", organization_path(@organization, :org_subfield_id => field.id), :class => "more-btn-center mt30" , :target => "_blank" %> +
+
+ <% end %> + +
+ <% else %> +
+

<%= field.name %>

+ <% if message_ats.blank? %> + + <% else %> +
+ <% message_ats.each do |act| %> + <%= render :partial => 'organizations/org_new_forum_list', :locals => {:activity => act, :field => field, :organization => @organization} %> + <% end %> + +
+
+ <%= link_to "More", organization_path(@organization, :org_subfield_id => field.id), :class => "more-btn-center mt30" , :target => "_blank" %> +
+ <% end %> + +
+
+ <% end %>
<% elsif field.field_type == "Resource" %> <% org_attachs = get_attach_org2(field) %>
-

<%= field.name %><%= field.id %>

resource dwonload

-
- <%= render :partial => 'organizations/org_new_resource', :locals => {:org_attachs => org_attachs} %> - -
+

<%= field.name %>

+ <% if org_attachs.blank? %> + + <% else %> +
+ <%= render :partial => 'organizations/org_new_resource', :locals => {:org_attachs => org_attachs} %> + +
+ +
+ <%= link_to "More", organization_path(@organization, :org_subfield_id => field.id), :class => "more-btn-center mt30" , :target => "_blank" %> +
+ <% end %> -
- <%= link_to "More", organization_path(@organization, :org_subfield_id => field.id), :class => "more-btn-center mt30" , :target => "_blank" %> -
diff --git a/app/views/org_subfields/update_status.js.erb b/app/views/org_subfields/update_status.js.erb new file mode 100644 index 000000000..06982ccfc --- /dev/null +++ b/app/views/org_subfields/update_status.js.erb @@ -0,0 +1,3 @@ +$("#subfield_show_<%= @subfield.id %>").html("<%= @subfield.name %>"); +$("#sub_field_left_lists").html(""); +$("#sub_field_left_lists").html("<%= escape_javascript(render :partial => 'organizations/org_left_subfield_list', :locals => {:organization => @organization}) %>"); \ No newline at end of file diff --git a/app/views/organizations/_org_new_course_act_list.html.erb b/app/views/organizations/_org_new_course_act_list.html.erb new file mode 100644 index 000000000..18a1e6662 --- /dev/null +++ b/app/views/organizations/_org_new_course_act_list.html.erb @@ -0,0 +1,48 @@ +<% activities.each do |act| %> + <% if act.org_act_type == "HomeworkCommon" %> + <% activity = HomeworkCommon.find(act.org_act_id) %> +
+ <%= link_to image_tag(url_to_avatar(activity.user),:width => "40", :height => "40"), user_path(activity.user), :class => "fl user-img" %> + +
+ <%= link_to activity.name.to_s, student_work_index_url_in_org(activity.id), :target => '_blank', :class => "fl ziyuan-title" %> + <%#= link_to activity.title.to_s, news_url_in_org(activity.id), :target => '_blank', :class => "fl ziyuan-title" %> +

发布时间:<%= format_date activity.updated_at %> + 作者:<%= activity.try(:user).try(:realname).nil? ? activity.try(:user).try(:login) : activity.try(:user).try(:realname) %> + <%= activity.journals_for_messages.count %>

+
+ +
+ <% elsif act.org_act_type == "Message" %> + <% activity = Message.find(act.org_act_id) %> +
+ <%= link_to image_tag(url_to_avatar(activity.author),:width => "40", :height => "40"), user_path(activity.author), :class => "fl user-img" %> + +
+ <% if activity.parent_id.nil? %> + <%= link_to activity.subject.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank', :class => "fl ziyuan-title" %> + <% else %> + <%= link_to activity.parent.subject.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank', :class => "fl ziyuan-title" %> + <% end %> + <%#= link_to activity.title.to_s, news_url_in_org(activity.id), :target => '_blank', :class => "fl ziyuan-title" %> +

发布时间:<%= format_date activity.updated_on %> + 作者:<%= activity.try(:author).try(:realname).nil? ? activity.try(:author).try(:login) : activity.try(:author).try(:realname) %> + <%= activity.children.count %>

+
+ +
+ <% elsif act.org_act_type == "News" %> + <% activity = News.find(act.org_act_id) %> +
+ <%= link_to image_tag(url_to_avatar(activity.creator),:width => "40", :height => "40"), user_path(activity.creator), :class => "fl user-img" %> + +
+ <%= link_to activity.title.to_s, news_url_in_org(activity.id), :target => '_blank', :class => "fl ziyuan-title" %> +

发布时间:<%= format_date activity.updated_at %> + 作者:<%= activity.try(:creator).try(:realname).nil? ? activity.try(:creator).try(:login) : activity.try(:creator).try(:realname) %> + <%= activity.children.count %>

+
+
+ <% end %> + +<% end %> \ No newline at end of file diff --git a/app/views/organizations/_org_new_forum_list.html.erb b/app/views/organizations/_org_new_forum_list.html.erb new file mode 100644 index 000000000..a8e531b50 --- /dev/null +++ b/app/views/organizations/_org_new_forum_list.html.erb @@ -0,0 +1,14 @@ + +
+ <%= link_to image_tag(url_to_avatar(activity.creator),:width => "40", :height => "40"), user_path(activity.creator), :class => "fl user-img" %> + +
+ <%= link_to activity.title.to_s, news_url_in_org(activity.id), :target => '_blank', :class => "fl ziyuan-title" %> +

发布时间:<%= format_date activity.updated_at %> + 作者:<%= activity.try(:creator).try(:realname).nil? ? activity.try(:creator).try(:login) : activity.try(:creator).try(:realname) %> + <%= activity.children.count %>

+
+ +
+ + diff --git a/app/views/organizations/_org_new_forum_pic.html.erb b/app/views/organizations/_org_new_forum_pic.html.erb new file mode 100644 index 000000000..c4fd061a5 --- /dev/null +++ b/app/views/organizations/_org_new_forum_pic.html.erb @@ -0,0 +1,24 @@ +
  • + +
    + <% iamge_path = get_image_path_from_content(activity.content) %> + <% if iamge_path.nil? %> + # + <% else %> + + <% end %> +
    +
    + <%= link_to activity.title.to_s, news_url_in_org(activity.id), :target => '_blank' %> +
    +
    + +
  • + + + + diff --git a/app/views/organizations/_org_new_project_act_list.html.erb b/app/views/organizations/_org_new_project_act_list.html.erb new file mode 100644 index 000000000..b3754024f --- /dev/null +++ b/app/views/organizations/_org_new_project_act_list.html.erb @@ -0,0 +1,49 @@ +<% activities.each do |act| %> + <% if act.org_act_type == "Issue" %> + <% activity = Issue.find(act.org_act_id) %> +
    + <%= link_to image_tag(url_to_avatar(activity.author),:width => "40", :height => "40"), user_path(activity.author), :class => "fl user-img" %> + +
    + <%= link_to activity.subject.to_s, issue_url_in_org(activity.id), :target => '_blank', :class => "fl ziyuan-title" %> + <%#= link_to activity.name.to_s, student_work_index_url_in_org(activity.id), :target => '_blank', :class => "fl ziyuan-title" %> + <%#= link_to activity.title.to_s, news_url_in_org(activity.id), :target => '_blank', :class => "fl ziyuan-title" %> +

    发布时间:<%= format_date activity.updated_on %> + 作者:<%= activity.try(:author).try(:realname).nil? ? activity.try(:author).try(:login) : activity.try(:author).try(:realname) %> + <%= activity.journals.count %>

    +
    + +
    + <% elsif act.org_act_type == "Message" %> + <% activity = Message.find(act.org_act_id) %> +
    + <%= link_to image_tag(url_to_avatar(activity.author),:width => "40", :height => "40"), user_path(activity.author), :class => "fl user-img" %> + +
    + <% if activity.parent_id.nil? %> + <%= link_to activity.subject.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank', :class => "fl ziyuan-title" %> + <% else %> + <%= link_to activity.parent.subject.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank', :class => "fl ziyuan-title" %> + <% end %> + <%#= link_to activity.title.to_s, news_url_in_org(activity.id), :target => '_blank', :class => "fl ziyuan-title" %> +

    发布时间:<%= format_date activity.updated_on %> + 作者:<%= activity.try(:author).try(:realname).nil? ? activity.try(:author).try(:login) : activity.try(:author).try(:realname) %> + <%= activity.children.count %>

    +
    + +
    + <% elsif act.org_act_type == "News" %> + <% activity = News.find(act.org_act_id) %> +
    + <%= link_to image_tag(url_to_avatar(activity.creator),:width => "40", :height => "40"), user_path(activity.creator), :class => "fl user-img" %> + +
    + <%= link_to activity.title.to_s, news_url_in_org(activity.id), :target => '_blank', :class => "fl ziyuan-title" %> +

    发布时间:<%= format_date activity.updated_at %> + 作者:<%= activity.try(:creator).try(:realname).nil? ? activity.try(:creator).try(:login) : activity.try(:creator).try(:realname) %> + <%= activity.children.count %>

    +
    +
    + <% end %> + +<% end %> \ No newline at end of file diff --git a/app/views/organizations/_org_new_project_pic.html.erb b/app/views/organizations/_org_new_project_pic.html.erb new file mode 100644 index 000000000..aa91659ce --- /dev/null +++ b/app/views/organizations/_org_new_project_pic.html.erb @@ -0,0 +1,77 @@ + + <% activities.each do |act| %> + <% if act.org_act_type == "Issue" %> + <% activity = Issue.find(act.org_act_id) %> +
  • + +
    + <% iamge_path = get_image_path_from_content(activity.description) %> + <% if iamge_path.nil? %> + # + <% else %> + + <% end %> +
    +
    + <%= link_to activity.subject.to_s, issue_url_in_org(activity.id), :target => '_blank' %> +
    +
    + +
  • + <% elsif act.org_act_type == "Message" %> + <% activity = Message.find(act.org_act_id) %> +
  • + +
    + <% iamge_path = get_image_path_from_content(activity.content) %> + <% if iamge_path.nil? %> + # + <% else %> + + <% end %> +
    +
    + <% if activity.parent_id.nil? %> + <%= link_to activity.subject.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank' %> + <% else %> + <%= link_to activity.parent.subject.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank' %> + <% end %> +
    +
    + +
  • + <% elsif act.org_act_type == "News" %> + <% activity = News.find(act.org_act_id) %> +
  • + +
    + <% iamge_path = get_image_path_from_content(activity.description) %> + <% if iamge_path.nil? %> + # + <% else %> + + <% end %> +
    +
    + <%= link_to activity.title.to_s, news_url_in_org(activity.id), :target => '_blank' %> +
    +
    + +
  • + + <% end %> + + <% end %> + diff --git a/app/views/organizations/_subfield_list.html.erb b/app/views/organizations/_subfield_list.html.erb index d907ac33e..e16e91486 100644 --- a/app/views/organizations/_subfield_list.html.erb +++ b/app/views/organizations/_subfield_list.html.erb @@ -2,6 +2,7 @@
  • 顺序
  • 已有栏目
  • 状态
  • +
  • 排列
  • 类型
  • 域名目录
  • @@ -21,8 +22,18 @@
  • <%= name %>
  • 默认
  • +
  • + <%= form_tag({:controller => 'org_subfields', :action => 'update_status', :id => field.id,},:remote=>'true', :method => 'post', :id=>"update_status_form_#{field.id}", :class => 'query_form') do %> +
    + +
    + <%= select( :name,:group_id, subfield_status_option, + { :include_blank => false,:selected => field.status}, + {:onchange=>"update_status('#update_status_form_#{field.id}');", :id =>"field_status_id", :name => "status",:class=>"undis class-edit fl", :style => "width:30px;"}) %> + <% end %> +
  • 默认
  • - <%= field.hide==0?"设为隐藏":"设为可见" %> + <%= field.hide==0?"隐藏":"可见" %>
    <% else %> @@ -42,6 +53,21 @@
  • 新增
  • +
  • + <% if field.field_type == "Resource" %> + 列表 + <% else %> + <%= form_tag({:controller => 'org_subfields', :action => 'update_status', :id => field.id,},:remote=>'true', :method => 'post', :id=>"update_status_form_#{field.id}", :class => 'query_form') do %> +
    + +
    + <%= select( :name,:group_id, subfield_status_option, + { :include_blank => false,:selected => field.status}, + {:onchange=>"update_status('#update_status_form_#{field.id}');", :id =>"field_status_id", :name => "status",:class=>"undis class-edit fl", :style => "width:40px;"}) %> + <% end %> + + <% end %> +
  • <%= field.field_type == "Post" ? "帖子" : "资源" %>
  • <%#= link_to "隐藏", hide_org_subfield_organizations_path(field), :method => 'post', :remote => true, :id => "hide_#{field.id}", :class => "linkBlue fr mr5" %> - <%= field.hide==0?"设为隐藏":"设为可见" %> + <%= field.hide==0?"隐藏":"可见" %> <%= link_to "删除", org_subfield_path(field), :method => 'delete', :remote => true, :confirm => "您确定删除吗?", :class => "linkBlue fr mr10" %> 编辑 @@ -68,6 +94,34 @@ <% end %>