From 9443c139f0815aa8d436ff174377c8d87eb44fd8 Mon Sep 17 00:00:00 2001 From: lizanle <491823689@qq.com> Date: Fri, 18 Sep 2015 17:44:16 +0800 Subject: [PATCH] update forum --- app/controllers/forums_controller.rb | 85 +++++- app/controllers/memos_controller.rb | 10 +- app/views/forums/_file_form.html.erb | 79 +++++ app/views/forums/_forum_form.html.erb | 15 + app/views/forums/_forum_list.html.erb | 87 +++--- app/views/forums/_forum_tag_list.html.erb | 5 + app/views/forums/_show_topics.html.erb | 64 ++-- app/views/forums/create.js.erb | 1 + app/views/forums/delete_forum_tag.js.erb | 2 + app/views/forums/index.html.erb | 164 +++++++--- app/views/forums/index.js.erb | 1 + app/views/forums/show.html.erb | 144 ++++++--- app/views/forums/show.js.erb | 1 + app/views/layouts/base_forums.html.erb | 178 ++++++----- app/views/layouts/users_base.html.erb | 28 +- app/views/memos/_attachments_links.html.erb | 71 +++++ app/views/memos/_praise_tread.html.erb | 36 +++ app/views/memos/show.html.erb | 289 +++++++----------- app/views/praise_tread/praise_plus.js.erb | 13 +- config/routes.rb | 4 +- public/images/post_portrait.jpg | Bin 0 -> 2360 bytes public/javascripts/forum.js | 101 ++++++ public/stylesheets/images/homepage_icon2.png | Bin 0 -> 11280 bytes public/stylesheets/images/post_image_list.png | Bin 0 -> 3091 bytes public/stylesheets/new_user.css | 72 ++++- .../stylesheets/application.css | 118 +++---- 26 files changed, 1040 insertions(+), 528 deletions(-) create mode 100644 app/views/forums/_file_form.html.erb create mode 100644 app/views/forums/_forum_form.html.erb create mode 100644 app/views/forums/_forum_tag_list.html.erb create mode 100644 app/views/forums/create.js.erb create mode 100644 app/views/forums/delete_forum_tag.js.erb create mode 100644 app/views/forums/index.js.erb create mode 100644 app/views/forums/show.js.erb create mode 100644 app/views/memos/_attachments_links.html.erb create mode 100644 app/views/memos/_praise_tread.html.erb create mode 100644 public/images/post_portrait.jpg create mode 100644 public/javascripts/forum.js create mode 100644 public/stylesheets/images/homepage_icon2.png create mode 100644 public/stylesheets/images/post_image_list.png diff --git a/app/controllers/forums_controller.rb b/app/controllers/forums_controller.rb index 2b44d51de..112550918 100644 --- a/app/controllers/forums_controller.rb +++ b/app/controllers/forums_controller.rb @@ -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 diff --git a/app/controllers/memos_controller.rb b/app/controllers/memos_controller.rb index 27e0d472f..e354a3293 100644 --- a/app/controllers/memos_controller.rb +++ b/app/controllers/memos_controller.rb @@ -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 diff --git a/app/views/forums/_file_form.html.erb b/app/views/forums/_file_form.html.erb new file mode 100644 index 000000000..28bb3fa83 --- /dev/null +++ b/app/views/forums/_file_form.html.erb @@ -0,0 +1,79 @@ + +
+ +<% if defined?(container) && container && container.saved_attachments %> + <% container.attachments.each_with_index do |attachment, i| %> + + <%= 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;") %><%= l(:field_is_public) %>: + <%= 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(' '.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}" %> + +
+ <% end %> + <% container.saved_attachments.each_with_index do |attachment, i| %> + + <%= 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;") %> + <%= l(:field_is_public) %>: + <%= 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(' '.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}" %> + +
+ <% end %> +<% end %> +
+ <% project = project %> +
+ + <%#= button_tag "浏览", :type=>"button", :onclick=>"CompatibleSend();" %> + + <%#= button_tag "文件浏览", :type=>"button", :onclick=>"$('#_file').click();",:onmouseover => 'this.focus()',:class => 'AnnexBtn fl mt3' %> + + <%= 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) + } %> + + + + + <%#= number_to_human_size(Setting.attachment_max_size.to_i.kilobytes) %> + + + + <% content_for :header_tags do %> + <%= javascript_include_tag 'attachments' %> + <% end %> +
\ No newline at end of file diff --git a/app/views/forums/_forum_form.html.erb b/app/views/forums/_forum_form.html.erb new file mode 100644 index 000000000..9888b674e --- /dev/null +++ b/app/views/forums/_forum_form.html.erb @@ -0,0 +1,15 @@ +
贴吧图片 + 上传图片 +
+
+
+ +
+
+ +
+
+
确定
+
取消
+
+
\ No newline at end of file diff --git a/app/views/forums/_forum_list.html.erb b/app/views/forums/_forum_list.html.erb index ac27235eb..9c39c436e 100644 --- a/app/views/forums/_forum_list.html.erb +++ b/app/views/forums/_forum_list.html.erb @@ -1,57 +1,38 @@ - -
+ <% if forums.any? %> <% forums.each do |forum| %> -
-
- <%= 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)) %> -
-
- - - - - - - - - - -
-

- <%= link_to h(forum.name), forum_path(forum) %> -

-
-

- <%= textAreailizable forum.description%> -

-
-

- <%= authoring forum.created_at, forum.creator %> -

-
-
-
- - - - - - - - - -
- <%= link_to (forum.memo_count), forum_path(forum) %> - - <%= link_to (forum.topic_count), forum_path(forum) %> -
回答帖子
-
-
+
+ + +
+
+ + <%= link_to (forum.memo_count), forum_path(forum),:class=>"linkGrey5 fb" %> +
+
帖子
+
+
+
+
+ + <%= link_to (forum.topic_count), forum_path(forum),:class=>"linkGrey5 fb" %> +
+
回答
+
+
+
<% end %> - + <% else %> -<% end %> -
\ No newline at end of file + <%= render :partial => "layouts/no_content" %> +<% end %> \ No newline at end of file diff --git a/app/views/forums/_forum_tag_list.html.erb b/app/views/forums/_forum_tag_list.html.erb new file mode 100644 index 000000000..156bcc895 --- /dev/null +++ b/app/views/forums/_forum_tag_list.html.erb @@ -0,0 +1,5 @@ +<% forum.tag_list.each do |tag|%> + + <%= tag %> + × +<% end %> \ No newline at end of file diff --git a/app/views/forums/_show_topics.html.erb b/app/views/forums/_show_topics.html.erb index f8679cefa..0457bde55 100644 --- a/app/views/forums/_show_topics.html.erb +++ b/app/views/forums/_show_topics.html.erb @@ -1,47 +1,31 @@ - -
共有 <%=link_to @forum.memos.count %> 个贴子
<% if memos.any? %> <% memos.each do |topic| %> - - - - - -
- <%= link_to image_tag(url_to_avatar(topic.author), :class => "avatar"), user_path(topic.author) if topic.author%> - - - - - - - - - - - - -
<%= link_to h(topic.subject), forum_memo_path(topic.forum, topic) %> - - - - - - - -
<%= link_to (topic.replies_count), forum_memo_path(topic.forum, topic) %>
回答
<%= authoring topic.created_at, topic.author %> - - <% author = topic.last_reply.try(:author)%> - <% if author%> - 最后回复:<%=link_to_user author %> - <% end%> - -
-
-
+
+
+ + <%= link_to image_tag(url_to_avatar(topic.author), :width => 50,:height => 50,:alt => '贴吧图片'), user_path(topic.author) if topic.author%> +
+
+ +
<%= topic.content.html_safe%> + +
+ <% author = topic.last_reply.try(:author)%> + <% if author%> +
最后回复:<%= author.name%>
+
<%= format_date(topic.last_reply.created_at)%>
+ <% end%> + +
+
+ + <%= link_to (topic.replies_count), forum_memo_path(topic.forum, topic),:target =>'_blank',:class=>'linkGrey2' %> +
+
+
<% end %> - + <% else %>

<%= l(:label_no_data) %>

<% end %> diff --git a/app/views/forums/create.js.erb b/app/views/forums/create.js.erb new file mode 100644 index 000000000..a120008b6 --- /dev/null +++ b/app/views/forums/create.js.erb @@ -0,0 +1 @@ +$('#new_forum_div').slideToggle();$('#create_btn').parent().slideToggle(); \ No newline at end of file diff --git a/app/views/forums/delete_forum_tag.js.erb b/app/views/forums/delete_forum_tag.js.erb new file mode 100644 index 000000000..5080b3bdd --- /dev/null +++ b/app/views/forums/delete_forum_tag.js.erb @@ -0,0 +1,2 @@ +$("#forum_tag_list").html("<%= escape_javascript( render :partial=>'forum_tag_list',:locals=>{:forum=>@forum}) %>"); +$('#add_tag01').hide(); \ No newline at end of file diff --git a/app/views/forums/index.html.erb b/app/views/forums/index.html.erb index 85cab957a..6e1a26407 100644 --- a/app/views/forums/index.html.erb +++ b/app/views/forums/index.html.erb @@ -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 %> - -
- - - - - - - - - - - -
公共贴吧 - - <%= l(:label_user_location) %> : - - - <% if User.current.logged? %> - <%= link_to( l(:label_forum_new), new_forum_path, :class => 'icon icon-add') %> - <% end %> - - -
- - <%= link_to request.host()+"/forums", forums_path %> - - - <%= link_to l(:field_homepage), home_path %> > - <%= link_to "公共贴吧", forums_path %> -
-
-<% if @forums.size > 0 %> - <%= render :partial => 'forums/forum_list', :locals => {:forums => @forums} %> -<% else %> - <%= render :partial => "layouts/no_content" %> -<% end %> + + +
+
+
+ + +
+ <%= render :partial => 'forum_list',:locals => {:forums=>@forums}%> +
+ + +
+
+
+
diff --git a/app/views/forums/index.js.erb b/app/views/forums/index.js.erb new file mode 100644 index 000000000..f8f7f45b8 --- /dev/null +++ b/app/views/forums/index.js.erb @@ -0,0 +1 @@ +$("#forum_list").html("<%= escape_javascript(render :partial => 'forum_list',:locals => {:forums=>@forums}) %>"); \ No newline at end of file diff --git a/app/views/forums/show.html.erb b/app/views/forums/show.html.erb index 24aa74c23..d72d15df0 100644 --- a/app/views/forums/show.html.erb +++ b/app/views/forums/show.html.erb @@ -1,42 +1,104 @@ - -
-

- <%=l(:label_memo_new)%> -

- <% if User.current.logged? %> - <%= labelled_form_for(@memo, :url => create_memo_forum_path(@forum), :html => {:multipart => true} ) do |f| %> -
- <%= hidden_field_tag :asset_id,params[:asset_id],:required => false,:style => 'display:none' %> -

- <%= f.text_field :subject, :required => true, :maxlength => 50%> -

-

- <%= f.kindeditor :content, :required => true %> -

- -

- (<%= l(:label_memos_max_length) %>) -

-

- <%= l(:label_attachment_plural) %> -
- <%= render :partial => 'attachments/form', :locals => {:container => @memo} %> -

-
- <%= f.submit :value => l(:label_memo_create) %> - <%= link_to l(:button_cancel), "#", :onclick => '$("#add-memo").hide(); return false;' %> -
- <% end %> - <% end %> + +
+ + +
+ <%= render :partial => 'show_topics',:locals => {:memos=>@memos}%> +
+ + + + + + + + + + + +
- - - <%= 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) %> - - - <%= 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? %> - -<%= render :partial => 'forums/show_topics', :locals => {:memos => @memos} %> +
\ No newline at end of file diff --git a/app/views/forums/show.js.erb b/app/views/forums/show.js.erb new file mode 100644 index 000000000..2cd380aca --- /dev/null +++ b/app/views/forums/show.js.erb @@ -0,0 +1 @@ +$("#topics_list").html("<%= escape_javascript(render :partial => 'show_topics',:locals => {:memos=>@memos})%>") \ No newline at end of file diff --git a/app/views/layouts/base_forums.html.erb b/app/views/layouts/base_forums.html.erb index c68e917f5..3646ae019 100644 --- a/app/views/layouts/base_forums.html.erb +++ b/app/views/layouts/base_forums.html.erb @@ -7,7 +7,7 @@ <%= 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'%> + @@ -28,82 +77,65 @@ <% end%>
+
+
+
+
+
<%= link_to image_tag(url_to_avatar(@forum.creator),:width=>75,:height => 75,:alt=>'贴吧图像' ),user_path( @forum.creator) %> + +
+ +
+ +
+
+ <%= render :partial=>'forums/forum_tag_list',:locals=>{:forum=>@forum}%> +
+ + 添加标签 +
+
+
+
+
<%= link_to image_tag(url_to_avatar(User.current),:width=>50,:height => 50,:alt=>'贴吧图像' ),user_path( User.current) %>
+
我在贴吧
+
+
+ +
+
+ +
发帖
+
-
-
-
-
-
- - - - - - - - - - -
<%= l(:label_projects_community)%><%= l(:label_user_location) %> : - -
<%= link_to request.host()+"/forums", forums_path %>

<%=link_to l(:label_home),home_path %> > <%=link_to '公共贴吧', :controller => 'forums', :action => 'index' %> > <%=link_to @forum.name, forum_path(@forum) %>

-
- -
- - <%= render_flash_messages %> - <%= yield %> - <%= call_hook :view_layouts_base_content %> -
+
+
+
+
+ + <%= yield %> + <%#= call_hook :view_layouts_base_content %> +
+
+
-
- <%#= render :partial => 'layouts/base_footer'%> -
- - -
-
-
<%= render :partial => 'layouts/footer' %>
- <%= call_hook :view_layouts_base_body_bottom %> + <%#= call_hook :view_layouts_base_body_bottom %> diff --git a/app/views/layouts/users_base.html.erb b/app/views/layouts/users_base.html.erb index 0caa5e39b..6c1edbd1b 100644 --- a/app/views/layouts/users_base.html.erb +++ b/app/views/layouts/users_base.html.erb @@ -7,16 +7,16 @@ <%= 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 %> <%= yield :header_tags -%> - <%= stylesheet_link_tag 'base','header', :media => 'all'%> + <%= stylesheet_link_tag 'base','header','new_user' ,:media => 'all'%>
@@ -29,27 +29,27 @@
-
-
-
- <%#=render :partial => 'layouts/base_header'%> -
-
+ + + + + + <%= render_flash_messages %> <%= yield %> <%= call_hook :view_layouts_base_content %>
-
+ -
-
+ + -
-
+ +
<%= render :partial => 'layouts/footer' %> diff --git a/app/views/memos/_attachments_links.html.erb b/app/views/memos/_attachments_links.html.erb new file mode 100644 index 000000000..7da30aad0 --- /dev/null +++ b/app/views/memos/_attachments_links.html.erb @@ -0,0 +1,71 @@ +
+ <% for attachment in attachments %> + + + + <% if options[:length] %> + + <%= link_to_short_attachment attachment, :class => 'fl FilesName02', :download => true,:length => options[:length] -%> + (<%= number_to_human_size attachment.filesize , :precision => 0 %>) + <% 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) %> + + <% end %> +
+ <% else %> + + <%= link_to_short_attachment attachment, :class => 'fl FilesName02', :download => true, :length => 32 -%> + (<%= number_to_human_size attachment.filesize , :precision => 0 %>) + <% 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) %> + + <% end %> +
+ <% end %> + + <% if attachment.is_text? %> + <%= link_to image_tag('magnifier.png'), + :controller => 'attachments', + :action => 'show', + :id => attachment, + :filename => attachment.filename%> + <% end %> + + + + + + + + + + + <%#= link_to h(truncate(attachment.author.name, length: 10, omission: '...')),user_path(attachment.author) %> + + + + + <% end %> + <% if defined?(thumbnails) && thumbnails %> + <% images = attachments.select(&:thumbnailable?) %> + <% if images.any? %> +
+ <% images.each do |attachment| %> +
<%= thumbnail_tag(attachment) %>
+ <% end %> +
+ <% end %> + <% end %> +
diff --git a/app/views/memos/_praise_tread.html.erb b/app/views/memos/_praise_tread.html.erb new file mode 100644 index 000000000..17af4b090 --- /dev/null +++ b/app/views/memos/_praise_tread.html.erb @@ -0,0 +1,36 @@ + + <% if User.current.logged? %> + <% if horizontal %> + +
+ <% @is_valuate = is_praise_or_tread(obj,user_id)%> + <% if @is_valuate.size > 0 %> + <% @flag = @is_valuate.first.praise_or_tread %> + <% if @flag == 1 %> + <%= get_praise_num(obj)%> + <% end %> + <% else %> + <% if user_id == obj.author_id %> + + + <%= get_praise_num(obj)%> + + <% else %> + + <%# 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 %> + <%= get_praise_num(obj)%> + + + + + + + + <% end %> + <% end %> +
+ <% end %> + <% end %> diff --git a/app/views/memos/show.html.erb b/app/views/memos/show.html.erb index 586279504..109964182 100644 --- a/app/views/memos/show.html.erb +++ b/app/views/memos/show.html.erb @@ -1,188 +1,115 @@ +<%= javascript_include_tag "/assets/kindeditor/kindeditor",'/assets/kindeditor/pasteimg',"init_KindEditor","forum" %> -<%= javascript_include_tag "/assets/kindeditor/kindeditor",'/assets/kindeditor/pasteimg' %> -
- - - <%= render :partial => "/praise_tread/praise_tread",:locals => {:obj => @memo,:show_flag => true,:user_id =>User.current.id,:horizontal => true}%> + +
+
+
+ <%= link_to image_tag(url_to_avatar(@memo.author),:width=>50,:height => 50,:alt=>'贴吧图像' ),user_path(@memo.author) %> +
+
+ + +
<%= format_date( @memo.created_at)%>
+ + <%= render :partial => "memos/praise_tread",:locals => {:obj => @memo,:show_flag => true,:user_id =>User.current.id,:horizontal => true}%> -
-
- <%= link_to image_tag(url_to_avatar(@memo.author), :class => "avatar"), user_path(@memo.author) %> -
-

- <%=link_to @memo.author.name, user_path(@memo.author) %> -

-
-
-
- - <%= 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( - 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) %> -
+
+
+ <%= @memo.content.html_safe%> +
+
+
+ <% 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 %> +
+
+
+
+
+
+
+ <%= 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 %> + +

+
+ 取消 + 留言 + <% end%> +
+
+ <% @replies.each do |reply| %> +
+
+ + <%= link_to image_tag(url_to_avatar(reply.author), :width => 45,:height => 45), user_path(reply.author) %> +
+
+
<%= reply.author.name%> + <% if reply.parent && reply.parent.id != @memo.id%> + 回复<%= reply.parent.author.name%> + <% end %> -
 
+ <%= format_date(reply.created_at)%> + + <%= 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) %> + 回复
+
<%= reply.content.html_safe%>
+ -
-
-
-

<%= l(:label_reply_plural) %> (<%= @replies.nil? ? 0 : @replies.size %>)

- <% pages_count = @reply_pages.offset %> - <% @replies.each do |reply| %> -
"> -

-
- - <%= 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( - 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) %> - -
-
- - - - - - - - -
- <%= link_to image_tag(url_to_avatar(reply.author), :class => "avatar"), user_path(reply.author) %> - -
- <%=h sanitize(reply.content.html_safe) %> -
-

- <% 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 %> -

-
- <%= authoring reply.created_at, reply.author %> -
-
- <% end %> - +
-
- -<% if User.current.login? %> -
- <%= render :partial => 'reply_box' %> -
-<% else %> -
- <%= l(:label_user_login_tips) %> - <%= link_to l(:label_user_login_new), signin_path %> -
-
-<% end %> - - - + <% end %> + + + + + + + + + + + +
+ +
\ No newline at end of file diff --git a/app/views/praise_tread/praise_plus.js.erb b/app/views/praise_tread/praise_plus.js.erb index d56ff0e68..30a53723e 100644 --- a/app/views/praise_tread/praise_plus.js.erb +++ b/app/views/praise_tread/praise_plus.js.erb @@ -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 %> diff --git a/config/routes.rb b/config/routes.rb index 1d2393764..2c6ab37ce 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -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 diff --git a/public/images/post_portrait.jpg b/public/images/post_portrait.jpg new file mode 100644 index 0000000000000000000000000000000000000000..91ea6214690d8fa94bcc7f874be009f88102ac72 GIT binary patch literal 2360 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

vMs`ZP~o}rEe&*x?P&W7 z6}1|>VR=Sh2Gbr(biYzSdj)(k?eelD*cnI1q)~J@^Af5@dfwo|`cJE?pcYIN&gIxl zvm7f}d2uZNA_e{(PyLf4`2P|m(#rMrc<8kE@NVcJ_*AwO{GfF-Le~6nB$>A^!ADp5 zZciyF`@y4Hg?PhBFeQ6__yYG1%HPz5aclJkQF)4;jQTy8!PBVdI|@^neDEl<7I579 zxx22}O!j@d??uRp`TAbYgUyh?QJ@GUOM^S*6J%k47NZCFf2;1Lp2mQcof~l$_#$ zx1i=nG;5h&G0zL+7nsihvp!;|Ll!ooLTPU~V3F7^ zOXxd<*@HnBO9b){&gh@G+5-E1IriU;@}F3w|1-}2PftrVo{BL&kC%X$B~^H55`F(S z2I~I|JO9p4DfUMR58j~osv}zr&-lyqJb~DFc9Lj=<_-8R)5urEg`!BUI5EB}MjzOV z{^@AfJXy42iV}0uAv%_@3`sN(*!_>A*B&OHrXqNum?CX~1MU2eNesa%nzhV93vp>{ z5uVK(=)9}X6BkK-)5Cex-c(_xX@OU5W9crl&&jYy#68xV*R!&cm90|qC)L5%c$~wF zbm%OX;N>bqCV#N)Fg4HS)bCKG(=9{OjT0bIi4x1j&HbOUkpD-HB9vRsOWRgW`+yJh z7ENJjSqXu*_G-FB-iraL%r!^95k+3q&iX^^JW8@tl#&Tma1fHxf_ zyS6K}=+f~0F~Tu9Ixronj7pSrmnc5X_g_XP*^_&|ahpp8TY>mN{4?-&1dn7-r7&KL zejWumcl>rMCg|Q?NV5mNtF&IQmcET@`XIEp=RE>xJ|!)OQj+1thZdL-e;?%Zfd>h% zcbiii|G4c0C(mc@rM9>jc%xcTBNNUyQXtA?J?jqm#%h&o8Jic zA6c$9m2_t}><47$>-=7>6sUP;f9a|l??&)_+Q^kt^G{&fBO9;v^r<>i4775$x$2R6 zP3K>!WP4SGpXpj8ZDxpLG%ll$1!}3&9N!k}V+KWSx5BntE&J3wi9)Eq4kHS1&ME5B z!>q1Gzh5|3Z?`It=LwPY<2}(9zD>CjfnM2(3lgCH8E);=V(dr}*}J?zkF4Thw8E46 z)9U_-dBTsgm-q3whVTw|!*})@Gk5lUGxxET^`@gD+oGyAqI;Q6O1~I?O`JO;VKl`t zi6&WL*>qQ+dQ20hbSQDht4>m)aRu2zyCuN_b=nRRH!0bhs*YjVW$he^pc!+eJ z&pR4lS!|mu21ZtD^b(^751eRke~m-GW66}N-i`;Zz%`GY?WPS#-99+73xK|fSs&~p zl;Cb2dWEd<)6ZaA2<`fB!r$S$=rKA|#hWT6N=}{@=TC3CJ~F`FwyhtnL`exF+Y$I5 zl&Mv)?Ed52{|~bF|K@6>=)>Nq-Si-oVDlHwjik!~M{a;66XmBgub3nZYv9g&K;EDb z($=)(QO2BEI#m2D<^;R@*mc?I1(?Z;^>reI?K^}s{n?cUs%twICa<6UTX@f+28ZEp z3;9@O2`o4(_EUaIQWmN5?+Rp{zAjuDERAG$>C4)WRw=`1$+J?&tOafaI*zct@$dyy$r<{$jN+f)zg?rlNILI`)$)-`DL=o{#x|4@9p3UU`b zn$L~$J?;t@ac^)l!))wXrFxbA;z}kzGgi3w6-x{WA=xVDht2q9)eM3GA#^KY(q9E- z?6ZR7D8KyZ#Tu{Ehr+JZDynp-sq^BJnv1HAEq+ImkHv!=PtE>Uxccu7!>E{|Ez72g znvM+Dm&7J1eypA-z8%Gd@eb1LLx1-o_EPNH|3H5mSP%SqxlrW@4@ZR=R!<5~%vuU6 zLUX(wf-g84r~su-R@NQe`@-gE=aNC1=~YmkLT+vDZ`&gNV$Dr#~T7=EXP^(xKIn=qF6Pmcn(K+ggz)N%DVUbadtYoqa?X zHA8W-6T4W*t>MI% z>f>Y%ESmaRs6iz!1=JG?fYTnF;PofR_*{PzhEq8S^-?>UPL88y_gHFQ19|K&dYkSg zNB@H|fQ||rSI6Tbeo(#v9SjfhRXs|ve|XTib&=zAB_hf`{u5;m?=l`wKck_3mO3}m z;Mm_eZ_GBvr-*u#8rK{%4lTr0nFa&!36HWf?FTBPkwLg7_NJ2pJ~~Pvw(otIX#%+D zw8eU1NJ*4Z8Pwnpr1nL}hb}ah_|s4mZv`%SyE4G)i7r3|q1d$P zXtV^6XefeXd?;C@S9m~ggJ9>_ivcjoGbxX^cBYaU5udX+p!^^dRj8hkZ;FQZn7Rkl zZT~Qrb3{%*i%pY~61AQC!&ZhLFMtt5C~{mCdEDV(I$43pgl)V>beeF)tOzb%pzJry z3g1r;4|^O={MY_H4C)QeMdC$E>td9#8p%t6*02pI?t#jr$rg(NO80n zJ2C#F5sS1FZ0t@9zGfa5Yys5Pey&`}&pQ|c(w9b>m24HxDl^kuNYH6px@WkO9`LiC z106k`9Ri}n_?7yFtzsF*no(k66R2;${*7DwM=JZ@ii(tZI1f?RBJJRQFESm>|lEq$msq zou1hQ6Q0S=>2!CYYlw7sY}hlFLHK&^?-<$UL+yi&%d4_(OOf+MSqW)^7Fv@uCj2n; zc@(}o*J+v6%#aMf7prlj;MkAA+03PYxm^LN_B=9>{y%ez+LUZh`G*ZMxMelO_G2kj zFq>}0hingD&G4ek)SG_Fr|GQ7ZD{+Q(*VZcCSH2+30E;>W?jNMBs_Bht)lyIl{3bA zpy)Ds1>%sor_yy)*u#01+xJ3{{^!j_XmPsPBgqwGN7ABC_B3HoUK1FDL@9mWx|nNQ zX7?1k6NX(fyAlNyV~snW!1?<4DJ^{BAau?IXC6B%n^W_xltboe3LO5myfGrMn83Ns z8=VMI<7|$V0~m9^>b2ogwaV-d6duRGJ0d~ZosCLzxeqs@DeS`jUdLehzHIz&m*n3; zDC%j{neuVDpFo|-j)L{WAB-&z(r`5V={SlveQmt{{Q0BT8UMiDe$Z@*GTqL{d)IR) zO)$oJa0iRWkIuo3hl18IrM;^5ql*46yEQz?KIt+z2`W4HiVp`V#!=iO7)u~pqfVZ^ z$FIdTUimdgpZ7u5bIXe1qs-yJd;vY`^|i)xb^87!$gj962HT2?3KxO&A{vuKyUe@` z;bk5np|Y|`?-XjRS84s_F7*9dHBo*GUEv1Du216KC<;aA6dB}!viN(p;xY>1;YL!; zGw56;M{6CV>`7QkA_Te&8F_Z&WQ4h_t=st1D{BBX#v%hfZ@LXTrSj{?6JN}SYen>i z#nm;Nj53}1(}%`rZ0P#ai%^}!C4XmEFxySKuo zo=(C}$k+<%uFJ-fE=JZH{&D@e6F%0*Sco#rOarbaI;UJDid0@AG)xdW8cLO_I`hF; zPAG2AW>3m+u$wecM@pG`RFzd!WM-fFMM!HFwO_Nl@_CshH9-RY2Qu3-<6sx9LO0YGYvP8(`Kr)SpNzY`Y zf20nh3YPBcf95a$?M;D2bXEfS8`KSsFcg)VisNLL+SdQ}CXMIt$iE!jRJwTVv6sv~ zIvnk|ND-;6n#C(T?0VA%Q(?;wM|a98l6@!qG+jkC%U(Rg{zxO0T>*B9$X660(!;`C zIS3GPX?h(w8pgi6xgG&lh$Ay~I1(A8%)`cxwNtU)>UOl|9ZvQyefESpD*4Y;V-Is= zb*XECGrAq0mdlLdOfjV1h}(n;UzP6EOHnyxpzT>#x1-zyPODen=b0}fVjpau3QO8Z zkH!#P=qvO(!omdlQuG&!Whj4%u24OB))w!R1MMVeVJ60RlxeyVMvg^}B0}EvCzlOO zYd@pHcYM+9P1OHwTo3=p$y%&NgVvEPCHuZJI&J~Tkb84)xls`U8=6-=TBYdkVpMaf zdiG=pPd8SGf@4Dih6>HXPN1bOER-X(?9ATfhEa=^sYC literal 0 HcmV?d00001 diff --git a/public/stylesheets/images/post_image_list.png b/public/stylesheets/images/post_image_list.png new file mode 100644 index 0000000000000000000000000000000000000000..86aab4c79da00af1cc7655a2d53013c233b13ae4 GIT binary patch literal 3091 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 IS$aqQ2l)VA5&!@I literal 0 HcmV?d00001 diff --git a/public/stylesheets/new_user.css b/public/stylesheets/new_user.css index 51bd52547..ce1af9cd0 100644 --- a/public/stylesheets/new_user.css +++ b/public/stylesheets/new_user.css @@ -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;} diff --git a/public/themes/redpenny-master/stylesheets/application.css b/public/themes/redpenny-master/stylesheets/application.css index 93ad4c008..5a9ea3830 100644 --- a/public/themes/redpenny-master/stylesheets/application.css +++ b/public/themes/redpenny-master/stylesheets/application.css @@ -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="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="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;*/ +/*}*/ /*by fanqiang*/ img.avatar3 { width: 50px;