update forum

This commit is contained in:
lizanle 2015-09-18 17:44:16 +08:00
parent 2fa01f32fb
commit 9443c139f0
26 changed files with 1042 additions and 530 deletions

View File

@ -7,7 +7,7 @@ class ForumsController < ApplicationController
before_filter :find_forum_if_available
before_filter :authenticate_user_edit, :only => [:edit, :update]
before_filter :authenticate_user_destroy, :only => [:destroy]
before_filter :require_login, :only => [:new, :create]
before_filter :require_login, :only => [:new, :create,:show,:destroy,:update,:edit]
helper :sort
include SortHelper
@ -97,7 +97,15 @@ class ForumsController < ApplicationController
def index
@offset, @limit = api_offset_and_limit({:limit => 10})
@forums_all = Forum.reorder("sticky DESC")
if(params[:reorder_complex])
@forums_all = Forum.reorder("topic_count #{params[:reorder_complex]},updated_at #{params[:reorder_complex]}")
elsif(params[:reorder_popu])
@forums_all = Forum.reorder("topic_count #{params[:reorder_popu]}")
elsif(params[:reorder_time])
@forums_all = Forum.reorder("updated_at #{params[:reorder_time]}")
else
@forums_all = Forum.reorder("topic_count desc,updated_at desc")
end
@forums_count = @forums_all.count
@forums_pages = Paginator.new @forums_count, @limit, params['page']
@ -106,6 +114,7 @@ class ForumsController < ApplicationController
#@forums = Forum.all
respond_to do |format|
format.html # index.html.erb
format.js
format.json { render json: @forums }
end
end
@ -113,23 +122,34 @@ class ForumsController < ApplicationController
# GET /forums/1
# GET /forums/1.json
def show
sort_init 'updated_at', 'desc'
sort_update 'created_at' => "#{Memo.table_name}.created_at",
'replies' => "#{Memo.table_name}.replies_count",
'updated_at' => "COALESCE (last_replies_memos.created_at, #{Memo.table_name}.created_at)"
# sort_init 'updated_at', 'desc'
# sort_update 'created_at' => "#{Memo.table_name}.created_at",
# 'replies' => "#{Memo.table_name}.replies_count",
# 'updated_at' => "COALESCE (last_replies_memos.created_at, #{Memo.table_name}.created_at)"
order = ""
if(params[:reorder_complex])
order = " last_replies_memos.created_at #{params[:reorder_complex]}, #{Memo.table_name}.created_at #{params[:reorder_complex]}"
elsif(params[:reorder_popu])
order = "replies_count #{params[:reorder_popu]}"
elsif(params[:reorder_time])
order = "#{Memo.table_name}.updated_at #{params[:reorder_time]}"
else
order = "last_replies_memos.created_at desc, #{Memo.table_name}.created_at desc"
end
@memo = Memo.new(:forum => @forum)
@topic_count = @forum.topics.count
@topic_pages = Paginator.new @topic_count, per_page_option, params['page']
@memos = @forum.topics.
# reorder("#{Memo.table_name}.sticky DESC").
includes(:last_reply).
includes(:last_reply).where("last_replies_memos.parent_id is null and #{Memo.table_name}.parent_id is null").
limit(@topic_pages.per_page).
offset(@topic_pages.offset).
order(sort_clause).
reorder(order).
preload(:author, {:last_reply => :author}).
all
@memos
@my_topic_count = Memo.where("forum_id = #{@forum.id} and author_id = #{User.current.id} and parent_id is null").count
@my_replies_count = Memo.where("forum_id = #{@forum.id} and author_id = #{User.current.id} and parent_id is not null").count
# @offset, @limit = api_offset_and_limit({:limit => 10})
# @forum = Forum.find(params[:id])
# @memos_all = @forum.topics
@ -139,6 +159,7 @@ class ForumsController < ApplicationController
# @offset ||= @topic_pages.offset
# @memos = @memos_all.offset(@offset).limit(@limit).all
respond_to do |format|
format.js
format.html {
render :layout => 'base_forums'
}# show.html.erb
@ -178,7 +199,7 @@ class ForumsController < ApplicationController
end
#end
respond_to do |format|
format.js
format.html { redirect_to @forum, notice: l(:label_forum_create_succ) }
format.json { render json: @forum, status: :created, location: @forum }
end
@ -186,6 +207,7 @@ class ForumsController < ApplicationController
else
respond_to do |format|
flash.now[:error] = "#{l :label_forum_create_fail}: #{@forum.errors.full_messages[0]}"
format.js
format.html { render action: "new" }
format.json { render json: @forum.errors, status: :unprocessable_entity }
end
@ -199,10 +221,12 @@ class ForumsController < ApplicationController
respond_to do |format|
if @forum.update_attributes(params[:forum])
format.js {render :text=> true}
format.html { redirect_to @forum, notice: l(:label_forum_update_succ) }
format.json { head :no_content }
else
flash.now[:error] = "#{l :label_forum_update_fail}: #{@forum.errors.full_messages[0]}"
format.js { render :text=> false}
format.html { render action: "edit" }
format.json { render json: @forum.errors, status: :unprocessable_entity }
end
@ -261,6 +285,47 @@ class ForumsController < ApplicationController
end
end
#检查forum的名字
def check_forum_name
forum_name_exist = Forum.where("name = '#{params[:forum_name]}'").count >= 1 ? true : false
render :text => forum_name_exist
end
#添加论坛tag
def add_forum_tag
@forum = Forum.find(params[:id])
unless @forum.nil?
@forum.tag_list.add(params[:tag_str].split(','))
@forum.save
end
respond_to do |format|
format.js {render :delete_forum_tag}
end
end
#删除forum的tag
def delete_forum_tag
@tag_id = (ActsAsTaggableOn::Tag.find_by_name(params[:tag_name])).id
#forum的taggable_type = 5
@taggings = ActsAsTaggableOn::Tagging.find_by_tag_id_and_taggable_id_and_taggable_type(@tag_id,params[:id],'Forum')
unless @taggings.nil?
@taggings.delete
end
# 是否还有其他记录 引用了 tag_id
@tagging = ActsAsTaggableOn::Tagging.find_by_tag_id(@tag_id)
# 如果taggings表中记录已经不存在 那么检查tags表 作删除动作
if @tagging.nil?
@tag = ActsAsTaggableOn::Tag.find_by_id(@tag_id)
@tag.delete unless @tag.nil?
end
@forum = Forum.find(params[:id])
respond_to do |format|
format.js
end
end
private
def find_forum_if_available

View File

@ -11,7 +11,7 @@ class MemosController < ApplicationController
include AttachmentsHelper
include ApplicationHelper
layout 'base_memos'
# layout 'base_memos'
def quote
@subject = @memo.subject
@ -103,7 +103,7 @@ class MemosController < ApplicationController
offset(@reply_pages.offset).
all
if @memo.new_record?
format.html { render :new,:layout=>'base'}
format.html { render :new,:layout=>'base_forums'}
else
format.html { render action: :show }
format.json { render json: @memo.errors, status: :unprocessable_entity }
@ -115,6 +115,7 @@ class MemosController < ApplicationController
REPLIES_PER_PAGE = 20 unless const_defined?(:REPLIES_PER_PAGE)
def show
# 更新贴吧帖子留言对应的memo_messages的viewed字段
unless @memo.children.blank?
@memo.children.each do |child|
@ -154,14 +155,15 @@ class MemosController < ApplicationController
@memo_new = Memo.new
@my_topic_count = Memo.where("forum_id = #{@memo.forum_id} and author_id = #{User.current.id} and parent_id is null").count
@my_replies_count = Memo.where("forum_id = #{@memo.forum_id} and author_id = #{User.current.id} and parent_id is not null").count
# @memo = Memo.find_by_id(params[:id])
# @forum = Forum.find(params[:forum_id])
# @replies = @memo.replies
# @mome_new = Memo.new
respond_to do |format|
format.html # show.html.erb
format.html {render :layout=> 'base_forums'}#:layout=> 'base_forums',
format.json { render json: @memo }
format.xml { render xml: @memo }
end

View File

@ -0,0 +1,79 @@
<style type="text/css">
input.is_public,input.is_public_checkbox{height:12px;}
input.is_public_checkbox{margin-left:4px;margin-right:4px;}
</style>
<div class="fl">
<span id="attachments_fields" xmlns="http://www.w3.org/1999/html">
<% if defined?(container) && container && container.saved_attachments %>
<% container.attachments.each_with_index do |attachment, i| %>
<span id="attachments_p<%= i %>" class="attachment">
<%= text_field_tag("attachments[p#{i}][filename]", attachment.filename, :class => 'filename readonly', :readonly => 'readonly') %><%= text_field_tag("attachments[p#{i}][description]", attachment.description, :maxlength => 254, :placeholder => l(:label_optional_description), :class => 'description', :style => "display: inline-block;") %><span class="ispublic-label"><%= l(:field_is_public) %>:</span>
<%= check_box_tag("attachments[p#{i}][is_public_checkbox]", attachment.is_public, attachment.is_public == 1 ? true : false, :class => 'is_public') %>
<%= if attachment.id.nil?
#待补充代码
else
link_to('&nbsp;'.html_safe, attachment_path(attachment, :attachment_id => "p#{i}", :format => 'js'), :method => 'delete', :remote => true, :class => 'remove-upload')
end
%>
<%#= render :partial => 'tags/tag', :locals => {:obj => attachment, :object_flag => "6"} %>
<%= hidden_field_tag "attachments[p#{i}][token]", "#{attachment.token}" %>
</span>
<div class="cl"></div>
<% end %>
<% container.saved_attachments.each_with_index do |attachment, i| %>
<span id="attachments_p<%= i %>" class="attachment">
<%= text_field_tag("attachments[p#{i}][filename]", attachment.filename, :class => 'filename readonly', :readonly => 'readonly') %>
<%= text_field_tag("attachments[p#{i}][description]", attachment.description, :maxlength => 254, :placeholder => l(:label_optional_description), :class => 'description', :style => "display: inline-block;") %>
<span class="ispublic-label"><%= l(:field_is_public) %>:</span>
<%= check_box_tag("attachments[p#{i}][is_public_checkbox]", attachment.is_public, attachment.is_public == 1 ? true : false, :class => 'is_public') %>
<%= if attachment.id.nil?
#待补充代码
else
link_to('&nbsp;'.html_safe, attachment_path(attachment, :attachment_id => "p#{i}", :format => 'js'), :method => 'delete', :remote => true, :class => 'remove-upload')
end
%>
<%#= render :partial => 'tags/tag', :locals => {:obj => attachment, :object_flag => "6"} %>
<%= hidden_field_tag "attachments[p#{i}][token]", "#{attachment.token}" %>
</span>
<div class="cl"></div>
<% end %>
<% end %>
</span>
<% project = project %>
<div class="cl"></div>
<span class="add_attachment" style="font-weight:normal;">
<%#= button_tag "浏览", :type=>"button", :onclick=>"CompatibleSend();" %>
<!--%= link_to image_tag(),"javascript:void(0)", :onclick => "_file.click()"%-->
<%#= button_tag "文件浏览", :type=>"button", :onclick=>"$('#_file').click();",:onmouseover => 'this.focus()',:class => 'AnnexBtn fl mt3' %>
<a href="javascript:void(0);" onclick="$('#_file').click();" class="AnnexBtn fl mt3"></a>
<%= file_field_tag 'attachments[dummy][file]',
:id => '_file',
:class => 'file_selector',
:multiple => true,
:onchange => 'addInputFiles(this);',
:style => ie8? ? '' : 'display:none',
:data => {
:max_file_size => Setting.attachment_max_size.to_i.kilobytes,
:max_file_size_message => l(:error_attachment_too_big, :max_size => number_to_human_size(Setting.attachment_max_size.to_i.kilobytes)),
:max_concurrent_uploads => Redmine::Configuration['max_concurrent_ajax_uploads'].to_i,
:upload_path => uploads_path(:format => 'js', :project => project),
:description_placeholder => l(:label_optional_description),
:field_is_public => l(:field_is_public),
:are_you_sure => l(:text_are_you_sure),
:file_count => l(:label_file_count),
:delete_all_files => l(:text_are_you_sure_all)
} %>
<!--<span id="upload_file_count">-->
<!--<%#= l(:label_no_file_uploaded) %>-->
<!--</span>-->
<!--(<%#= l(:label_max_size) %>:-->
<%#= number_to_human_size(Setting.attachment_max_size.to_i.kilobytes) %>
<!--)-->
</span>
<% content_for :header_tags do %>
<%= javascript_include_tag 'attachments' %>
<% end %>
</div>

View File

@ -0,0 +1,15 @@
<div><img src="images/post_portrait.jpg" width="75" height="75" alt="贴吧图片" id="forum_image" class="mr10 fl" />
<a href="javascript:void(0)" class="upImg linkGrey2 fl" onclick="open_upload_diaglog();">上传图片</a>
<div class="cl"></div>
</div>
<div class="mt15">
<input type="text" name="postName" class="postCreateInput" placeholder="输入贴吧名称" />
</div>
<div class="mt15">
<input type="text" name="postName" class="postCreateInput" placeholder="输入贴吧描述" />
</div>
<div class="mt10">
<div class="fr"><a href="javascript:void(0);" class="submit_btn">确定</a></div>
<div class="fr"><a href="javascript:void(0);" class="linkGrey2 mr10" onclick="$('#new_forum_div').slideToggle();$('#create_btn').parent().slideToggle();">取消</a><span class="mr10 fontGrey">或</span></div>
<div class="cl"></div>
</div>

View File

@ -1,57 +1,38 @@
<!-- added by fq -->
<div class="forums-list">
<% if forums.any? %>
<% forums.each do |forum| %>
<div class="forums-index">
<div class="forums-inex-avatar">
<%= forum.creator.nil? ? (link_to image_tag(url_to_avatar(forum.creator), :class => "avatar")) : (link_to image_tag(url_to_avatar(forum.creator), :class => "avatar"), user_path(forum.creator)) %>
</div>
<div class="forums-index-content">
<table class="content-text-list" style="table-layout: fixed;">
<tr>
<td valign="top" width="500px" class=" <%= forum.sticky? ? 'sticky' : '' %><%= forum.locked? ? 'locked' : '' %>" style="word-break: break-all;word-wrap: break-word;">
<p >
<%= link_to h(forum.name), forum_path(forum) %>
</p>
</td>
</tr>
<tr>
<td style="word-break: break-all;word-wrap: break-word;" class="upload_img">
<p>
<%= textAreailizable forum.description%>
</p>
</td>
</tr>
<tr>
<td style="word-break: break-all;word-wrap: break-word;">
<p >
<%= authoring forum.created_at, forum.creator %>
</p>
</td>
</tr>
</table>
</div>
<div class="forums-index-count">
<table class="forums-count-color">
<tr class="forums-count-color" align="center">
<td>
<%= link_to (forum.memo_count), forum_path(forum) %>
</td>
<td>
<%= link_to (forum.topic_count), forum_path(forum) %>
</td>
</tr>
<tr align="center">
<td>回答</td>
<td>帖子</td>
</tr>
</table>
</div>
</div>
<div class="postRow">
<div class="postPortrait"><a href="javascript:void(0);" class="linkGrey2">
<%= link_to image_tag(url_to_avatar(forum.creator),:width=>75,:height => 75 ),user_path( forum.creator) %>
</div>
<div class="postWrap">
<div class="postTitle">
<!--<a href="javascript:void(0);" class="f16 linkBlue">新手讨论吧</a>-->
<%= link_to forum.name, forum_path(forum),:class=>"f16 linkBlue" %>
</div>
<div class="postDes">描述<%= textAreailizable forum.description%></div>
<div class="postCreater">创建者:<a href="<%= user_path( forum.creator)%>" class="linkGrey2" target="_blank"><%= forum.creator.name %></a></div>
<div class="postDate">创建时间:<%= format_date(forum.created_at) %></div>
</div>
<div class="postStatics">
<div>
<!--<a href="javascript:void(0);" class="linkGrey5 fb">280</a>-->
<%= link_to (forum.memo_count), forum_path(forum),:class=>"linkGrey5 fb" %>
</div>
<div>帖子</div>
</div>
<div class="slice"></div>
<div class="postStatics mr20">
<div>
<!--<a href="javascript:void(0);" class="linkGrey5 fb">335</a>-->
<%= link_to (forum.topic_count), forum_path(forum),:class=>"linkGrey5 fb" %>
</div>
<div>回答</div>
</div>
<div class="cl"></div>
</div>
<% end %>
<div class="pagination" style="margin-top: 10px;">
<%= pagination_links_full @forums_pages, @forums_count %>
</div>
<% else %>
<% end %>
</div>
<%= render :partial => "layouts/no_content" %>
<% end %>

View File

@ -0,0 +1,5 @@
<% forum.tag_list.each do |tag|%>
<span class="postlabel mr10">
<a href="javascript:void(0);" class="fontGrey2 mr5"><%= tag %></a>
<a href="javascript:void(0);" class="fontGrey2" onclick="delete_forum_tag($(this));">×</a></span>
<% end %>

View File

@ -1,47 +1,31 @@
<script>$(function(){$("img").removeAttr("alt");});</script>
<div class="borad-topic-count">共有 <%=link_to @forum.memos.count %> 个贴子</div>
<div style="padding-top: 10px">
<% if memos.any? %>
<% memos.each do |topic| %>
<table class="content-text-list">
<tr>
<td colspan="2" valign="top" style="width: 50px;">
<%= link_to image_tag(url_to_avatar(topic.author), :class => "avatar"), user_path(topic.author) if topic.author%>
</td>
<td>
<table width="630px" border="0">
<tr>
<td valign="top" width="500px" class="<%= topic.sticky ? 'sticky' : '' %> <%= topic.locked? ? 'locked' : '' %>"><%= link_to h(topic.subject), forum_memo_path(topic.forum, topic) %></td>
<td align="right" rowspan="3">
<table class="borad-count">
<tr>
<td align="center" class="borad-count-digit"><%= link_to (topic.replies_count), forum_memo_path(topic.forum, topic) %></td>
</tr>
<tr>
<td align="center">回答</td>
</tr>
</table></td>
</tr>
<tr>
<td colspan="2" ><span class="font_description"> </span></td>
</tr>
<tr>
<td align="left" colspan="2" ><span class="font_lighter"><%= authoring topic.created_at, topic.author %>
<span class="font_description2">
<% author = topic.last_reply.try(:author)%>
<% if author%>
最后回复:<%=link_to_user author %>
<% end%>
</span>
<br />
</span></td>
</tr>
</table>
</td>
</tr>
</table>
<div class="postDetailRow">
<div class="postDetailPortrait">
<!--<img src="images/homepageImage.jpg" width="50" height="50" alt="贴吧图片" /></a>-->
<%= link_to image_tag(url_to_avatar(topic.author), :width => 50,:height => 50,:alt => '贴吧图片'), user_path(topic.author) if topic.author%>
</div>
<div class="postDetailWrap">
<div class="postDetailTitle"><a href="<%= forum_memo_path(topic.forum, topic) %>" class="f14 linkGrey4 fb"><%=topic.subject%></a></div>
<div class="postDetailDes"><%= topic.content.html_safe%>
<!--<a href="javascript:void(0);" class="linkBlue2 underline ml8">显示全部</a>-->
</div>
<% author = topic.last_reply.try(:author)%>
<% if author%>
<div class="postDetailCreater">最后回复:<a href="<%= user_path(author) %>" class="linkBlue2" target="_blank"><%= author.name%></a></div>
<div class="postDetailDate"><%= format_date(topic.last_reply.created_at)%></div>
<% end%>
</div>
<div class="postDetailReply">
<a href="javascript:void(0);" class="postReplyIcon mr5" target="_blank"></a>
<%= link_to (topic.replies_count), forum_memo_path(topic.forum, topic),:target =>'_blank',:class=>'linkGrey2' %>
</div>
<div class="cl"></div>
</div>
<% end %>
<div class="pagination"><%= pagination_links_full @topic_pages, @topic_count %></div>
<% else %>
<p class="nodata"><%= l(:label_no_data) %></p>
<% end %>

View File

@ -0,0 +1 @@
$('#new_forum_div').slideToggle();$('#create_btn').parent().slideToggle();

View File

@ -0,0 +1,2 @@
$("#forum_tag_list").html("<%= escape_javascript( render :partial=>'forum_tag_list',:locals=>{:forum=>@forum}) %>");
$('#add_tag01').hide();

View File

@ -1,48 +1,118 @@
<% @nav_dispaly_home_path_label = 1
@nav_dispaly_main_course_label = 1
@nav_dispaly_main_project_label = 1
@nav_dispaly_main_contest_label = 1 %>
<!-- added by fq -->
<div class="top-content">
<table width="940px">
<tr>
<td class="info_font" style="width: 220px; color: #15bccf">公共贴吧 </td>
<td class="location-list">
<strong>
<%= l(:label_user_location) %> :
</strong>
</td>
<td rowspan="2">
<% if User.current.logged? %>
<%= link_to( l(:label_forum_new), new_forum_path, :class => 'icon icon-add') %>
<% end %>
</td>
<td rowspan="2" width="250px" >
<div class="top-content-search">
<%#= form_tag(:controller => 'forums', :action => "search_forum", :method => :get) do %>
<%#= text_field_tag 'name', params[:name], :size => 20 %>
<%#= submit_tag l(:label_search), :class => "enterprise", :name => nil %>
<%# end %>
</div>
</td>
</tr>
<tr>
<td style="padding-left: 8px">
<a>
<%= link_to request.host()+"/forums", forums_path %>
</a>
</td>
<td >
<%= link_to l(:field_homepage), home_path %> >
<%= link_to "公共贴吧", forums_path %>
</td>
</tr>
</table>
</div>
<% if @forums.size > 0 %>
<%= render :partial => 'forums/forum_list', :locals => {:forums => @forums} %>
<% else %>
<%= render :partial => "layouts/no_content" %>
<% end %>
<script>
function add_class(id){
if($("#"+id).hasClass("sortArrowActiveD")){
$("#"+id).removeClass("sortArrowActiveD");
$("#"+id).addClass("sortArrowActiveU");
$.ajax({
type: 'GET',
url: '<%= forums_path %>' + '.js?' + id + '=asc&page='+<%= @forums_pages.page%>
<%html_title l(:label_forum)%>
});
}else if($("#"+id).hasClass("sortArrowActiveU")){
$("#"+id).removeClass("sortArrowActiveU");
$("#"+id).addClass("sortArrowActiveD");
$.ajax({
type: 'GET',
url: '<%= forums_path %>' + '.js?' + id + '=desc&page='+<%= @forums_pages.page%>
});
}else{
$("#"+id).addClass("sortArrowActiveD");
$.ajax({
type: 'GET',
url: '<%= forums_path %>' + '.js?' + id + '=desc&page='+<%= @forums_pages.page%>
});
}
}
$(function() {
$("#complex").click(function(){
$("#reorder_popu").removeClass("sortArrowActiveU");
$("#reorder_popu").removeClass("sortArrowActiveD");
$("#reorder_time").removeClass("sortArrowActiveD");
$("#reorder_time").removeClass("sortArrowActiveU");
add_class("reorder_complex");
});
$("#popu").click(function () {
$("#reorder_complex").removeClass("sortArrowActiveD");
$("#reorder_complex").removeClass("sortArrowActiveU");
$("#reorder_time").removeClass("sortArrowActiveD");
$("#reorder_time").removeClass("sortArrowActiveU");
add_class("reorder_popu");
});
$("#time").click(function () {
$("#reorder_complex").removeClass("sortArrowActiveD");
$("#reorder_complex").removeClass("sortArrowActiveU");
$("#reorder_popu").removeClass("sortArrowActiveU");
$("#reorder_popu").removeClass("sortArrowActiveD");
add_class("reorder_time");
});
});
function check_and_submit(doc){
$("#error").hide();
if( $("input[name='forum[name]']").val().trim == "" || $("input[name='forum[description]']").val().trim == ""){
$("#error").html("名称和描述未填写正确").show();
return;
}else{
doc.parent().parent().submit();
}
}
function check_forum_name(){
name = $("input[name='forum[name]']").val().trim();
if( name != ""){
$.get(
'<%= check_forum_name_forums_path %>',
{"forum_name":name},
function(data){
if( data == 'true'){
$("#error").html("贴吧名称已经存在").show();
}
}
);
}
}
function hideError(){
$("#error").html("").hide();
}
</script>
<div class="homepageContentContainer mb10">
<div class="homepageContent">
<div class="postContainer">
<div id="new_forum_div" class="mb5" style="display: none">
<div class="red fl mb10" id="error" style="display: none">error</div>
<%= form_tag({:controller => 'forums',:action=>'create',:format=>'js'},:method => 'post',:remote=>'true') do |f| %>
<div class="mt15">
<input type="text" name="forum[name]" class="postCreateInput" onfocus="hideError();" onblur="check_forum_name();" placeholder="输入贴吧名称" />
</div>
<div class="mt15">
<input type="text" name="forum[description]" class="postCreateInput" placeholder="输入贴吧描述" />
</div>
<div class="mt10">
<div class="fr"><a href="javascript:void(0);" class="submit_btn" onclick="check_and_submit($(this));">确定</a></div>
<div class="fr"><a href="javascript:void(0);" class="linkGrey2 mr10" onclick=" $('#error').hide();$('#new_forum_div').slideToggle();$('#create_btn').parent().slideToggle();">取消</a><span class="mr10 fontGrey">或</span></div>
<div class="cl"></div>
</div>
<% end %>
</div>
<div class="postBanner">
<div class="postSort" id="complex"><a href="javascript:void(0);" class="linkGrey2 fl">综合</a><a href="javascript:void(0);" id="reorder_complex" class="sortArrowActiveD"></a></div>
<div class="postSort" id="popu"><a href="javascript:void(0);" class="linkGrey2 fl">人气</a><a href="javascript:void(0)" id="reorder_popu" ></a></div>
<div class="postSort" id="time"><a href="javascript:void(0);" class="linkGrey2 fl">时间</a><a href="javascript:void(0)" id="reorder_time" ></a></div>
<div class="creatPost"><a href="javascript:void(0);" id="create_btn" class="c_white db creatPostIcon bBlue" onclick="$('#error').hide();$('#new_forum_div').slideToggle();$(this).parent().slideToggle();">新建贴吧</a></div>
<div class="cl"></div>
</div>
<div id="forum_list">
<%= render :partial => 'forum_list',:locals => {:forums=>@forums}%>
</div>
<div class="pagination fr" style="margin-top: 10px;">
<%= pagination_links_full @forums_pages, @forums_count %>
</div>
<div class="cl"></div>
</div>
</div>
</div>

View File

@ -0,0 +1 @@
$("#forum_list").html("<%= escape_javascript(render :partial => 'forum_list',:locals => {:forums=>@forums}) %>");

View File

@ -1,42 +1,104 @@
<!-- added by fq -->
<div id="add-memo" class='lz' style="<% unless @memo.errors.any?%>display: none;<% end %> padding: 20px;">
<h3>
<%=l(:label_memo_new)%>
</h3>
<% if User.current.logged? %>
<%= labelled_form_for(@memo, :url => create_memo_forum_path(@forum), :html => {:multipart => true} ) do |f| %>
<div class="actions" style="max-width:680px">
<%= hidden_field_tag :asset_id,params[:asset_id],:required => false,:style => 'display:none' %>
<p>
<%= f.text_field :subject, :required => true, :maxlength => 50%>
</p>
<p style="max-width:680px">
<%= f.kindeditor :content, :required => true %>
</p>
<!--<script type="text/javascript">var ckeditor=CKEDITOR.replace('editor02');</script>-->
<p style="color: #ff0000">
(<%= l(:label_memos_max_length) %>)
</p>
<p class="fl" style="margin-top: 5px;">
<%= l(:label_attachment_plural) %>
<br />
<%= render :partial => 'attachments/form', :locals => {:container => @memo} %>
</p>
<div class="cl"></div>
<%= f.submit :value => l(:label_memo_create) %>
<%= link_to l(:button_cancel), "#", :onclick => '$("#add-memo").hide(); return false;' %>
</div>
<% end %>
<% end %>
<script>
function add_class(id){
if($("#"+id).hasClass("sortArrowActiveD")){
$("#"+id).removeClass("sortArrowActiveD");
$("#"+id).addClass("sortArrowActiveU");
$.ajax({
type: 'GET',
url: '<%= forums_path+"/"+@forum.id.to_s %>' + '.js?' + id + '=asc&page='+<%= @topic_pages.page%>
});
}else if($("#"+id).hasClass("sortArrowActiveU")){
$("#"+id).removeClass("sortArrowActiveU");
$("#"+id).addClass("sortArrowActiveD");
$.ajax({
type: 'GET',
url: '<%= forums_path+"/"+@forum.id.to_s %>' + '.js?' + id + '=desc&page='+<%= @topic_pages.page%>
});
}else{
$("#"+id).addClass("sortArrowActiveD");
$.ajax({
type: 'GET',
url: '<%= forums_path+"/"+@forum.id.to_s %>' + '.js?' + id + '=desc&page='+<%= @topic_pages.page%>
});
}
}
$(function() {
$("#complex").click(function(){
$("#reorder_popu").removeClass("sortArrowActiveU");
$("#reorder_popu").removeClass("sortArrowActiveD");
$("#reorder_time").removeClass("sortArrowActiveD");
$("#reorder_time").removeClass("sortArrowActiveU");
add_class("reorder_complex");
});
$("#popu").click(function () {
$("#reorder_complex").removeClass("sortArrowActiveD");
$("#reorder_complex").removeClass("sortArrowActiveU");
$("#reorder_time").removeClass("sortArrowActiveD");
$("#reorder_time").removeClass("sortArrowActiveU");
add_class("reorder_popu");
});
$("#time").click(function () {
$("#reorder_complex").removeClass("sortArrowActiveD");
$("#reorder_complex").removeClass("sortArrowActiveU");
$("#reorder_popu").removeClass("sortArrowActiveU");
$("#reorder_popu").removeClass("sortArrowActiveD");
add_class("reorder_time");
});
});
function check_and_submit(){
if($("input[name='memo[subject]']").val().trim() != "" && $("input[name='memo[content]']").val().trim() != ""){
$("#new_memo").submit();
}else{
$("#error").html("主题和内容不能为空").show();
}
}
</script>
<div class="postRightContainer">
<div id="create_memo_div" style="display: none">
<div id="error" class="red fl mb10" style="display: none">error</div>
<%= labelled_form_for(@memo, :url => forum_memos_path(@forum)) do |f| %>
<div>
<input type="text" name="memo[subject]" onfocus="$('#error').hide();" onmouseover="this.style.borderColor='#d9d9d9'" class="postDetailInput" placeholder="输入帖子标题" />
</div>
<div class="mt15">
<input type="text" name="memo[content]" onfocus="$('#error').hide();" onmouseover="this.style.borderColor='#d9d9d9'" class="postDetailInput" placeholder="输入贴子内容" />
</div>
<div class="mt10">
<!--<a href="javascript:void(0);" class="AnnexBtn fl mt3">上传附件</a>-->
<%= render :partial => 'file_form', :locals => {:container => @memo} %>
<div class="fr">
<a href="javascript:void(0);" class="submit_btn" onclick="check_and_submit();">确定</a>
</div>
<div class="fr"><a href="javascript:void(0);" class="linkGrey2 mr10" onclick="$('#create_memo_div').slideToggle();$('#create_memo_btn').slideToggle();">取消</a><span class="mr10 fontGrey">或</span></div>
<div class="cl"></div>
</div>
<% end %>
</div>
<div class="postDetailBanner">
<div class="postSort" id="complex"><a href="javascript:void(0);" class="linkGrey2 fl">综合</a><a href="javascript:void(0);" id="reorder_complex" class="sortArrowActiveU"></a><!--<a href="javascript:void(0);" class="sortArrowActiveD"></a>--></div>
<div class="postSort" id="popu"><a href="javascript:void(0);" class="linkGrey2 fl">人气</a><a href="javascript:void(0);" id="reorder_popu" class=""></a></div>
<div class="postSort" id="time"><a href="javascript:void(0);" class="linkGrey2 fl">时间</a><a href="javascript:void(0);" id="reorder_time" class=""></a></div>
<div class="creatPost" id="create_memo_btn"><a href="javascript:void(0);" class="c_white db creatPostIcon bBlue" onclick="$('#error').hide();$('#create_memo_div').slideToggle();$(this).parent().slideToggle();">发布新帖</a></div>
<div class="cl"></div>
</div>
<div id="topics_list">
<%= render :partial => 'show_topics',:locals => {:memos=>@memos}%>
</div>
<div class="pagination" style="float: right"><%= pagination_links_full @topic_pages, @topic_count %></div>
<!--<div class="pageRoll">-->
<!--<div class="pageCell"><a href="javascript:void(0);" class="linkBlue">上一页</a></div>-->
<!--<div class="pageCell pageCellActive"><a href="javascript:void(0);" class="c_white">1</a></div>-->
<!--<div class="pageCell"><a href="javascript:void(0);" class="fontBlue">2</a></div>-->
<!--<div class="pageCell"><a href="javascript:void(0);" class="fontBlue">3</a></div>-->
<!--<div class="pageCell"><a href="javascript:void(0);" class="fontBlue">...</a></div>-->
<!--<div class="pageCell"><a href="javascript:void(0);" class="fontBlue">14</a></div>-->
<!--<div class="pageCell"><a href="javascript:void(0);" class="linkBlue">下一页</a></div>-->
<!--</div>-->
<!--<div class="cl"></div>-->
</div>
<!--modified by huang-->
<span class="contextual-borad">
<%= link_to(image_tag('edit.png')+l(:label_forum_edit),{:action => 'edit', :id => @forum}, :method => 'get', :title => l(:button_edit)) if @forum.editable_by?(User.current) %>
<%= link_to(image_tag('delete.png')+'删除讨论区', {:action => 'destroy', :id => @forum}, :method => :delete, :data => {:confirm => l(:text_are_you_sure)}, :title => l(:button_delete)
) if @forum.destroyable_by?(User.current) %>
</span>
<span>
<%= link_to l(:label_memo_new_from_forum), new_forum_memo_path(@forum), :class => 'icon icon-add',
:onclick => 'showAndScrollTo("add-memo", "memo_subject"); return false;' if User.current.logged? %>
</span>
<%= render :partial => 'forums/show_topics', :locals => {:memos => @memos} %>
</div>

View File

@ -0,0 +1 @@
$("#topics_list").html("<%= escape_javascript(render :partial => 'show_topics',:locals => {:memos=>@memos})%>")

View File

@ -7,7 +7,7 @@
<meta name="keywords" content="issue,bug,tracker" />
<%= csrf_meta_tag %>
<%= favicon %>
<%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2', 'application','prettify', 'nyan', :media => 'all' %>
<%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2','application','prettify', 'nyan','leftside', :media => 'all' %>
<%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %>
<%= javascript_heads %>
<%= javascript_include_tag "/assets/kindeditor/kindeditor",'/assets/kindeditor/pasteimg' ,'prettify' %>
@ -15,7 +15,56 @@
<%= call_hook :view_layouts_base_html_head %>
<%= yield :header_tags -%>
<%= stylesheet_link_tag 'base','header', :media => 'all'%>
<%= stylesheet_link_tag 'base','header','new_user', :media => 'all'%>
<script>
var desc;
function edit_desc(){
desc = $("#forum_desc_span").html();
$("#forum_desc_span").html("<textarea id='forum_desc_input' onblur='change_forum_desc();' class='homepageSignatureTextarea'>"+desc+"</textarea>");
$("#forum_desc_input").focus();
}
function change_forum_desc(){
$.ajax({
url: '<%= forums_path + '/'+@forum.id.to_s+".js" %>',
type: 'PUT',
dataType: 'json',
data:{"forum[description]":$("#forum_desc_input").val().trim()},
success:function(data){
if(data == true){
$("#forum_desc_span").html($("#forum_desc_input").val().trim());
}else{
$("#forum_desc_span").html(desc);
}
}
});
}
function delete_forum_tag(doc){
tag_name = doc.parent().children().eq(0).html().trim();
$.ajax(
"<%= delete_forum_tag_forum_path(@forum)+ '.js?tag_name='%>"+tag_name,
{},
function(data){
alert(data == true)
if(data == true){
doc.parent().remove();
}else{
}
}
);
}
function addTag(){
if($("input[name='addTag']").val().trim() != ""){
$.get(
'<%= add_forum_tag_forum_path(@forum)%>'+"?tag_str="+$("input[name='addTag']").val(),
{}
);
}
}
</script>
</head>
<body class="<%= h body_css_classes %>">
@ -28,82 +77,65 @@
<% end%>
</div>
<div class="cl"></div>
<div class="homepageContentContainer">
<div class="homepageContent">
<div class="homepageLeft">
<div class="postDetailContainer">
<div class="fl mr10 pr"> <%= link_to image_tag(url_to_avatar(@forum.creator),:width=>75,:height => 75,:alt=>'贴吧图像' ),user_path( @forum.creator) %>
<!--<div class="homepageEditProfile"><a href="javascript:void(0);" class="homepageEditProfileIcon"></a></div>-->
</div>
<div class="fl">
<div class="f16 fontBlue mb10"><a href="<%= forums_path+"/"+@forum.id.to_s%>"><%= @forum.name%></a></div>
<div class="fontGrey2 mb8">吧主:<a href="<%= user_path(@forum.creator)%>" class="linkBlue"><%= @forum.creator.name%></a></div>
<div class="fontGrey3">回答:<a href="javascript:void(0);" class="linkOrange mr5"><%= @forum.topic_count%></a> 帖子:<a href="javascript:void(0);" class="linkOrange"><%= @forum.memo_count%></a></div>
</div>
<div class="cl"></div>
<div class="fontGrey2 mt10"><span id="forum_desc_span"><%= @forum.description%></span><a href="javascript:void(0);" onclick="edit_desc();">
<!--<img src="<%#= Rails.root%>/images/signature_edit.png" width="12" height="12" />-->
<%= image_tag('signature_edit.png',{:width=>12,:height=>12})%>
</a>
</div>
<div class="mt15">
<div id="forum_tag_list">
<%= render :partial=>'forums/forum_tag_list',:locals=>{:forum=>@forum}%>
</div>
<a href="javascript:void(0)" class="yellowBtn f_l" onclick="$('#add_tag01').slideToggle();">+ 添加标签</a>
<span id="add_tag01" style="display:none; vertical-align: middle;" class="ml10 f_l">
<input type="text" name="addTag" size="20" class="isTxt w90 f_l" maxlength="100" />
<input type="button" class="submit f_l" onclick="addTag();" />
</span></div>
<div class="cl"></div>
</div>
<div class="postDetailContainer mt10">
<div class="fl mr10"><%= link_to image_tag(url_to_avatar(User.current),:width=>50,:height => 50,:alt=>'贴吧图像' ),user_path( User.current) %></div>
<div class="fl f16 fontGrey2">我在贴吧</div>
<div class="cl"></div>
<div class="mt8">
<div class="homepageImageBlock" style="width: 68px !important;">
<div><a href="javascript:void(0);" class="homepageImageNumber"><%= @my_replies_count%></a></div>
<div class="homepageImageText">回答</div>
</div>
<div class="homepageVerDiv"></div>
<div class="homepageImageBlock" style="width: 68px !important;">
<div><a href="javascript:void(0);" class="homepageImageNumber"><%= @my_topic_count%></a></div>
<div class="homepageImageText">发帖</div>
</div>
<div id="wrapper">
<div id="wrapper2">
<div id="wrapper3">
<div id="main">
<div class="top-content">
<table>
<tr>
<td class="info_font" style="width: 240px; color: #15bccf"><%= l(:label_projects_community)%></td>
<td style="width: 430px; color: #15bccf"><strong><%= l(:label_user_location) %> : </strong></td>
<td rowspan="2" width="250px">
<div class="top-content-search">
<%#= form_tag(:controller => 'forums', :action => "search_memo", :id => params[:id], :method => :get) do %>
<%#= text_field_tag 'name', params[:name], :size => 20 %>
<%#= hidden_field_tag 'forum_id', params[:id] %>
<%#= submit_tag l(:label_search), :class => "enterprise", :name => nil %>
<%# end %>
</div>
</td>
</tr>
<tr>
<td style="padding-left: 8px"><%= link_to request.host()+"/forums", forums_path %></td>
<td><p class="top-content-list"><%=link_to l(:label_home),home_path %> > <%=link_to '公共贴吧', :controller => 'forums', :action => 'index' %> > <%=link_to @forum.name, forum_path(@forum) %></p></td>
</tr>
</table>
</div>
<div id="sidebar">
<!--informations-->
<div class="sidebar-forums">
<div class="forums-line">
<div class="forums-title"><%= @forum.name %></div>
<div class="forums-description upload_img"><%= @forum.description.html_safe %></div>
</div>
<!--informations-->
<div class="formus-first-title" >创建人信息</div>
<div class="forums-info">
<div style="padding-top: 20px" >
<span class="forums-avatar-left"><%= image_tag(url_to_avatar(@forum.creator), :class =>'vatar-size') %></span>
<span class="forums-avatar-right">
<% unless @forum.creator.nil? %>
<%=link_to @forum.creator.name, user_path(@forum.creator) %>
<div>
<%= link_to l(:label_user_watcher)+"("+User.watched_by(@forum.creator.id).count.to_s+")" ,:controller=>"users", :action=>"user_watchlist", :id => @forum.creator.id %>
<%= link_to l(:label_x_user_fans, :count => User.current.watcher_users(User.current.id).count)+"("+@forum.creator.watcher_users(@forum.creator.id).count.to_s+")", :controller=>"users", :action=>"user_fanslist", :id => @forum.creator.id %>
</div>
<% end %>
</span>
</div>
</div>
<!--tags-->
<% if User.current.logged? || User.current.admin? %>
<div class="forums-tags"><%= render :partial => 'tags/tag', :locals => {:obj => @forum,:object_flag => "5"}%></div>
<% end %>
</div>
</div>
<div id="content">
<div class="cl"></div>
</div>
</div>
</div>
<!--<%#= render_flash_messages %>-->
<%= yield %>
<%#= call_hook :view_layouts_base_content %>
</div>
</div>
</div>
<%= render_flash_messages %>
<%= yield %>
<%= call_hook :view_layouts_base_content %>
<div style="clear:both;"></div>
</div>
<%#= render :partial => 'layouts/base_footer'%>
</div>
<div id="ajax-indicator" style="display:none;">
<span><%= l(:label_loading) %></span>
</div>
<div id="ajax-modal" style="display:none;"></div>
</div>
</div>
</div>
<div class="cl"></div>
<%= render :partial => 'layouts/footer' %>
<div class="cl"></div>
<%= call_hook :view_layouts_base_body_bottom %>
<%#= call_hook :view_layouts_base_body_bottom %>
</body>
</html>

View File

@ -7,16 +7,16 @@
<meta name="keywords" content="issue,bug,tracker" />
<%= csrf_meta_tag %>
<%= favicon %>
<%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2', 'application', 'nyan','prettify', :media => 'all' %>
<%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2','application', 'nyan','prettify', :media => 'all' %>
<%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %>
<%= javascript_heads %>
<%= javascript_include_tag "jquery.leanModal.min" ,'prettify'%>
<%= javascript_include_tag "jquery.leanModal.min" ,'prettify','avatars'%>
<%= javascript_include_tag 'seems_rateable/jRating', 'seems_rateable/rateable'%>
<%= heads_for_theme %>
<%= call_hook :view_layouts_base_html_head %>
<!-- page specific tags -->
<%= yield :header_tags -%>
<%= stylesheet_link_tag 'base','header', :media => 'all'%>
<%= stylesheet_link_tag 'base','header','new_user' ,:media => 'all'%>
</head>
<body>
<div class="cl"></div>
@ -29,27 +29,27 @@
</div>
<div class="cl"></div>
<div id="wrapper">
<div id="wrapper2">
<div id="wrapper3">
<%#=render :partial => 'layouts/base_header'%>
<div id="main" class="nosidebar">
<div id="content_">
<!--<div id="wrapper">-->
<!--<div id="wrapper2">-->
<!--<div id="wrapper3">-->
<!--<%#=render :partial => 'layouts/base_header'%>-->
<!--<div id="main" class="nosidebar">-->
<!--<div id="content_">-->
<%= render_flash_messages %>
<%= yield %>
<%= call_hook :view_layouts_base_content %>
<div style="clear:both;"></div>
</div>
<!--</div>-->
</div>
</div>
<!--</div>-->
<!--</div>-->
<div id="ajax-indicator" style="display:none;"><span><%= l(:label_loading) %></span></div>
<div id="ajax-modal" style="display:none;"></div>
</div>
</div>
<!--</div>-->
<!--</div>-->
<div class="cl"></div>
<%= render :partial => 'layouts/footer' %>

View File

@ -0,0 +1,71 @@
<div class="mt10 fl" >
<% for attachment in attachments %>
<!--<p style="width: 100%;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;">-->
<!--<div style="max-width:55%;white-space: nowrap; overflow: hidden; text-overflow: ellipsis;float: left;">-->
<!--<span title="<%#= attachment.filename%>" id = "attachment_">-->
<% if options[:length] %>
<span class="pic_files fl "></span>
<%= link_to_short_attachment attachment, :class => 'fl FilesName02', :download => true,:length => options[:length] -%>
<a class="fl FilesName02"> (<%= number_to_human_size attachment.filesize , :precision => 0 %>)</a>
<% if options[:deletable] %>
<%#= link_to image_tag('delete.png'), attachment_path(attachment),
:data => {:confirm => l(:text_are_you_sure)},
:method => :delete,
:class => 'delete',
#:remote => true,
#:id => "attachments_" + attachment.id.to_s,
:title => l(:button_delete) %>
<span class="pic_del fl "> <a href="<%=attachment_path(attachment) %>" onclick="confirm(<%=l(:text_are_you_sure) %>)" data-method="delete"> </a></span>
<% end %>
<div class="cl"></div>
<% else %>
<span class="pic_files fl "></span>
<%= link_to_short_attachment attachment, :class => 'fl FilesName02', :download => true, :length => 32 -%>
<a href="javascript:void(0);" class="fl FilesName02"> (<%= number_to_human_size attachment.filesize , :precision => 0 %>)</a>
<% if options[:deletable] %>
<%#= link_to image_tag('delete.png'), attachment_path(attachment),
:data => {:confirm => l(:text_are_you_sure)},
:method => :delete,
:class => 'delete',
#:remote => true,
#:id => "attachments_" + attachment.id.to_s,
:title => l(:button_delete) %>
<a href="<%=attachment_path(attachment) %>" onclick="confirm(<%=l(:text_are_you_sure) %>)" data-method="delete"> <span class="pic_del fl "></span> </a>
<% end %>
<div class="cl"></div>
<% end %>
<% if attachment.is_text? %>
<%= link_to image_tag('magnifier.png'),
:controller => 'attachments',
:action => 'show',
:id => attachment,
:filename => attachment.filename%>
<% end %>
<!--<span title="<%#= attachment.description%>">-->
<!--<%#= h(truncate(" - #{attachment.description}", length: options[:length] ? options[:length]:15, omission: '...')) unless attachment.description.blank? %>-->
<!--</span>-->
<!--<%# if options[:wrap] %>-->
<!--<br/>-->
<!--&nbsp;-->
<!--<%# end %>-->
<!--<%# if options[:author] %>-->
<!--<span class="author" title="<%#= attachment.author%>">-->
<%#= link_to h(truncate(attachment.author.name, length: 10, omission: '...')),user_path(attachment.author) %>
<!--<%#= format_time(attachment.created_on) %>-->
<!--</span>-->
<!--<%# end %>-->
<!--</p>-->
<% end %>
<% if defined?(thumbnails) && thumbnails %>
<% images = attachments.select(&:thumbnailable?) %>
<% if images.any? %>
<div class="pro_pic mb10" width="100" height="73">
<% images.each do |attachment| %>
<div><%= thumbnail_tag(attachment) %></div>
<% end %>
</div>
<% end %>
<% end %>
</div>

View File

@ -0,0 +1,36 @@
<!-- get_praise_num(obj,1)函数中 1代表返回顶得次数 0返回踩的次数 -->
<% if User.current.logged? %>
<% if horizontal %>
<!-- 横排 -->
<div id="praise_tread_<%= obj.id %>" style="float:right;">
<% @is_valuate = is_praise_or_tread(obj,user_id)%>
<% if @is_valuate.size > 0 %> <!-- 评价过 1代表赞 0代表踩 -->
<% @flag = @is_valuate.first.praise_or_tread %>
<% if @flag == 1 %> <!-- 顶过 --><!-- modified by bai -->
<a href="javascript:void(0);" class="linkGrey2 postLikeIcon" title="<%= l(:label_issue_praise_over)%>" > <%= get_praise_num(obj)%></a>
<% end %>
<% else %>
<% if user_id == obj.author_id %>
<!--<%#= image_tag "/images/praise_tread/praise_true.png" , weight:"22px", height:"22px",:title => l(:label_issue_not_praise_over) %>-->
<a href="javascript:void(0);" class="linkGrey2 postLikeIcon" title="<%= l(:label_issue_not_praise_over)%>" > <%= get_praise_num(obj)%></a>
<% else %>
<!-- 积分少于2分不能踩帖 -->
<%# if OptionNumber.get_user_option_number(user_id).nil? || OptionNumber.get_user_option_number(user_id).total_score < 2 %>
<%#= link_to image_tag("/images/praise_tread/praise_true.png",weight:"22px", height:"22px",:title => l(:label_issue_praise)),
:controller=>"praise_tread",:action=>"praise_plus",:remote=>true,:obj_id => obj.id,:obj_type => obj.class,:horizontal => horizontal %>
<a href="<%= praise_tread_praise_plus_path({:obj_id=>obj.id,:obj_type=>obj.class,:horizontal => horizontal })%>" data-remote="true" class="linkGrey2 postLikeIcon" title="<%= l(:label_issue_praise)%>" > <%= get_praise_num(obj)%></a>
<!--<%# else %>-->
<!--<%#= link_to image_tag("/images/praise_tread/praise_true.png",weight:"22px", height:"22px",:title => l(:label_issue_praise)),-->
<!--:controller=>"praise_tread",:action=>"praise_plus",:remote=>true,:obj_id => obj.id,:obj_type => obj.class,:horizontal => horizontal %>-->
<!--<a href="javascript:void(0);" class="linkGrey2 postLikeIcon" title="<%#= l(:label_issue_praise)%>" target="_blank"> <%#= get_praise_num(obj)%></a>-->
<!--<%# end %>-->
<% end %>
<% end %>
</div>
<% end %>
<% end %>

View File

@ -1,188 +1,115 @@
<%= javascript_include_tag "/assets/kindeditor/kindeditor",'/assets/kindeditor/pasteimg',"init_KindEditor","forum" %>
<style type="text/css">
.reply_content p {
margin-top: 13px;
margin-bottom: 13px;
}
/*回复框*/
div.ke-toolbar{display:none;width:400px;border:none;background:none;padding:0px 0px;}
span.ke-toolbar-icon{line-height:26px;font-size:14px;padding-left:26px;}
span.ke-toolbar-icon-url{background-image:url( /images/public_icon.png )}
div.ke-toolbar .ke-outline{padding:0px 0px;line-height:26px;font-size:14px;}
span.ke-icon-emoticons{background-position:0px -671px;width:50px;height:26px;}
span.ke-icon-emoticons:hover{background-position:-79px -671px;width:50px;height:26px;}
div.ke-toolbar .ke-outline{border:none;}
/*.ke-container{height: 80px !important;}*/
</style>
<%= javascript_include_tag "/assets/kindeditor/kindeditor",'/assets/kindeditor/pasteimg' %>
<div class="lz">
<!-- 在这里添加赞和踩-->
<span id="praise_tread" style="float: right">
<%= render :partial => "/praise_tread/praise_tread",:locals => {:obj => @memo,:show_flag => true,:user_id =>User.current.id,:horizontal => true}%>
</span>
<div class="lz-left">
<div>
<%= link_to image_tag(url_to_avatar(@memo.author), :class => "avatar"), user_path(@memo.author) %>
</div>
<p class="clearfix">
<%=link_to @memo.author.name, user_path(@memo.author) %>
</p>
</div>
<div class="memo-section">
<div class="contextual-borad">
<!-- <%#= link_to(
image_tag('comment.png'),
{:action => 'quote', :id => @memo},
:remote => true,
:method => 'get',
:title => l(:button_quote)
)if !@memo.locked? && User.current.logged? %> -->
<%= link_to(
l(:button_quote),
{:action => 'quote', :id => @memo},
:remote => true,
:method => 'get',
:title => l(:button_quote)
)if !@memo.locked? && User.current.logged? %>
<%= link_to(
#image_tag('edit.png'),
l(:button_edit),
{:action => 'edit', :id => @memo},
:method => 'get',
:title => l(:button_edit)
) if @memo.editable_by?(User.current) %>
<!-- <%#= link_to(
image_tag('delete.png'),
{:action => 'destroy', :id => @memo},
:method => :delete,
:data => {:confirm => l(:text_are_you_sure)},
:title => l(:button_delete)
) if @memo.destroyable_by?(User.current) %> -->
<%= link_to(
l(:button_delete),
{:action => 'destroy', :id => @memo},
:method => :delete,
:data => {:confirm => l(:text_are_you_sure)},
:title => l(:button_delete)
) if @memo.destroyable_by?(User.current) %>
</div>
<div>&nbsp;</div>
<div class="memo-title <%= @memo.sticky ? 'sticky' : '' %> <%= @memo.locked? ? 'locked' : '' %>"
style="word-break: break-all;word-wrap: break-word;">
<%= label_tag l(:field_subject) %>:
<%=h @memo.subject %>
</div>
<div class="memo-content" id="memo-content_div">
<%= @memo.content.html_safe %>
<p>
<% if @memo.attachments.any?%>
<% options = {:author => true, :deletable => @memo.deleted_attach_able_by?(User.current) } %>
<%= render :partial => 'attachments/links', :locals => {:attachments => @memo.attachments, :options => options, :is_float => true} %>
<% end %>
</p>
<div class="clearfix"></div>
</div>
<div class="memo-timestamp">
<%= authoring @memo.created_at, @memo.author %>
</div>
</div>
<br />
</div>
<div class="replies">
<h3 class="comments"><%= l(:label_reply_plural) %> (<%= @replies.nil? ? 0 : @replies.size %>)</h3>
<% pages_count = @reply_pages.offset %>
<% @replies.each do |reply| %>
<div class="reply" id="<%= "reply-#{reply.id}" %>">
<p class="font_lighter"><!--<span style="display: inline"><%#= pages_count += 1 %>楼 :</span>--></p>
<div class="contextual-borad">
<!-- <%#= link_to(
image_tag('comment.png'),
{:action => 'quote', :id => reply},
:remote => true,
:method => 'get',
:title => l(:button_quote)
)if !@memo.locked? && User.current.logged? %> -->
<%= link_to(
l(:button_quote),
{:action => 'quote', :id => reply},
:remote => true,
:method => 'get',
:title => l(:button_quote)
)if !@memo.locked? && User.current.logged? %>
<%= link_to(
#image_tag('edit.png'),
l(:button_edit),
{:action => 'edit', :id => reply},
:title => l(:button_edit)
) if reply.editable_by?(User.current) %>
<!-- <%#= link_to(
image_tag('delete.png'),
{:action => 'destroy', :id => reply},
:method => :delete,
:data => {:confirm => l(:text_are_you_sure)},
:title => l(:button_delete)
) if reply.destroyable_by?(User.current) %> -->
<%= link_to(
l(:button_delete),
{:action => 'destroy', :id => reply},
:method => :delete,
:data => {:confirm => l(:text_are_you_sure)},
:title => l(:button_delete)
) if reply.destroyable_by?(User.current) %>
</div>
<br/>
<table class="borad-text-list" style="table-layout: fixed;">
<tr>
<td rowspan="3" valign="top" width="60px">
<%= link_to image_tag(url_to_avatar(reply.author), :class => "avatar"), user_path(reply.author) %>
</td>
<td class="comments" style="word-wrap: break-word;word-break: break-all;">
<div class="reply_content" >
<%=h sanitize(reply.content.html_safe) %>
</div>
<p>
<% if reply.attachments.any?%>
<% options = {:author => true, :deletable => reply.deleted_attach_able_by?(User.current) } %>
<%= render :partial => 'attachments/links', :locals => {:attachments => reply.attachments, :options => options, :is_float => true} %>
<% end %>
</p>
</td>
</tr>
<tr>
<td class="font_lighter" style="float:right">
<%= authoring reply.created_at, reply.author %>
</td>
</tr>
</table>
</div>
<% end %>
<div class="pagination">
<%= pagination_links_full @reply_pages, @reply_count, :per_page_links => false %>
</div>
</div>
<% if User.current.login? %>
<div class="reply-box" style="">
<%= render :partial => 'reply_box' %>
</div>
<% else %>
<div style="font-size: 14px;margin:20px;">
<%= l(:label_user_login_tips) %>
<%= link_to l(:label_user_login_new), signin_path %>
<hr/>
</div>
<% end %>
<script type="text/javascript">
jQuery(document).ready(function($) {
transpotUrl('.lz');
transpotUrl('.replies');
});
window.onready = function() {
var maxwidth = $("#memo-content_div").width();
$("#memo-content_div").children().each(function(){
if($(this).width()>maxwidth)
{
$(this).width(maxwidth);
}
});
};
$("img").removeAttr("align");
<script>
init_KindEditor_data('',30);
</script>
<div class="postRightContainer">
<div class="postThemeContainer">
<div class="postDetailPortrait">
<%= link_to image_tag(url_to_avatar(@memo.author),:width=>50,:height => 50,:alt=>'贴吧图像' ),user_path(@memo.author) %>
</div>
<div class="postThemeWrap">
<div class="postDetailTitle"><a href="javascript:void(0);" class="f14 linkGrey4 fb">主题: <%= @memo.subject%></a></div>
<div class="postDetailCreater"><a href="javascript:void(0);" class="linkBlue2" target="_blank"><%= @memo.author.name%></a></div>
<div class="postDetailDate mb5"><%= format_date( @memo.created_at)%></div>
<span id="praise_tread" style="float: right">
<%= render :partial => "memos/praise_tread",:locals => {:obj => @memo,:show_flag => true,:user_id =>User.current.id,:horizontal => true}%>
</span>
<div class="cl"></div>
<div class="fl fontGrey3">
<%= @memo.content.html_safe%>
</div>
<div class="cl"></div>
<div class="mt10 fl">
<% if @memo.attachments.any?%>
<% options = {:author => true, :deletable => @memo.deleted_attach_able_by?(User.current) } %>
<%= render :partial => 'attachments_links', :locals => {:attachments => @memo.attachments, :options => options, :is_float => true} %>
<% end %>
</div>
</div>
<div class="cl"></div>
</div>
<div class="cl"></div>
<div class="homepagePostReply">
<div nhname='new_message' style="display:none;">
<%= form_for(@memo_new, url: forum_memos_path, :html => {:multipart => true}) do |f|%>
<%= f.hidden_field :subject, :required => true, value: @memo.subject %>
<%= f.hidden_field :forum_id, :required => true, value: @memo.forum_id %>
<%= f.hidden_field :parent_id, :required => true, value: @memo.id %>
<textarea placeholder="有问题或有建议,请直接给我留言吧!" style="display: none" nhname='new_message_textarea' name="memo[content]"></textarea>
<p nhname='contentmsg'></p>
<div nhname='toolbar_container' style="float:left;padding-top:3px;"></div>
<a id="new_message_cancel_btn" href="javascript:void(0)" class="grey_n_btn fr " style="margin-top:6px;">取消</a>
<a id="new_message_submit_btn" href="javascript:void(0)" class="blue_n_btn fr mr5 " style="margin-top:6px;">留言</a>
<% end%>
</div>
<div class="cl"></div>
<% @replies.each do |reply| %>
<div class="homepagePostReplyContainer">
<div class="homepagePostReplyPortrait">
<!--<a href="javascript:void(0);"><img src="images/homepageImage.jpg" width="45" height="45" alt="用户头像" /></a>-->
<%= link_to image_tag(url_to_avatar(reply.author), :width => 45,:height => 45), user_path(reply.author) %>
</div>
<div class="homepagePostReplyDes">
<div class="homepagePostReplyPublisher"><a href="<%=user_path(reply.author)%>" class="newsBlue mr10 f14"><%= reply.author.name%></a>
<% if reply.parent && reply.parent.id != @memo.id%>
<span class="f14">回复</span><a href="<%= user_path(reply.parent.author)%>" class="newsBlue mr10 ml15 f14"><%= reply.parent.author.name%></a>
<% end %>
<%= format_date(reply.created_at)%>
<!--<a href="javascript:void(0);" class="replyGrey fr ml10" >删除</a>-->
<%= link_to(
l(:button_delete),
{:action => 'destroy', :id => reply},
:method => :delete,
:data => {:confirm => l(:text_are_you_sure)},
:title => l(:button_delete),:class=>'replyGrey fr ml10'
) if reply.destroyable_by?(User.current) %>
<a href="javascript:void(0);" class="newsBlue fr" nhname="reply_btn">回复</a></div>
<div class="homepagePostReplyContent"><%= reply.content.html_safe%></div>
<div nhname='div_form' class="mt10 ml80" style="display:none;">
<%= form_for(@memo_new, url: forum_memos_path, :method=>'post') do |f| %>
<%= f.hidden_field :subject, :required => true, value: reply.subject %>
<%= f.hidden_field :forum_id, :required => true, value: reply.forum_id %>
<%= f.hidden_field :parent_id, :required => true, value: reply.id %>
<%= hidden_field_tag :quote,"",:required => false,:style => 'display:none' %>
<textarea name='memo[content]' style="display:none;"></textarea>
<p nhname='contentmsg'></p>
<div nhname='toolbar_container' style="float:left;padding-top:3px;"></div>
<a nhname="cancel_btn" href="javascript:;" class="grey_n_btn fr" style="margin-top:3px;">取消</a>
<a nhname="submit_btn" href="javascript:;" class="blue_n_btn fr mr5" style="margin-top:3px;">发布</a>
<% end %>
<div class="cl"></div>
</div>
<div class="cl"></div>
</div>
<div class="cl"></div>
</div>
<% end %>
<!--<div class="homepagePostReplyContainer borderBottomNone">-->
<!--<div class="homepagePostReplyPortrait"><a href="javascript:void(0);"><img src="images/homepageImage.jpg" width="45" height="45" alt="用户头像" /></a></div>-->
<!--<div class="homepagePostReplyDes">-->
<!--<div class="homepagePostReplyPublisher">-->
<!--<a href="javascript:void(0);" class="newsBlue mr15 f14">linchun</a>-->
<!--<span class="f14">回复</span><a href="javascript:void(0);" class="newsBlue mr10 ml15 f14">Tangxiang</a>刚刚-->
<!--<a href="javascript:void(0);" class="replyGrey fr ml10">删除</a><a href="javascript:void(0);" class="newsBlue fr">回复</a></div>-->
<!--<div class="homepagePostReplyContent">点击设置就可以了。</div>-->
<!--</div>-->
<!--<div class="cl"></div>-->
<!--</div>-->
</div>
<div class="pagination">
<%= pagination_links_full @reply_pages, @reply_count, :per_page_links => false %>
</div>
</div>

View File

@ -1,4 +1,9 @@
$('#praise_tread_<%= @obj.id %>').html('<%= j(
render :partial => "/praise_tread/praise_tread",:locals => {:obj => @obj,:user_id => User.current.id,:horizontal => @horizontal}
)%>');
<% if @obj_type == 'Memo'%>
$('#praise_tread_<%= @obj.id %>').html('<%= j(
render :partial => "/memos/praise_tread",:locals => {:obj => @obj,:user_id => User.current.id,:horizontal => @horizontal}
)%>');
<% else %>
$('#praise_tread_<%= @obj.id %>').html('<%= j(
render :partial => "/praise_tread/praise_tread",:locals => {:obj => @obj,:user_id => User.current.id,:horizontal => @horizontal}
)%>');
<% end %>

View File

@ -220,12 +220,14 @@ RedmineApp::Application.routes.draw do
resources :forums do
collection do
match 'search_forum', :via => [:get, :post]
match 'check_forum_name',:via => [:get]
end
member do
post 'create_memo'
post 'create_feedback'
match 'search_memo', :via => [:get, :post]
match 'delete_forum_tag',:via =>[:get]
match 'add_forum_tag',:via=>[:get]
end
resources :memos do
collection do

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

101
public/javascripts/forum.js Normal file
View File

@ -0,0 +1,101 @@
$(function(){
KindEditor.ready(function(K){
$("a[nhname='reply_btn']").live('click',function(){
var params = {};
params.kindutil = K;
params.container = $(this).parent().parent('div');
params.div_form = $("div[nhname='div_form']",params.container);
params.form = $("form",params.div_form);
params.textarea = $("textarea[name='memo[content]']",params.div_form);
//params.textarea.prev('div').css("height","60px");
params.contentmsg = $("p[nhname='contentmsg']",params.div_form);
params.toolbar_container = $("div[nhname='toolbar_container']",params.div_form);
params.cancel_btn = $("a[nhname='cancel_btn']",params.div_form);
params.submit_btn = $("a[nhname='submit_btn']",params.div_form);
params.height = 30;
if(params.textarea.data('init') == undefined){
params.editor = init_editor(params);
init_form(params);
params.cancel_btn.click(function(){
nh_reset_form(params);
toggleAndSettingWordsVal(params.div_form, params.textarea);
});
params.submit_btn.click(function(){
params.form.submit();
});
params.textarea.data('init',1);
}
params.cancel_btn.click();
setTimeout(function(){
if(!params.div_form.is(':hidden')){
params.textarea.show();
params.textarea.focus();
params.textarea.hide();
}
},300);
});
$("a[nhname='sub_reply_btn']").live('click',function(){
var params = {};
params.kindutil = K;
params.container = $(this).parent().parent('div');
params.div_form = $("div[nhname='sub_div_form']",params.container);
params.form = $("form",params.div_form);
params.textarea = $("textarea[name='user_notes']",params.div_form);
//params.textarea.prev('div').css("height","60px");
params.contentmsg = $("p[nhname='sub_contentmsg']",params.div_form);
params.toolbar_container = $("div[nhname='sub_toolbar_container']",params.div_form);
params.cancel_btn = $("a[nhname='sub_cancel_btn']",params.div_form);
params.submit_btn = $("a[nhname='sub_submit_btn']",params.div_form);
params.height = 30;
if(params.textarea.data('init') == undefined){
params.editor = init_editor(params);
init_form(params);
params.cancel_btn.click(function(){
nh_reset_form(params);
toggleAndSettingWordsVal(params.div_form, params.textarea);
});
params.submit_btn.click(function(){
params.form.submit();
});
params.textarea.data('init',1);
}
params.cancel_btn.click();
setTimeout(function(){
if(!params.div_form.is(':hidden')){
params.textarea.show();
params.textarea.focus();
params.textarea.hide();
}
},300);
});
$("div[nhname='new_message']").each(function(){
var params = {};
params.kindutil = K;
params.div_form = $(this);
params.form = $("form",params.div_form);
if(params.form==undefined || params.form.length==0){
return;
}
params.textarea = $("textarea[nhname='new_message_textarea']",params.div_form);
params.contentmsg = $("p[nhname='contentmsg']",params.div_form);
params.toolbar_container = $("div[nhname='toolbar_container']",params.div_form);
params.cancel_btn = $("#new_message_cancel_btn");
params.submit_btn = $("#new_message_submit_btn");
params.height = 30;
if(params.textarea.data('init') == undefined){
params.editor = init_editor(params);
init_form(params);
params.cancel_btn.click(function(){
nh_reset_form(params);
});
params.submit_btn.click(function(){
params.form.submit();
});
params.textarea.data('init',1);
$(this).show();
}
});
});
});

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@ -177,6 +177,25 @@ a.buttonBlue:hover {background-color:#297fb8;}
a.linkGrey {color:#484848;}
a.linkGrey:hover {color:#269ac9;}
a.bBlue {background-color:#3498db;}
a.bBlue:hover {background-color:#297fb8;}
.fontGrey {color:#cecece;}
.fontGrey2 {color:#888888;}
a.linkBlue2 {color:#3498db;}
a.linkBlue2:hover {color:#297fb8;}
a.linkOrange {color:#ff7143;}
a.linkGrey2 {color:#888888;}
a.linkGrey2:hover {color:#484848;}
a.linkGrey4 {color:#484848;}
a.linkGrey5 {color:#484848;}
a.linkGrey5:hover {color:#3498db;}
a.submit_btn {border:1px solid #3498db; padding:3px 10px; border-radius:3px; color:#3498db;}
a.submit_btn:hover {background-color:#3498db; color:#ffffff;}
input.submit_btn {border:1px solid #3498db; padding:3px 10px; border-radius:3px; color:#3498db;}
input.submit_btn:hover {background-color:#3498db; color:#ffffff;}
a.yellowBtn{ display:inline-block;color:#0d90c3; height:22px;}
/* commonBtn */
.grey_btn{ background:#d9d9d9; color:#656565; font-weight:normal; text-align:center;padding:2px 10px;}
a.grey_btn{ background:#d9d9d9; color:#656565; font-weight:normal; text-align:center;padding:2px 10px;}
@ -485,7 +504,7 @@ a:hover.UsersApBtn{border:1px solid #888888; }
.homepageSignatureTextarea {width:207px; height:80px; max-width:207px; max-height:80px; border:1px solid #d9d9d9; outline:none; margin:0px 0px 12px 0px;}
.homepageSignature {font-size:12px; color:#888888; margin:10px 0; width:208px;}
.homepageImageBlock {margin:0 auto; width:68px; float:left; text-align:center; display:inline-block;}
a.homepageImageNumber {font-size:12px; color:#484848; font-weight: bold;}
a.homepageImageNumber {font-size:12px; font-weight: bold;} /*color:#484848;*/
a.homepageImageNumber:hover {color:#269ac9;}
.homepageImageText {font-size:12px; color:#888888;}
.homepageVerDiv {height:28px; vertical-align:middle; width:1px; float:left; display:inline-block; background-color:#d1d1d1; margin-top:3px;}
@ -683,6 +702,57 @@ a.referenceTypeBlock {color:#888888; display:inline-block; padding:0px 20px;}
.AgreementTxt{text-indent: 2em; margin-bottom: 15px;}
.AgreementImg{margin: 0px auto; width: 820px;}
/*创建贴吧样式*/
.postContainer {width:968px; border:1px solid #dddddd; padding:15px; background-color:#ffffff; margin-top:15px;}
.postBanner {height:30px; width:970px; border-bottom:1px solid #efefef;}
.postSort {width:40px; float:left; margin-top:5px; padding-left:5px;}
a.sortArrowDown {background:url(images/post_image_list.png) 0px 0px no-repeat; width:7px; height:9px; float:left; margin-left:5px; margin-top:5px;}
a.sortArrowUp {background:url(images/post_image_list.png) -17px 0px no-repeat; width:7px; height:9px; float:left; margin-left:5px; margin-top:5px;}
a.sortArrowActiveD {background:url(images/post_image_list.png) -0px -20px no-repeat; width:7px; height:9px; float:left; margin-left:5px; margin-top:5px;}
a.sortArrowActiveU {background:url(images/post_image_list.png) -17px -20px no-repeat; width:7px; height:9px; float:left; margin-left:5px; margin-top:5px;}
.creatPost {width:80px; height:25px; border-radius:3px; color:#ffffff; text-align:center; float:right; line-height:25px; vertical-align:middle; margin-top:2px;}
.creatPostIcon {background:url(images/post_image_list.png) -40px -54px no-repeat; width:70px; height:25px; padding-left:10px; border-radius:3px;}
.postRow {width:970px; border-bottom:1px solid #efefef; padding:15px 0;}
.postPortrait {width:75px; height:75px; float:left; margin-right:15px;}
.postWrap {width:690px; float:left; margin-right:95px;}
.postTitle {width:690px; max-width:690px; margin-bottom:5px;}
.postDes {width:690px; max-width:690px; margin-bottom:6px; color:#484848;}
.postCreater {color:#888888; font-size:12px; float:left; margin-right:40px;}
.postDate {color:#888888; font-size:12px;}
.postStatics { margin-top:28px; color:#888888; float:right;}
.slice {width:1px; height:25px; background-color:#d1d1d1; float:right; margin-top:35px; margin-right:20px;}
.pageRoll {float:right; border-left:1px solid #dddddd; margin-top:15px;}
.pageCell {border:1px solid #dddddd; border-width:1px 1px 1px 0px; padding:5px 12px; float:left; border-spacing:0px;}
.pageCellActive {background-color:#3498db;}
.postCreateInput {width:963px; height:28px; border:1px solid #d9d9d9 !important; outline:none;}
.upImg {padding:1px 6px; border: 1px solid #dddddd; margin-top:53px;}
/*贴吧内部样式*/
.postDetailContainer {padding:15px; border:1px solid #dddddd; background-color:#ffffff;}
.postlabel {background-color:#edf1f2; color:#888888; padding:2px 5px; float:left; margin-bottom:5px;}
.postRightContainer {width:718px; border:1px solid #dddddd; padding:15px; background-color:#ffffff; float:left;} /* margin-top:15px;*/
.postDetailBanner {height:30px; width:720px; border-bottom:1px solid #efefef;}
.postDetailRow {width:720px; border-bottom:1px solid #efefef; padding:15px 0;}
.postDetailPortrait {width:50px; height:50px; float:left; margin-right:15px;}
.postDetailWrap {width:580px; float:left;}
.postDetailTitle {width:580px; max-width:580px; margin-bottom:5px;}
.postDetailDes {width:580px; max-width:580px; margin-bottom:6px; color:#888888;display:block;overflow:hidden;word-break:keep-all;white-space:nowrap;text-overflow:ellipsis;}
.postDetailCreater {color:#888888; font-size:12px; float:left; margin-right:25px;}
.postDetailDate {color:#888888; font-size:12px; float:left;}
.postDetailReply { margin-top:28px; color:#888888; float:right;}
a.postReplyIcon {background:url(images/post_image_list.png) -40px 2px no-repeat; width:18px; height:18px; float:left;}
a.postReplyIcon:hover {background:url(images/post_image_list.png) -40px -29px no-repeat;}
.postDetailInput {width:713px; height:28px; border:1px solid #d9d9d9; outline:none !important;}
.postAttIcon {background:url(images/post_image_list.png) 0px -91px no-repeat; width:16px; height:16px; padding-left:20px;}
.postAttIcon:hover {background:url(images/post_image_list.png) 0px -113px no-repeat;}
.postThemeContainer {width:720px;}
.postThemeWrap {width:655px; float:left;}
.postLikeIcon {background:url(images/post_image_list.png) 0px -42px no-repeat ;float:right; padding-left:18px;}
.postLikeIcon:hover {background:url(images/post_image_list.png) 0px -64px no-repeat ;}
a.AnnexBtn{ background: url(images/homepage_icon2.png) 0px -343px no-repeat !important; width:70px; height:20px; display:block; padding-left:20px; color:#888888;}
a:hover.AnnexBtn{background: url(images/homepage_icon2.png) -90px -343px no-repeat !important; color:#3598db;}
/*底部*/
#Footer{background-color:#ffffff; padding-bottom:15px; color:#666666;} /*margin-bottom:10px;*/
.footerAboutContainer {width:auto; border-bottom:1px solid #efefef;}

View File

@ -848,16 +848,16 @@ p.breadcrumb
text-indent:15px
}
input[type="text"],input[type="password"],textarea,select
{
padding:2px;
border:1px solid #039ea0
}
/*input[type="text"],input[type="password"],textarea,select*/
/*{*/
/*padding:2px;*/
/*border:1px solid #039ea0*/
/*}*/
input[type="text"],input[type="password"]
{
padding:3px
}
/*input[type="text"],input[type="password"]*/
/*{*/
/*padding:3px*/
/*}*/
input[type="text"]:focus,input[type="password"]:focus,textarea:focus,select:focus
{
@ -1719,57 +1719,57 @@ a.enterprise {
cursor: pointer;
}
input.enterprise[type="button"] {
padding-bottom: 5px;
width: 55px;
height: 25px;
font-family: '微软雅黑',Arial,Helvetica,sans-serif;
font-size: 12px;
color: #fff;
padding: 0px;
background: #15bccf;
border: 1px solid #15bccf;
}
input.enterprise[type="submit"] {
padding-bottom: 5px;
width: 55px;
height: 25px;
font-family: '微软雅黑',Arial,Helvetica,sans-serif;
font-size: 12px;
color: #fff;
padding: 0px;
background: #15bccf;
border: 1px solid #15bccf;
/*input.enterprise[type="button"] {*/
/*padding-bottom: 5px;*/
/*width: 55px;*/
/*height: 25px;*/
/*font-family: '微软雅黑',Arial,Helvetica,sans-serif;*/
/*font-size: 12px;*/
/*color: #fff;*/
/*padding: 0px;*/
/*background: #15bccf;*/
/*border: 1px solid #15bccf;*/
/*}*/
/*input.enterprise[type="submit"] {*/
/*padding-bottom: 5px;*/
/*width: 55px;*/
/*height: 25px;*/
/*font-family: '微软雅黑',Arial,Helvetica,sans-serif;*/
/*font-size: 12px;*/
/*color: #fff;*/
/*padding: 0px;*/
/*background: #15bccf;*/
/*border: 1px solid #15bccf;*/
}
/*}*/
/*end*/
input[type="submit"] {
width: auto;
font-family: '微软雅黑',Arial,Helvetica,sans-serif;
font-size: 12px;
color: rgb(5, 5, 5);
padding: 0px;
background: -moz-linear-gradient(center top , rgb(255, 255, 255) 0%, rgb(235, 235, 235) 50%, rgb(219, 219, 219) 50%, rgb(181, 181, 181)) repeat scroll 0% 0% transparent;
border-radius: 4px;
border: 1px solid rgb(148, 148, 148);
box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.2), 0px 0px 2px rgb(255, 255, 255) inset;
text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.2), 0px 1px 0px rgb(255, 255, 255);
cursor: pointer;
}
/*input[type="submit"] {*/
/*width: auto;*/
/*font-family: '微软雅黑',Arial,Helvetica,sans-serif;*/
/*font-size: 12px;*/
/*color: rgb(5, 5, 5);*/
/*padding: 0px;*/
/*background: -moz-linear-gradient(center top , rgb(255, 255, 255) 0%, rgb(235, 235, 235) 50%, rgb(219, 219, 219) 50%, rgb(181, 181, 181)) repeat scroll 0% 0% transparent;*/
/*border-radius: 4px;*/
/*border: 1px solid rgb(148, 148, 148);*/
/*box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.2), 0px 0px 2px rgb(255, 255, 255) inset;*/
/*text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.2), 0px 1px 0px rgb(255, 255, 255);*/
/*cursor: pointer;*/
/*}*/
input[type="button"] {
width: auto;
font-family: '微软雅黑',Arial,Helvetica,sans-serif;
font-size: 12px;
color: rgb(5, 5, 5);
padding: 0px;
background: -moz-linear-gradient(center top , rgb(255, 255, 255) 0%, rgb(235, 235, 235) 50%, rgb(219, 219, 219) 50%, rgb(181, 181, 181)) repeat scroll 0% 0% transparent;
border-radius: 4px;
border: 1px solid rgb(148, 148, 148);
box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.2), 0px 0px 2px rgb(255, 255, 255) inset;
text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.2), 0px 1px 0px rgb(255, 255, 255);
cursor: pointer;
}
/*input[type="button"] {*/
/*width: auto;*/
/*font-family: '微软雅黑',Arial,Helvetica,sans-serif;*/
/*font-size: 12px;*/
/*color: rgb(5, 5, 5);*/
/*padding: 0px;*/
/*background: -moz-linear-gradient(center top , rgb(255, 255, 255) 0%, rgb(235, 235, 235) 50%, rgb(219, 219, 219) 50%, rgb(181, 181, 181)) repeat scroll 0% 0% transparent;*/
/*border-radius: 4px;*/
/*border: 1px solid rgb(148, 148, 148);*/
/*box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.2), 0px 0px 2px rgb(255, 255, 255) inset;*/
/*text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.2), 0px 1px 0px rgb(255, 255, 255);*/
/*cursor: pointer;*/
/*}*/
/*by fanqiang*/
img.avatar3 {
width: 50px;