This commit is contained in:
sw 2014-07-04 10:30:14 +08:00
commit 2506e8e50d
10 changed files with 104 additions and 89 deletions

View File

@ -51,7 +51,10 @@ class MemosController < ApplicationController
@memo_new = @memo.dup @memo_new = @memo.dup
@memo = @memo.root # 取出楼主防止输入帖子id让回复作为主贴显示 @memo = @memo.root # 取出楼主防止输入帖子id让回复作为主贴显示
@memo.update_column(:viewed_count, (@memo.viewed_count.to_i + 1)) unless @memo.new_record?
@memo.update_column(:viewed_count, (@memo.viewed_count.to_i + 1))
end
page = params[:page] page = params[:page]
if params[:r] && page.nil? if params[:r] && page.nil?
@ -68,10 +71,14 @@ class MemosController < ApplicationController
limit(@reply_pages.per_page). limit(@reply_pages.per_page).
offset(@reply_pages.offset). offset(@reply_pages.offset).
all all
if @memo.new_record?
format.html { redirect_to back_url, error: "#{l :label_memo_create_fail}: #{@memo.errors.full_messages[0]}" }
else
format.html { render action: :show }#, error: "#{l :label_memo_create_fail}: #{@memo.errors.full_messages[0]}" }
# format.html { redirect_to back_memo_or_forum_url}#, error: "#{l :label_memo_create_fail}: #{@memo.errors.full_messages[0]}" }
format.json { render json: @memo.errors, status: :unprocessable_entity }
end
format.html { render action: :show }#, error: "#{l :label_memo_create_fail}: #{@memo.errors.full_messages[0]}" }
# format.html { redirect_to back_memo_or_forum_url}#, error: "#{l :label_memo_create_fail}: #{@memo.errors.full_messages[0]}" }
format.json { render json: @memo.errors, status: :unprocessable_entity }
end end
end end
end end

View File

@ -32,7 +32,7 @@ class WelcomeController < ApplicationController
def course def course
if params[:school_id] if params[:school_id]
@school_id = params[:school_id] @school_id = params[:school_id]
else elsif User.current.logged? && User.current.user_extensions.school
@school_id = User.current.user_extensions.school.id @school_id = User.current.user_extensions.school.id
end end
@logoLink ||= logolink() @logoLink ||= logolink()

View File

@ -233,8 +233,13 @@ module WelcomeHelper
def find_all_new_hot_course limit = 9 ,school_id = 0 def find_all_new_hot_course limit = 9 ,school_id = 0
#sort_project_by_hot_rails 1, 'course_ac_para DESC', limit #sort_project_by_hot_rails 1, 'course_ac_para DESC', limit
time_now = Time.new.strftime("%Y"); time_now = Time.new.strftime("%Y");
if school_id
courses = Course.visible.joins(:course_status).where("#{Course.table_name}.created_at like '%#{time_now}%' and #{Course.table_name}.school_id <> courses = Course.visible.joins(:course_status).where("#{Course.table_name}.created_at like '%#{time_now}%' and #{Course.table_name}.school_id <>
?", school_id).order("course_ac_para DESC").limit(limit).all ?", school_id).order("course_ac_para DESC").limit(limit).all
else
courses = Course.visible.joins(:course_status).where("#{Course.table_name}.created_at like '%#{time_now}%' and #{Course.table_name}.school_id is not NULL
").order("course_ac_para DESC").limit(limit).all
end
courses courses
end end

View File

@ -3,9 +3,9 @@ class Memo < ActiveRecord::Base
belongs_to :forum belongs_to :forum
belongs_to :author, :class_name => "User", :foreign_key => 'author_id' belongs_to :author, :class_name => "User", :foreign_key => 'author_id'
validates_presence_of :author_id, :forum_id, :subject validates_presence_of :author_id, :forum_id, :subject,:content
# 若是主题帖,则内容可以是空 # 若是主题帖,则内容可以是空
validates :content, presence: true, if: Proc.new{|o| !o.parent_id.nil? } #validates :content, presence: true, if: Proc.new{|o| !o.parent_id.nil? }
validates_length_of :subject, maximum: 50 validates_length_of :subject, maximum: 50
validates_length_of :content, maximum: 3072 validates_length_of :content, maximum: 3072
validate :cannot_reply_to_locked_topic, :on => :create validate :cannot_reply_to_locked_topic, :on => :create

View File

@ -164,7 +164,7 @@ class User < Principal
# Prevents unauthorized assignments # Prevents unauthorized assignments
attr_protected :login, :admin, :password, :password_confirmation, :hashed_password attr_protected :login, :admin, :password, :password_confirmation, :hashed_password
LOGIN_LENGTH_LIMIT = 60 LOGIN_LENGTH_LIMIT = 25
MAIL_LENGTH_LIMIT = 60 MAIL_LENGTH_LIMIT = 60
validates_presence_of :login, :firstname, :mail, :if => Proc.new { |user| !user.is_a?(AnonymousUser) } validates_presence_of :login, :firstname, :mail, :if => Proc.new { |user| !user.is_a?(AnonymousUser) }

View File

@ -3,26 +3,25 @@
<script type="text/javascript" language="javascript" xmlns="http://www.w3.org/1999/html" <script type="text/javascript" language="javascript" xmlns="http://www.w3.org/1999/html"
xmlns="http://www.w3.org/1999/html" xmlns="http://www.w3.org/1999/html"> xmlns="http://www.w3.org/1999/html" xmlns="http://www.w3.org/1999/html">
$(function(){ $(function () {
$("#main").find("a").attr("target", "_blank"); $("#main").find("a").attr("target", "_blank");
setCss(); setCss();
}); });
//设置div居中 //设置div居中
function setCss() function setCss() {
{
var mainBar = $('#main-content-bar')[0]; var mainBar = $('#main-content-bar')[0];
var topHeight = mainBar.offsetHeight; var topHeight = mainBar.offsetHeight;
var welcomeLeft = $('#welcome_left')[0]; var welcomeLeft = $('#welcome_left')[0];
var leftHeight = welcomeLeft.offsetHeight; var leftHeight = welcomeLeft.offsetHeight;
var searchbar = $('#search-bar')[0]; var searchbar = $('#search-bar')[0];
var searchHeight = searchbar.offsetHeight; var searchHeight = searchbar.offsetHeight;
welcomeLeft.style.marginTop = (topHeight - leftHeight)/2 + "px"; welcomeLeft.style.marginTop = (topHeight - leftHeight) / 2 + "px";
searchbar.style.marginTop = (topHeight - searchHeight)/2 + "px"; searchbar.style.marginTop = (topHeight - searchHeight) / 2 + "px";
//alert((topHeight - leftHeight)/2 ); //alert((topHeight - leftHeight)/2 );
} }
// 给主页用户弹新页面 // 给主页用户弹新页面
$(document).ready(function($) { $(document).ready(function ($) {
$("#loggedas").find("a").attr("target", "_blank"); $("#loggedas").find("a").attr("target", "_blank");
//$("#content .tabs_new~ .pagination").find("a").removeAttr("target"); //$("#content .tabs_new~ .pagination").find("a").removeAttr("target");
}); });
@ -35,20 +34,20 @@
</div> </div>
<div class="main-content-bar" id="main-content-bar"> <div class="main-content-bar" id="main-content-bar">
<div style="float: left"> <div style="float: left">
<%= image_tag(@logoLink, size:'75x75') %> <%= image_tag(@logoLink, size: '75x75') %>
</div> </div>
<div class="course welcome_left" id="welcome_left" > <div class="course welcome_left" id="welcome_left">
<span class="font_welcome_school"> <% if @school_id.nil? and User.current.user_extensions.school.nil? %> <span class="font_welcome_school"> <% if @school_id.nil? and User.current.user_extensions.school.nil? %>
<% else%> <% else %>
<% if @school_id == "0" %> <% if @school_id == "0" %>
<% else %> <% else %>
<% if @school_id.nil? %> <% if @school_id.nil? %>
<%= link_to School.find(User.current.user_extensions.school.id).name, options={:action => 'course',:school_id => User.current.user_extensions.school.id}, html_options={:class => 'font_welcome_school',:method => 'get'}%> <%= link_to School.find(User.current.user_extensions.school.id).name, options={:action => 'course', :school_id => User.current.user_extensions.school.id}, html_options={:class => 'font_welcome_school', :method => 'get'} %>
<br /> <br/>
<% else %> <% else %>
<%= link_to School.find(@school_id).name ,options={:action => 'course',:school_id => @school_id}, html_options={:class => 'font_welcome_school',:method => 'get'}%> <%= link_to School.find(@school_id).name, options={:action => 'course', :school_id => @school_id}, html_options={:class => 'font_welcome_school', :method => 'get'} %>
<br /> <br/>
<% end %> <% end %>
<% end %> <% end %>
<% end %> </span> <% end %> </span>
@ -62,7 +61,7 @@
<% end %> <% end %>
</div> </div>
<div class="search-bar" id="search-bar"> <div class="search-bar" id="search-bar">
<%= render :partial => "search_course", :locals => {:project_type => Project::ProjectType_course}%> <%= render :partial => "search_course", :locals => {:project_type => Project::ProjectType_course} %>
</div> </div>
<div style="clear: both;"></div> <div style="clear: both;"></div>
</div> </div>
@ -73,32 +72,38 @@
<div id="J_Slide" class="d-p-index-box d-p-index-hotproject"> <div id="J_Slide" class="d-p-index-box d-p-index-hotproject">
<h3><strong>新开课程</strong></h3> <h3><strong>新开课程</strong></h3>
<% school_course = find_miracle_course(10, 7,@school_id) %> <% if @school_id %>
<% if(school_course.count == 0) %> <% school_course = find_miracle_course(10, 7, @school_id) %>
<% else %>
<%school_course=[]%>
<% end %>
<% if (school_course.count == 0) %>
<span><%= link_to "更多>>", {:controller => 'courses', :action => 'index', :school_id => nil} %></span> <span><%= link_to "更多>>", {:controller => 'courses', :action => 'index', :school_id => nil} %></span>
<div class="d-p-projectlist-box"> <div class="d-p-projectlist-box">
<ul class="d-p-projectlist"> <ul class="d-p-projectlist">
</ul> </ul>
<ul class="d-p-projectlist"> <ul class="d-p-projectlist">
<h1></h1> <h1></h1>
<p id="errorExplanation"> <p id="errorExplanation">
该学校未开设任何课程,您可以查看其他学校课程 该学校未开设任何课程,您可以查看其他学校课程
</p> </p>
<h1></h1> <h1></h1>
<% find_all_new_hot_course(9,@school_id).map do |project| %> <% find_all_new_hot_course(9, @school_id).map do |course| %>
<li class='<%= cycle("odd", "even") %>' title=<%=project.description.to_s%>> <li class='<%= cycle("odd", "even") %>' title=<%= course.description.to_s %>>
<div class='avatar'> <div class='avatar'>
<%= image_tag(get_course_avatar(project), :class => "avatar-4") %> <%= image_tag(get_course_avatar(course), :class => "avatar-4") %>
</div> </div>
<!-- 上左下右 --> <!-- 上左下右 -->
<div class='desc_item' > <div class='desc_item'>
<span class=''> <span class=''>
<% course = Course.find_by_extra(project.extra)%> <% if (course.school == nil) %>
<% if(course.school == nil) %>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<% else %> <% else %>
<%= link_to course.school.name.try(:gsub, /(.+)$/, '\1:'), options={:action => 'course',:school_id => course.school.id}, html_options={:method => 'get'}%> <%= link_to course.school.name.try(:gsub, /(.+)$/, '\1:'), options={:action => 'course', :school_id => course.school.id}, html_options={:method => 'get'} %>
<% end %> <% end %>
</span> </span>
<span class='font_bolder'> <span class='font_bolder'>
@ -107,15 +112,12 @@
</span> </span>
</div> </div>
<div class='desc_item text_nowrap' style="width: 310px;"> <div class='desc_item text_nowrap' style="width: 310px;">
[<%= get_course_term project %>] [<%= get_course_term course %>]
<%= link_to( project.name, course_path(project.id), :class => "d-g-blue d-p-project-name",:title => "#{project.name}" )%> <%= link_to(course.name, course_path(course.id), :class => "d-g-blue d-p-project-name", :title => "#{course.name}") %>
(<%= "#{studentCount(project)}人" %>) (<%= "#{studentCount(course)}人" %>)
<% files_count = (project.attachments.count.to_i+Version.joins(:project).where("projects.id=#{project.id}").count.to_i).to_s %> <% files_count = course.attachments.count.to_s %>
(<%=link_to "#{files_count}份", course_files_path(project) %>资料) (<%= link_to "#{files_count}份", course_files_path(course) %>资料)
</div> </div>
<!-- <div class='desc_item' style="">
<span class='font_lighter' title=<%#=project.description.to_s%>><%#=project.description.truncate(25, omission: '...')%></span>
</div> -->
</li> </li>
<% end %> <% end %>
</ul> </ul>
@ -135,74 +137,73 @@
</ul> </ul>
<ul class="d-p-projectlist"> <ul class="d-p-projectlist">
<% school_course.map do |project| %> <% school_course.map do |course| %>
<li class='<%= cycle("odd", "even") %>' title=<%=project.description.to_s%>> <li class='<%= cycle("odd", "even") %>' title=<%= course.description.to_s %>>
<div class='avatar'> <div class='avatar'>
<%= image_tag(get_course_avatar(project), :class => "avatar-4") %> <%= image_tag(get_course_avatar(course), :class => "avatar-4") %>
</div> </div>
<!-- 上左下右 --> <!-- 上左下右 -->
<div class='desc_item' > <div class='desc_item'>
<span class=''> <span class=''>
<% course = project %> <%= link_to course.school.name.try(:gsub, /(.+)$/, '\1:'), options={:action => 'course', :school_id => course.school.id}, html_options={:method => 'get'} %>
<%=link_to course.school.name.try(:gsub, /(.+)$/, '\1:'),options={:action => 'course',:school_id => course.school.id}, html_options={:method => 'get'} %>
</span> </span>
<span class='font_bolder'> <span class='font_bolder'>
<%= link_to(course.try(:teacher).try(:realname), user_path(course.teacher)) %> <%= link_to(course.try(:teacher).try(:realname), user_path(course.teacher)) %>
</span> </span>
</div> </div>
<div class='desc_item text_nowrap' style="width: 310px;"> <div class='desc_item text_nowrap' style="width: 310px;">
[<%= get_course_term project %>] [<%= get_course_term course %>]
<%= link_to( project.name, course_path(project.id), :class => "d-g-blue d-p-project-name",:title => "#{project.name}" )%> <%= link_to(course.name, course_path(course.id), :class => "d-g-blue d-p-project-name", :title => "#{course.name}") %>
(<%= "#{studentCount(project)}人" %>) (<%= "#{studentCount(course)}人" %>)
<% files_count = (project.attachments.count.to_i+Version.joins(:project).where("projects.id=#{project.id}").count.to_i).to_s %> <% files_count = course.attachments.count.to_s %>
(<%=link_to "#{files_count}份", course_files_path(project) %>资料) (<%= link_to "#{files_count}份", course_files_path(course) %>资料)
</div> </div>
<div class='join_course_link'> <div class='join_course_link'>
<% if !course_endTime_timeout?(project)%> <% if !course_endTime_timeout?(course) %>
<div > <div>
<%= join_in_course(project, User.current)%> <%= join_in_course(course, User.current) %>
</div> </div>
<% end %> <% end %>
</div> </div>
</li> </li>
<% end; reset_cycle %> <% end; reset_cycle %>
<% if school_course.count < 9 %> <% if school_course.count < 9 %>
<li> <li>
<h1></h1> <h1></h1>
<p id="errorExplanation">
该学校开设课程较少,您可以查看其他学校课程 <p id="errorExplanation">
</p> 该学校开设课程较少,您可以查看其他学校课程
</li> </p>
<% find_all_new_hot_course(9 - school_course.count,@school_id).map do |project| %> </li>
<li class='<%= cycle("odd", "even") %>' title=<%=project.description.to_s%>> <% find_all_new_hot_course(9 - school_course.count, @school_id).map do |course| %>
<div class='avatar'> <li class='<%= cycle("odd", "even") %>' title=<%= course.description.to_s %>>
<%= image_tag(get_course_avatar(project), :class => "avatar-4") %> <div class='avatar'>
</div> <%= image_tag(get_course_avatar(course), :class => "avatar-4") %>
<!-- 上左下右 --> </div>
<div class='desc_item' > <!-- 上左下右 -->
<div class='desc_item'>
<span class=''> <span class=''>
<% course = project%> <% if (course.school == nil) %>
<% if(course.school == nil) %>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<% else %> <% else %>
<!-- modified by zjc 添加超链接 --> <!-- modified by zjc 添加超链接 -->
<%= link_to course.school.name.try(:gsub, /(.+)$/, '\1:'), options={:action => 'course',:school_id => course.school.id}, html_options={:method => 'get'}%> <%= link_to course.school.name.try(:gsub, /(.+)$/, '\1:'), options={:action => 'course', :school_id => course.school.id}, html_options={:method => 'get'} %>
<% end %> <% end %>
</span> </span>
<span class='font_bolder'> <span class='font_bolder'>
<%= link_to(course.try(:teacher).try(:name), user_path(course.teacher)) %> <%= link_to(course.try(:teacher).try(:name), user_path(course.teacher)) %>
</span> </span>
</div> </div>
<div class='desc_item text_nowrap' style="width: 310px;"> <div class='desc_item text_nowrap' style="width: 310px;">
[<%= get_course_term project %>] [<%= get_course_term course %>]
<%= link_to( project.name, project_path(project.id), :class => "d-g-blue d-p-project-name",:title => "#{project.name}" )%> <%= link_to(course.name, course_path(course.id), :class => "d-g-blue d-p-project-name", :title => "#{course.name}") %>
<%= "#{studentCount(project)}人" %> ) <%= "#{studentCount(course)}人" %> )
<% files_count = (project.attachments.count.to_i+Version.joins(:project).where("projects.id=#{project.id}").count.to_i).to_s %> <% files_count = course.attachments.count.to_i.to_s %>
(<%=link_to "#{files_count}份", project_files_path(project) %>资料) (<%= link_to "#{files_count}份", course_files_path(course) %>资料)
</div> </div>
</li> </li>
<% end %> <% end %>
<% end %> <% end %>
</ul> </ul>
</div> </div>
@ -212,18 +213,20 @@
<div id="J_Slide" class="d-p-index-box d-p-index-hotproject" style="float: right;"> <div id="J_Slide" class="d-p-index-box d-p-index-hotproject" style="float: right;">
<h3 style="padding-bottom:0px ;margin-left: 5px; color: #e8770d;"> <h3 style="padding-bottom:0px ;margin-left: 5px; color: #e8770d;">
<strong>问题和反馈动态</strong> <strong>问题和反馈动态</strong>
<%= link_to "我要提问" , newbie_send_path, {:class => 'orangeButton idea_btn', :style => "color: #EEEEEE" }%> <%= link_to "我要提问", newbie_send_path, {:class => 'orangeButton idea_btn', :style => "color: #EEEEEE"} %>
<%= link_to "我要反馈" , suggestion_send_path, {:class => 'orangeButton idea_btn', :style => "color: #EEEEEE" }%> <%= link_to "我要反馈", suggestion_send_path, {:class => 'orangeButton idea_btn', :style => "color: #EEEEEE"} %>
</h3> </h3>
<span style="margin-top: -20px;float: right; display: block;"><%= link_to "更多>>", forums_path %></span> <span style="margin-top: -20px;float: right; display: block;"><%= link_to "更多>>", forums_path %></span>
<div class="d-p-projectlist-box"> <div class="d-p-projectlist-box">
<ul class="d-p-projectlist"> <ul class="d-p-projectlist">
<% find_new_forum_topics(10).each do |topic|%> <% find_new_forum_topics(10).each do |topic| %>
<li class="message-brief-intro" style="min-height: 65px; line-height:2em; "> <li class="message-brief-intro" style="min-height: 65px; line-height:2em; ">
<div style="display: inline-block; width: 100%;"> <div style="display: inline-block; width: 100%;">
<span class="memo_activity text_nowrap" style="color:gray; display: inline-block; margin-bottom:6px; background: url('/images/list-icon.png') no-repeat scroll ;background-position: left center;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="memo_activity text_nowrap" style="color:gray; display: inline-block; margin-bottom:6px; background: url('/images/list-icon.png') no-repeat scroll ;background-position: left center;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<%= link_to '['+topic.forum.name + ']',forum_path(topic.forum),:class => 'memo_Bar_title' %><%= link_to topic.subject.truncate(30, omission: '...'), topic.event_url, :class => "gray" , :style => "font-size: 10pt !important;" %> <%= link_to '['+topic.forum.name + ']', forum_path(topic.forum), :class => 'memo_Bar_title' %><%= link_to topic.subject.truncate(30, omission: '...'), topic.event_url, :class => "gray", :style => "font-size: 10pt !important;" %>
</span> </span>
<div class='memo_activity memo_attr'> <div class='memo_activity memo_attr'>
<span class='memo_timestamp'> <span class='memo_timestamp'>
<%= "#{l(:label_updated_time, value: time_tag_welcome(topic_last_time topic))}".html_safe %> <%= "#{l(:label_updated_time, value: time_tag_welcome(topic_last_time topic))}".html_safe %>
@ -232,7 +235,7 @@
楼主: <%= link_to_user(topic.author) %> 楼主: <%= link_to_user(topic.author) %>
</span> </span>
<span class="memo_last_person"> <span class="memo_last_person">
最后回复:<%=link_to_user topic.last_reply.try(:author) %> 最后回复:<%= link_to_user topic.last_reply.try(:author) %>
</span> </span>
<span class="memo_reply"> <span class="memo_reply">
回复(<%= link_to topic.try(:replies_count), topic.event_url %>) 回复(<%= link_to topic.try(:replies_count), topic.event_url %>)

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -449,7 +449,7 @@ a.attachments_list_color {
font-size: 9pt; font-size: 9pt;
} }
.memo_activity span a{ .memo_activity span a{
color: gray; /*color: gray;*/
} }
/*帖子的最后回复人*/ /*帖子的最后回复人*/
.memo_activity .memo_last_person{ .memo_activity .memo_last_person{