Merge branch 'develop' of https://git.trustie.net/jacknudt/trustieforge into develop_new

This commit is contained in:
cxt 2016-03-31 09:44:35 +08:00
commit 37e3377fd3
37 changed files with 833 additions and 55 deletions

View File

@ -548,7 +548,8 @@ class AdminController < ApplicationController
#作业 #作业
def homework def homework
@homework = HomeworkCommon.order('end_time desc') #@homework = HomeworkCommon.order('end_time desc')
@homework = HomeworkCommon.order( 'created_at desc ')
@homework = paginateHelper @homework,30 @homework = paginateHelper @homework,30
@page = (params['page'] || 1).to_i - 1 @page = (params['page'] || 1).to_i - 1
respond_to do |format| respond_to do |format|

View File

@ -28,11 +28,12 @@ class OrganizationsController < ApplicationController
helper :project_score helper :project_score
helper :issues helper :issues
include UsersHelper include UsersHelper
before_filter :find_organization, :only => [:show, :members, :apply_subdomain] before_filter :find_organization, :only => [:show, :members, :apply_subdomain, :select_org_layout]
layout 'base_org' layout 'base_org'
def index def index
end end
def new def new
@organization = Organization.new @organization = Organization.new
render :layout => 'new_base' render :layout => 'new_base'
@ -68,6 +69,23 @@ class OrganizationsController < ApplicationController
end end
def show def show
# 组织新类型 show_mode判断标准 1为新类型0为旧
if @organization.show_mode == 1 && params[:org_subfield_id].nil? && params[:type] .nil?
if @organization.is_public? || User.current.admin? || User.current.member_of_org?(@organization)
@subfield_content = @organization.org_subfields.order("priority")
# 项目两种动态
@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_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
render :layout => 'base_org_newstyle'
else
render_403
end
else
if @organization.is_public? || User.current.admin? || User.current.member_of_org?(@organization) if @organization.is_public? || User.current.admin? || User.current.member_of_org?(@organization)
@organization = Organization.find(params[:id]) @organization = Organization.find(params[:id])
# 统计访问量 # 统计访问量
@ -114,6 +132,57 @@ class OrganizationsController < ApplicationController
end end
end end
end
def get_project_message_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' and org_act_type = 'Message' order by updated_at desc limit 2;")
else
project_acts = nil
end
end
def get_project_issue_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' and org_act_type = 'issue' order by updated_at desc limit 4;")
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_homework_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' and org_act_type = 'HomeworkCommon' order by updated_at desc limit 1;")
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_message_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' and org_act_type = 'Message' order by updated_at desc limit 1;")
else
project_acts = nil
end
end
def get_course_news_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' and org_act_type = 'News' order by updated_at desc limit 1;")
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' and org_act_type = 'News' order by updated_at desc limit 1;")
end
def update def update
@organization = Organization.find(params[:id]) @organization = Organization.find(params[:id])
@organization.name = params[:organization][:name] @organization.name = params[:organization][:name]

View File

@ -1,6 +1,7 @@
# encoding: utf-8 # encoding: utf-8
module OrganizationsHelper module OrganizationsHelper
include ApplicationHelper include ApplicationHelper
include FilesHelper
def find_user_not_in_current_org_by_name org def find_user_not_in_current_org_by_name org
@ -28,4 +29,34 @@ module OrganizationsHelper
end end
end 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;")
end
def get_message_reply_org(org_id, ids)
# OrgDocumentComment.find_by_sql("SELECT * FROM org_document_comments where organization_id = #{org_id} and parent_id is not null order by updated_at desc limit 1;")
OrgDocumentComment.find_by_sql("SELECT * FROM org_document_comments where organization_id = #{org_id} and parent_id in (#{ids}) order by updated_at desc limit 1;")
end
def get_attach_org(field_id)
Attachment.find_by_sql("SELECT * FROM `attachments` where container_id =#{field_id} and container_type = 'OrgSubfield' and is_public =1 order by created_on limit 6;")
end
def get_attach_org2(field)
org_attachments = field.attachments
attachments = User.current.admin? ? org_attachments : visable_attachemnts(org_attachments)
return attachments.sort_by{|x| x.created_on}.reverse.first(6)
# Attachment.find_by_sql("SELECT * FROM `attachments` where container_id =#{field_id} and container_type = 'OrgSubfield' and is_public =1 order by created_on limit 6;")
end
# 从内容中获取路径
def get_image_path_from_content content
r = Regexp.new(/src="\/files\/uploads\/image(.+?)"/)
if r.match(content).nil?
image_path = nil
else
image_path = r.match(content)[1]
end
end
end end

View File

@ -22,7 +22,7 @@
提交作品数 提交作品数
</th> </th>
<th style="width: 70px;"> <th style="width: 70px;">
提交截止日期 作业发布日期
</th> </th>
</tr> </tr>
</thead> </thead>
@ -52,7 +52,7 @@
<%=link_to(StudentWork.where('homework_common_id=?',homework.id).count, student_work_index_path(:homework => homework.id))%> <%=link_to(StudentWork.where('homework_common_id=?',homework.id).count, student_work_index_path(:homework => homework.id))%>
</td> </td>
<td align="center"> <td align="center">
<%=format_date(homework.end_time) %> <%=format_date( homework.created_at ) %>
</td> </td>
</tr> </tr>
<% end %> <% end %>

View File

@ -0,0 +1,256 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title><%= h html_title %></title>
<meta name="description" content="<%= Redmine::Info.app_name %>" />
<meta name="keywords" content="issue,bug,tracker" />
<%= csrf_meta_tag %>
<%= favicon %>
<%= javascript_heads %>
<%= heads_for_theme %>
<%= stylesheet_link_tag 'org_new_style' %>
<%= javascript_include_tag 'org' %>
<%= javascript_include_tag 'attachments' %>
<%= call_hook :view_layouts_base_html_head %>
<!-- page specific tags -->
<%= yield :header_tags -%>
<!-- MathJax的配置 -->
<script type="text/javascript"
src="/javascripts/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<!-- 配置 在生成的公式图片上去掉Math定义的右键菜单$$ $$ \( \) \[ \] 中的公式给予显示-->
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
showMathMenu: false,
showMathMenuMSIE: false,
tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}
});
</script>
<script>
jQuery(document).ready(function($){
// browser window scroll (in pixels) after which the "back to top" link is shown
var offset = 300,
//browser window scroll (in pixels) after which the "back to top" link opacity is reduced
offset_opacity = 1200,
//duration of the top scrolling animation (in ms)
scroll_top_duration = 700,
//grab the "back to top" link
$back_to_top = $('.cd-top');
//hide or show the "back to top" link
$(window).scroll(function(){
( $(this).scrollTop() > offset ) ? $back_to_top.addClass('cd-is-visible') : $back_to_top.removeClass('cd-is-visible cd-fade-out');
if( $(this).scrollTop() > offset_opacity ) {
$back_to_top.addClass('cd-fade-out');
}
});
//smooth scroll to top
$back_to_top.on('click', function(event){
event.preventDefault();
$('body,html').animate({
scrollTop: 0 ,
}, scroll_top_duration
);
});
});
</script>
</head>
<!--add by huang-->
<body onload="prettyPrint();">
<div class="cl"></div>
<div class="container">
<div class="header">
<div class="header-con">
<a href="index.html" class="fl logo"><img src="/images/org_new_style/logo.jpg" alt=""/></a>
<%# 登录 %>
<%= render :partial => 'organizations/org_logined_header' %>
</div>
<div class="cl"></div>
</div><!--header end-->
<div class="nav-box">
<div class="nav fl">
<% @subfield_content.each do |field| %>
<% if is_default_field?(field) %>
<% case field.name %>
<% when 'activity' %>
<%= link_to "首页", organization_path(@organization), :class => "fl navact" %>
<% when 'course' %>
<a href="#course_<%= field.id %>" class="fl"> 课程动态</a>
<% when 'project' %>
<a href="#project_<%= field.id %>" class="fl">项目动态</a>
<% end %>
<% else %>
<% if field.field_type == "Post" && field.hide == 0 %>
<a href="#message_<%= field.id %>" class="fl"><%= field.name %></a>
<% elsif field.field_type == "Resource" && field.hide == 0%>
<a href="#resource_<%= field.id %>" class="fl"><%= field.name %></a>
<% end %>
<% end %>
<% end %>
</div>
</div><!--nav end-->
<div class="banner">
<h2><%= @organization.name %></h2>
<p><span><%= @organization.description %></span></p>
</div>
<div class="cl"></div>
<!--模块-->
<% @subfield_content.each do |field| %>
<% if is_default_field?(field) %>
<% case field.name %>
<% when 'course' %>
<div class="box1 bg-grey">
<div class="content">
<div class="box-top" id="course_<%= field.id %>"><h2 class="box-title">课程动态</h2><p class="box-title-p">course activities</p></div>
<div class="course-list">
<ul class="clearfix">
<% unless @course_acts_homework.nil? %>
<li >
<% @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 %>
</li>
<% end %>
<% unless @course_acts_message.nil? %>
<li >
<% @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 %>
</li>
<% end %>
<% unless @course_acts_news.nil? %>
<li >
<% @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 %>
</li>
<% end %>
<div class="cl"></div>
</ul>
</div>
</div><!--content end-->
</div><!--box1 end-->
<% when 'project' %>
<div class="box1">
<div class="content">
<div class="box-top" id="project_<%= field.id %>"><h2 class="box-title">项目动态</h2><p class="box-title-p">project activities</p></div>
<div class="row">
<% unless @project_message_acts.nil? %>
<div class="row-l fl">
<!-- text -->
<% @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" %>
<div class="cl"></div>
</div>
<% end %>
<!-- row-l end -->
<% unless @project_issue_acts.nil? %>
<div class="row-r fr">
<% @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" %>
<div class="cl"></div>
</div>
<% end %>
<!-- article-rwrap end -->
</div>
<div class="cl"></div>
</div><!--content end-->
</div><!--box2 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(",") %>
<div class="box1 bg-grey" style="display:<%= field.hide == 0?'block':'none' %>;" id="org_subfield_<%= field.id %>">
<div class="content">
<div class="box-top" id="message_<%= field.id %>"><h2 class="box-title"><%= field.name %><%= field.id %></h2><p class="box-title-p">discussion zone</p></div>
<div class="row">
<div class="con-left fl">
<% 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" %>
<div class="cl"></div>
</div><!--con-left end-->
<% unless ids.blank? %>
<% message_reply_ats = get_message_reply_org(@organization.id, ids) %>
<div class="con-right fr">
<% message_reply_ats.each do |act| %>
<%= render :partial => 'organizations/org_new_forum_reply', :locals => {:activity => act, :field => field, :organization => @organization} %>
<% end %>
<div class="cl"></div>
</div><!--con-right end--->
<% end %>
</div>
</div><!-content end-->
<div class="cl"></div>
<%= link_to "More", organization_path(@organization, :org_subfield_id => field.id), :class => "more-btn-center mt30" , :target => "_blank" %>
<div class="cl"></div>
</div><!--box1 end-->
<% elsif field.field_type == "Resource" %>
<% org_attachs = get_attach_org2(field) %>
<div class="box1" style="display:<%= field.hide == 0?'block':'none' %>;" id="org_subfield_<%= field.id %>">
<div class="content">
<div class="box-top" id="resource_<%= field.id %>"><h2 class="box-title"><%= field.name %><%= field.id %></h2><p class="box-title-p">resource dwonload</p></div>
<div class="row">
<%= render :partial => 'organizations/org_new_resource', :locals => {:org_attachs => org_attachs} %>
<!--row-ziyuan end-->
</div>
<div class="cl"></div>
<%= link_to "More", organization_path(@organization, :org_subfield_id => field.id), :class => "more-btn-center mt30" , :target => "_blank" %>
<div class="cl"></div>
</div><!--row end-->
<div class="cl"></div>
</div><!--box1 end-->
</div>
<% end %>
<% end %>
<% end %>
<div class="footer">
<div class="footer-con">
<ul>
<li><a href="<%= about_us_path %>" target="_blank" class="fl">关于我们</a></li>
<li><a href="<%= agreement_path %>" target="_blank" class="fl"> 服务协议 </a></li>
<li><a href="http://forge.trustie.net/forums/1/memos/1168" target="_blank" class="fl">帮助中心</a></li>
<li><a href="<%= forums_path(:reorder_complex=>'desc')%>" target="_blank" class="fl"> 贴吧交流</a></li>
</ul>
<div class="cl"></div>
<p>Copyright 2007~2016 All Rights Reserved<br>湘ICP备09019772</p>
</div>
</div>
<!--backtop end-->
<main class="cd-container">
</main>
<a href="#0" class="cd-top">Top</a>
</div><!--container end-->
<!--页面底部-->
<div class="cl"></div>
<div id="ajax-modal" style="display:none;"></div>
<div id="ajax-indicator" style="display:none;">
<span><%= l(:label_loading) %></span>
</div>
</body>
</html>

View File

@ -84,8 +84,8 @@
<% end %> <% end %>
<% else %> <% else %>
<div class="homepageLeftMenuBlock" style="display:<%= field.hide == 0?'block':'none' %>;" id="org_subfield_<%= field.id %>"> <div class="homepageLeftMenuBlock" style="display:<%= field.hide == 0?'block':'none' %>;" id="org_subfield_<%= field.id %>">
<% if field.field_type == "Post" %> <% if field.field_type == "Post" %> <!--讨论帖子-->
<% if !field.subfield_subdomain_dir.nil? %> <% if !field.subfield_subdomain_dir.nil? %> <!--讨论帖子-->
<% if !request.local? and Secdomain.where("sub_type=2 and pid=?", organization.id).count > 0 and Secdomain.where("sub_type=2 and pid=?", organization.id).map(&:subname).include?(request.subdomain) %> <% if !request.local? and Secdomain.where("sub_type=2 and pid=?", organization.id).count > 0 and Secdomain.where("sub_type=2 and pid=?", organization.id).map(&:subname).include?(request.subdomain) %>
<%= link_to "#{field.name}", show_subfield_without_id_path(:sub_dir_name => field.subfield_subdomain_dir.name), :class => "homepageMenuText" %> <%= link_to "#{field.name}", show_subfield_without_id_path(:sub_dir_name => field.subfield_subdomain_dir.name), :class => "homepageMenuText" %>
<% else %> <% else %>

View File

@ -0,0 +1,48 @@
<% if User.current.logged? %>
<div class="navHomepageProfile" id="navHomepageProfile">
<ul>
<li class="homepageProfileMenuIcon fr" id="homepageProfileMenuIcon">
<%= link_to "<div class='mt5 mb8 user-img' id='user_avatar'>#{image_tag(url_to_avatar(User.current), :class => "portraitRadius",:alt=>"头像", :id => "nh_user_logo")}</div>".html_safe, user_activities_path(User.current.id) %>
<%#= link_to image_tag(url_to_avatar(User.current)), user_url_in_org(User.current.id), :alt => '用户头像', :target => '_blank', :class => "fr user-img" %>
<ul class="topnav_login_list none" id="topnav_login_list">
<li>
<%= link_to "修改资料", my_account_path, :class => "menuGrey"%>
</li>
<li>
<%= link_to "我的组织", user_organizations_user_path(:id => User.current.id), :class => "menuGrey"%>
</li>
<li>
<%= link_to "新建组织", new_organization_path, :class => "menuGrey"%>
</li>
<!--<li><a href="javascript:void(0);" class="menuGrey">账号设置</a> </li>-->
<li>
<%= link_to "退出", logout_url_without_domain, :class => "menuGrey", :method => "post"%>
</li>
</ul>
</li>
</ul>
</div>
<% else %>
<div class="login fr" >
<a href="<%= signin_url_without_domain %>" class=" " >登陆&nbsp;&nbsp;|&nbsp;</a>
<a href="<%= register_url_without_domain %>" class=" " >退出</a>
</div>
<% end %>
<script type="text/javascript">
$("#navHomepageProfile").mouseenter(function(){
$("#homepageProfileMenuIcon").addClass("homepageProfileMenuIconhover");
$("#topnav_login_list").show();
});
$("#navHomepageProfile").mouseleave(function(){
$("#homepageProfileMenuIcon").removeClass("homepageProfileMenuIconhover");
$("#topnav_login_list").hide();
});
function signout(){
$.post(
'<%= signout_path%>',
{}
);
}
</script>

View File

@ -0,0 +1,5 @@
<a href="#" target="_blank" class="row-con">
<span class="row-time"><%= format_date(activity.updated_at) %></span>
<h3 class="row-title "><%= activity.title %></h3>
<div class="row-txt row-txt-line"><%= activity.description %></div>
</a>

View File

@ -0,0 +1,18 @@
<a href="/#" title="">
<div class="course-list-img">
<% iamge_path = get_image_path_from_content(activity.description) %>
<% if iamge_path.nil? %>
<img width="370" height="220" alt="#" src="/images/org_new_style/default-img.jpg">
<% else %>
<img width="370" height="220" src="/files/uploads/image<%= iamge_path %>" alt="" />
<% end %>
</div>
<h5>
<span><%= link_to activity.name.to_s, student_work_index_url_in_org(activity.id), :target => '_blank' %></span>
</h5>
<div class="item-btm clearfix">
<a class="publisher-name fl" href="#" target="_blank"><%= activity.user.realname.nil? ? activity.user : activity.user.realname %></a>
<p class="pass-time fl"><span><%= format_date activity.updated_at %></span></p>
<div class="fr right-info"> <span> <%= activity.journals_for_messages.count %></span></div>
</div>
</a>

View File

@ -0,0 +1,22 @@
<a href="/#" title="">
<div class="course-list-img">
<% iamge_path = get_image_path_from_content(activity.content) %>
<% if iamge_path.nil? %>
<img width="370" height="220" alt="#" src="/images/org_new_style/default-img.jpg">
<% else %>
<img width="370" height="220" src="/files/uploads/image<%= iamge_path %>" alt="" />
<% end %>
</div>
<h5>
<% 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 %>
</h5>
<div class="item-btm clearfix">
<a class="publisher-name fl" href="#" target="_blank"><%= activity.try(:author).try(:realname).nil? ? activity.try(:author).try(:login) : activity.try(:author).try(:realname) %></a>
<p class="pass-time fl"><span><%= format_date activity.updated_on %></span></p>
<div class="fr right-info"> <span> <%= activity.children.count %></span></div>
</div>
</a>

View File

@ -0,0 +1,18 @@
<a href="/#" title="">
<div class="course-list-img">
<% iamge_path = get_image_path_from_content(activity.description) %>
<% if iamge_path.nil? %>
<img width="370" height="220" alt="#" src="/images/org_new_style/default-img.jpg">
<% else %>
<img width="370" height="220" src="/files/uploads/image<%= iamge_path %>" alt="" />
<% end %>
</div>
<h5>
<span><%= link_to activity.title.to_s, news_url_in_org(activity.id), :target => '_blank' %></span>
</h5>
<div class="item-btm clearfix">
<a class="publisher-name fl" href="#" target="_blank"><%= activity.try(:author).try(:realname).nil? ? activity.try(:author).try(:login) : activity.try(:author).try(:realname) %></a>
<p class="pass-time fl"><span><%= format_date activity.created_on %></span></p>
<div class="fr right-info"> <span> <%= activity.comments.count %></span></div>
</div>
</a>

View File

@ -0,0 +1,5 @@
<a href="#" target="_blank" class="row-con">
<span class="row-time"><%= format_date activity.updated_at %></span>
<h3 class="row-title ">首届卫星导航仿真与测试专题研讨会在...首届卫星导航仿真与测试专题研讨会在...</h3>
<div class="row-txt row-txt-line">10月15日由卫星导航仿真与测试开放实验室联盟主办的首次专题研讨会在西安国家民用航天产业基地隆重召开...</div>
</a>

View File

@ -0,0 +1,12 @@
<div class="cl"></div>
<div style="margin-top: 10px">
<% iamge_path = get_image_path_from_content(activity.content) %>
<% if iamge_path.nil? %>
<img src="/images/org_new_style/default-img.jpg" alt="" class="fl con-left-img"/>
<% else %>
<img src="/files/uploads/image<%= iamge_path %>" alt="" class="fl con-left-img"/>
<% end %>
<%=link_to activity.content.html_safe, organization_path(organization, :org_subfield_id => field.id), :class => "con-left-txt fl", :target => "_blank" %>
</div>
<div class="cl"></div>

View File

@ -0,0 +1,6 @@
<a href="#" target="_blank">
<div class="con-r-img fl">
<%= link_to image_tag(url_to_avatar(activity.creator),:width => "40", :height => "40"), user_path(activity.creator) %>
<span class="con-name"><%= activity.try(:creator).try(:realname).nil? ? activity.try(:creator).try(:login) : activity.try(:creator).try(:realname) %></span></div>
<p class="fr"><%= activity.content.html_safe %></p>
</a>

View File

@ -0,0 +1,17 @@
<div class="article-rwrap">
<h3 class="item-title-r">
<%= link_to activity.subject.to_s, issue_url_in_org(activity.id), :class => "title-detail-r" %>
</h3>
<div class="item-btm clearfix">
<ul class="fl left-info">
<li class="hd-pic">
<%= link_to activity.author.realname.nil? ? activity.author.login : activity.author.realname, user_path(activity.author), :class => "publisher-name fl", :target => "_blank" %>
</li>
<li class="pass-time"><span><%= format_date(activity.updated_on) %></span></li>
</ul>
<div class="fr right-info">
<span> <%= activity.journals.count %></span>
</div>
</div>
<div class="cl"></div>
</div>

View File

@ -0,0 +1,49 @@
<div class="item-img fr">
<% iamge_path = get_image_path_from_content(activity.content) %>
<% if iamge_path.nil? %>
<img src="/images/org_new_style/default-img.jpg" width="180" height="115">
<% else %>
<img src="/files/uploads/image<%= iamge_path %>" width="180" height="115">
<% end %>
</div>
<div class="article-lwrap clearfix">
<div class="item-txt fl">
<h3 class="item-title">
<% if activity.parent_id.nil? %>
<%= link_to activity.subject.to_s.html_safe, board_message_url_in_org(activity.board.id,activity.id), :class => "title-detail" %>
<% else %>
<%= link_to activity.parent.subject.to_s.html_safe, board_message_url_in_org(activity.board.id,activity.id), :class => "title-detail" %>
<% end %>
</h3>
<% if activity.parent_id.nil? %>
<% content = activity.content %>
<% else %>
<% content = activity.parent.content %>
<% end %>
<div class="item-bd">
<span class="fl"><%= content.to_s.html_safe %></span>
<% if activity.parent_id.nil? %>
<%= link_to "[查看全文]", board_message_url_in_org(activity.board.id,activity.id), :class => "read-more fl" %>
<% else %>
<%= link_to "[查看全文]", board_message_url_in_org(activity.board.id,activity.id), :class => "read-more fl" %>
<% end %>
</div>
<div class="item-btm clearfix">
<ul class="fl left-info">
<li class="hd-pic">
<%= link_to image_tag(url_to_avatar(activity.author),:width => "20", :height => "20"), user_path(activity.author), :class => "publisher-hd fl", :target => "_blank" %>
<a class="publisher-name fl" href="#" target="_blank">
<%= link_to activity.author.realname.nil? ? activity.author.login : activity.author.realname, user_path(activity.author), :class => "publisher-name fl", :target => "_blank" %>
</a>
</li>
<li class="pass-time"><span><%= format_date(activity.updated_on) %></span></li>
</ul>
<div class="fr right-info">
<span> <%= activity.children.count %></span>
</div>
</div>
</div>
<div class="cl"></div>
</div>

View File

@ -0,0 +1,14 @@
<% org_attachs.each do |attach| %>
<div class="row-ziyuan fl">
<%= link_to image_tag(url_to_avatar(attach.author),:width => "40", :height => "40"), user_path(attach.author), :class => "fl user-img" %>
<!--<a href="#" class="fl user-img" ><img src="images/detailimg4.jpg" /></a>-->
<div class="ziyuan-box fl">
<%= link_to truncate(attach.filename,length: 35, omission: '...'),
download_named_attachment_path(attach.id, attach.filename),
:title => attach.filename+"\n"+attach.description.to_s, :style => "overflow: hidden; white-space: nowrap;text-overflow: ellipsis;", :class => "fl ziyuan-title" %>
<p class="fl"><span >上传时间:<%= format_date attach.created_on %></span><span>类型:<%= attach.tag_list[0] %></span><span> 下载次数:<%= attach.downloads%></span> <span>引用:<%= attach.quotes.nil? ? 0:attach.quotes %></span></p>
</div>
<%= link_to "下载", download_named_attachment_path(attach.id, attach.filename), :class => "download-btn fl" %>
<div class="cl"></div>
</div><!--row-ziyuan end-->
<% end %>

View File

@ -72,13 +72,13 @@
<!--class="c_green f12" 您的申请已提交,系统会以消息的形式通知您结果 --> <!--class="c_green f12" 您的申请已提交,系统会以消息的形式通知您结果 -->
</div> </div>
<div class="cl"></div> <div class="cl"></div>
<!--<div class="orgRow mb10 mt5">--> <div class="orgRow mb10 mt5">
<!--<span style="margin-left:10px;" >显示模式&nbsp;: </span>--> <span style="margin-left:10px;" >显示模式&nbsp;: </span>
<!--<input type="radio" id="show_mode_ordinary" value="0" name="show_mode" style="margin-left:5px;" <%= @organization.show_mode == 0 ? "checked" : "" %> />--> <input type="radio" id="show_mode_ordinary" value="0" name="show_mode" style="margin-left:5px;" <%= @organization.show_mode == 0 ? "checked" : "" %> />
<!--<label for="show_mode_ordinary">社区模式一</label>--> <label for="show_mode_ordinary">社区模式一</label>
<!--<input type="radio" id="show_mode_special" value="1" name="show_mode" style="margin-left:10px;" <%= @organization.show_mode == 1 ? "checked" : "" %> />--> <input type="radio" id="show_mode_special" value="1" name="show_mode" style="margin-left:10px;" <%= @organization.show_mode == 1 ? "checked" : "" %> />
<!--<label for="show_mode_special">社区模式二</label>--> <label for="show_mode_special">社区模式二</label>
<!--</div>--> </div>
<div class="orgRow mb10 mt5"><span style="margin-left:38px;" >公开&nbsp;: </span> <div class="orgRow mb10 mt5"><span style="margin-left:38px;" >公开&nbsp;: </span>
<input type="checkbox" id="is_public" onclick="disable_down($(this), $('#allow_download'),$('#allow_down_hint'));" name="organization[is_public]" <%= @organization.is_public ? 'checked': ''%> class="ml3" /> <input type="checkbox" id="is_public" onclick="disable_down($(this), $('#allow_download'),$('#allow_down_hint'));" name="organization[is_public]" <%= @organization.is_public ? 'checked': ''%> class="ml3" />
</div> </div>

View File

@ -11,7 +11,7 @@
# #
# It's strongly recommended to check this file into your version control system. # It's strongly recommended to check this file into your version control system.
ActiveRecord::Schema.define(:version => 20160329014316) do ActiveRecord::Schema.define(:version => 20160328022623) do
create_table "activities", :force => true do |t| create_table "activities", :force => true do |t|
t.integer "act_id", :null => false t.integer "act_id", :null => false
@ -1301,6 +1301,7 @@ ActiveRecord::Schema.define(:version => 20160329014316) do
t.datetime "updated_at", :null => false t.datetime "updated_at", :null => false
t.boolean "allow_guest_download", :default => true t.boolean "allow_guest_download", :default => true
t.integer "visits", :default => 0 t.integer "visits", :default => 0
t.integer "show_mode", :default => 0
end end
create_table "phone_app_versions", :force => true do |t| create_table "phone_app_versions", :force => true do |t|

View File

@ -168,7 +168,7 @@ module Redmine
if block_given? if block_given?
yield text, parameters, options yield text, parameters, options
else else
if args[2][:path].nil? if args[2].nil? || args[2][:path].nil?
link_to text, params.merge(parameters), options link_to text, params.merge(parameters), options
else else
page = "&page=" + parameters[:page].to_s unless parameters[:page].nil? page = "&page=" + parameters[:page].to_s unless parameters[:page].nil?

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="16px" height="16px" viewBox="0 0 16 16" enable-background="new 0 0 16 16" xml:space="preserve">
<polygon fill="#FFFFFF" points="8,2.8 16,10.7 13.6,13.1 8.1,7.6 2.5,13.2 0,10.7 "/>
</svg>

After

Width:  |  Height:  |  Size: 555 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

View File

@ -0,0 +1,199 @@
@charset "utf-8";
/* CSS Document */
body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,form,fieldset,legend,button,input,textarea,th,td{ margin:0; padding:0;}
body,table,input,textarea,select,button { font-family: "微软雅黑","宋体"; font-size:12px;line-height:1.5; background:#fff;}
div,img,tr,td,table{ border:0;}
table,tr,td{border:0;cellspacing:0; cellpadding:0;}
ol,ul,li{ list-style-type:none}
a:link,a:visited{color:#000;text-decoration:none;}
a:hover{color:#29156f;}
.fl{ float:left;}
.fr{ float:right;}
.cl{ clear:both;overflow:hidden;}
.mr40{ margin-right:40px;}
.mr30{ margin-right:30px;}
.mb20{ margin-bottom:20px;}
.mb70{ margin-bottom:70px;}
.bg-grey{ background:#f2f2f2;}
/** header **/
.header{ width:100%; height:60px; background:#29146f; padding:5px 0 0px; }
.header-con{ width:1200px; margin:0 auto;}
.logo,.logo img{ display:block; height:52px; }
a.login{ background:url(../images/org_new_style/icons.png) -7px -11px no-repeat; width:146px; height:55px; margin-right:40px; margin-top:11px;}
a:hover.login{ background:url(../images/org_new_style/icons.png) -7px -88px no-repeat; }
a.register{ background:url(../images/org_new_style/icons.png) -190px -11px no-repeat; width:158px; height:55px; ;margin-top:11px;}
a:hover.register{ background:url(../images/org_new_style/icons.png) -190px -88px no-repeat; }
.login{ margin-top:15px;}
.login a{ color:#fff; font-size:14px; margin-top:10px; }
/** nav **/
.nav-box{ width:1200px; height:60px; margin:0 auto;}
.nav a{ display:block; padding:15px 10px; font-size:18px; color:#000; margin-right:20px; }
.navact{border-bottom:3px solid #ffbd18;}
.nav a:hover{border-bottom:3px solid #ffbd18;}
.searchbox{ width:338px; height:57px; border:1px solid #ccc; -webkit-border-radius: 3px;border-radius: 3px; margin:10px 0px 0 0;}
.search-input{width:270px; height:40px; color:#bebebe; font-size:18px; border:1px solid #ccc; -webkit-border-radius: 3px;border-radius: 3px;border:0px; background:none; margin:10px 0 0 20px;}
.search-input:hover{ border:none;color:#fff; }
a.search-icon{ background:url(../images/org_new_style/icons.png) -387px -11px no-repeat; width:40px; height:40px; margin-top:8px;}
a:hover.search-icon{ background:url(../images/org_new_style/icons.png) -387px -89px no-repeat;}
.searchbox:hover{ background:#999999; color:#fff;}
/* banner */
.banner{ width:100%; height:234px; background:#070317 url(../images/org_new_style/banner.jpg) 0 0 no-repeat; color:#fff; text-align:center; padding-top:70px; line-height:2.4;}
.banner h2{ font-size:42px; }
.banner p{ font-size:18px;}
.banner span{ font-size:16px;}
/** box1 **/
.box1{ width:100%; padding:60px 0;}
.content{ width:1200px; margin:0 auto;}
.box-top{ margin:0 auto; text-align:center; margin-bottom:45px; }
.box-title{ width:355px; height:67px; margin:0 auto; background:#29156f; color:#fff; text-align:center; font-size:40px; font-weight: lighter; margin-bottom:2px;}
.box-title-p{ font-size:20px; color:#999999;}
.row{ width:1200px; margin: 0 auto; }
.row-box1{ width:365px;}
.row-img{ margin-bottom:10px; width:365px; height:230px; display:block;}
.row-time{ color:#ffbd18; font-size:14px; font-weight:bold; line-height:1.9;}
.row-title{ font-size:16px; font-weight:bold; line-height:1.9;display:block;white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.row-con { display:block; }
.row-con:hover{ color:#29156f; }
.row-txt{line-height:2.4; padding-bottom:10px; margin-bottom:10px; color:#888;}
.row-txt:hover{color:#29156f;}
.row-txt-line{border-bottom:1px solid #cccccc; width:365px;}
a.btn-more{ display:block; font-size:14px; width:110px; height:40px; -webkit-border-radius: 3px;border-radius: 3px;background:#ffbd18; color:#fff; text-align:center; line-height:3.0;}
a:hover.btn-more{ background:#29156f;}
.row-box2{ width:388px; border:1px solid #ccc; border-bottom:none;}
.row-con2 a{ display:block;padding:20px 10px; border-bottom:1px solid #ccc;}
.row-con2 a:hover{ background:#29156f; color:#fff;}
.row-con2 a:hover{ color:#fff;}
.row-txt2{line-height:2.4; color:#888;}
.row-txt2:hover{ color:#fff; }
/** 活动专区 **/
.con-left{ width:618px;}
.con-left-box{ margin-bottom:20px; height:96px; display:block;}
.con-left-img{ width:175px; height:96px;}
.con-left-txt{ width:360px; margin-left:15px; font-size:14px; color:#888; padding-top:8px; line-height:1.9; height:75px; overflow:hidden;text-overflow:ellipsis;display:-webkit-box;
-webkit-line-clamp:3;-webkit-box-orient:vertical;}
.con-left-txt:hover{color:#29156f;}
.con-left-pre{ margin-top:15px; }
a.con-back-btn{ display: block;width:25px;height:25px;background:url(../images/org_new_style/icons.png) no-repeat -38px -505px ;}
a.con-arrow-btn{ display: block;width:25px;height:25px;background:url(../images/org_new_style/icons.png) no-repeat -12px -505px ; opacity:.5;}
.con-right{ width:532px; height:170px; background:#f6f6f6 ; padding:25px;}
.con-right p{background: url(../images/org_new_style/con-right.gif) no-repeat 0 0;line-height:1.9; width:415px; padding:40px 0 0 20px; font-size:14px; color:#888; margin-left:20px;}
.con-r-img img{ border:3px solid #e6473b; -moz-border-radius: 50px; -webkit-border-radius: 50px;border-radius: 50px; display:block; width:67px; height:67px;}
.con-r-img img:hover{border:3px solid #29156f;}
.con-name{ font-size:18px; font-weight:bold; margin-top:5px;}
.con-r-img { text-align:center;}
.con-r-pre{ margin-top:20px;}
a.pre-arrow,a.pre-back{ display:block; width:25px; height:10px; background:#29156f; margin-left:5px;}
a.pre-back{ background:#888;}
/** footer **/
.footer{ height:150px; background:#29156f; width:100%;}
.footer-con{ width:1200px; padding:30px 0 0 60px; margin:0 auto; text-align:center; font-size:14px; color:#fff;}
.footer-con ul{ display:block; width:430px; height:50px; margin:0 auto; }
.footer-con ul li a{font-size:18px; color:#fff; margin-right:35px; font-weight:bold;}
/** download **/
.row-ziyuan{ width:570px; border-bottom:1px solid #f0f0f0; padding:15px 0;margin: 0px 15px;}
.ziyuan-box{ width:420px; margin-right:20px;}
.ziyuan-box span{ margin-right:5px;}
.ziyuan-title{ display:block; width:420px; font-size:16px;white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.ziyuan-box p{display:block; width:420px; color:#888; font-size:12px; line-height:2.5;}
a.download-btn{ display:block; border:1px solid #ccc; margin-top:10px; font-size:14px; width:70px; height:27px;-webkit-border-radius: 3px;border-radius:3px;color:#888; text-align:center; line-height:1.9;}
a:hover.download-btn{ background:#29146f; color:#fff; border:none;}
.user-img,.user-img img{ margin-right:10px; -moz-border-radius: 50px; -webkit-border-radius: 50px;border-radius: 50px; display:block; width:40px; height:40px;}
.ml60{ margin-left:60px;}
.user-img img{border:2px solid #e6473b; }
.user-img img:hover{border:2px solid #29156f;}
.article-lwrap{ width:760px; border-bottom:1px solid #E4E4E4; padding:10px 0;}
.item-txt{ width:555px;}
.item-img,.item-img img{ width:180px; height:120px;}
.item-title{ display:block; width:555px; font-size:18px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; margin-bottom:5px;}
.item-bd{ width:555px; font-size:14px !important; color:#888; line-height:1.9; height:55px; overflow:hidden;text-overflow:ellipsis;display:-webkit-box;
-webkit-line-clamp:2;-webkit-box-orient:vertical; }
.item-bd:hover{color:#29156f;}
a.read-more{ color:red;}
a:hover.read-more{ text-decoration:underline;}
.publisher-hd,.publisher-hd img{ margin-right:10px; -moz-border-radius: 50px; -webkit-border-radius: 50px;border-radius: 50px; display:block; width:28px; height:28px;}
.left-info li,left-info li a{ float:left;}
.item-btm,.publisher-name,.pass-time{ margin-top:5px;}
.pass-time{ margin-left:20px; color:#888;}
.right-info{background:url(../images/org_new_style/icons.png) no-repeat -41px -541px ; width:15px; height:16px; padding-left:20px; color:#888; margin-top:5px;}
.nopic{ width:760px;}
.article-lwrap{ width:760px; border-bottom:1px solid #E4E4E4; padding:20px 0;}
.item-title-r{ display:block; width:400px; font-size:18px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.article-rwrap{ width:400px; border-bottom:1px dashed #E4E4E4; padding:12px 0;}
.course-list ul{ }
.course-list ul li{ display:block; width:370px; float:left; margin:0 15px;}
.course-list h5{display:block; width:380px; font-size:18px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.course-list-img,.course-list-img img{ width:370px; height:220px; margin-bottom:10px;}
/*用户图像*/
.topnav_login_list{ border:1px solid #eaeaea; background:#fff; padding-left:10px; padding-bottom:10px; padding-top:8px; width:60px; left:-7px; position:absolute; z-index:9999; line-height:2; box-shadow: 0px 2px 8px rgba(146, 153, 169, 0.5); margin-top: 1px;}
.topnav_login_list a{color:#269ac9;}
.topnav_login_list li{ }
.homepageProfileMenuIcon {background:url(../images/nav_icon.png) 30px -155px no-repeat; width:65px; height:54px; position:relative; display:inline-block; line-height:0;}
.homepageLeft {width:240px; float:left; margin-right:10px; margin-bottom:10px;}
.none {display: none;}
/** backtop **/
.cd-top {
display: inline-block;
height: 60px;
width: 60px;
position: fixed;
bottom: 40px;
right: 10px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.05);
/* image replacement properties */
overflow: hidden;
text-indent: 100%;
white-space: nowrap;
background: rgba(232, 98, 86, 0.8) url(../images/org_new_style/cd-top-arrow.svg) no-repeat center 50%;
visibility: hidden;
opacity: 0;
-webkit-transition: all 0.3s;
-moz-transition: all 0.3s;
transition: all 0.3s;
}
.cd-top.cd-is-visible {
/* the button becomes visible */
visibility: visible;
opacity: 1;
}
.cd-top.cd-fade-out {
/* 如果用户继续向下滚动,这个按钮的透明度会变得更低 */
opacity: .5;
}
.no-touch .cd-top:hover {
background-color: #29156f;
opacity: 1;
}
a.more-btn{ display:block; background:#ccc; color:#fff; margin-top:10px; width:100px; height:38px;font-size:14px; -webkit-border-radius: 5px;border-radius:5px;text-align:center; line-height:38px;}
a.more-btn-center{ display:block; background:#ccc; color:#fff; margin-top:10px; width:100px; height:38px;font-size:14px; -webkit-border-radius: 5px;border-radius:5px;text-align:center; line-height:38px;width:100px; margin:0px auto;margin-top: 15px;}
a:hover.more-btn{ background:#29146f; color:#fff;}
a:hover.more-btn-center{ background:#29146f; color:#fff;}
.mt30{ margin-top:30px;}