Merge branch 'szzh' of http://repository.trustie.net/xianbo/trustie2 into szzh
This commit is contained in:
commit
e13d157f7f
|
@ -227,6 +227,8 @@ class AttachmentsController < ApplicationController
|
||||||
format.js
|
format.js
|
||||||
elsif @attachment.container.is_a?(Message)
|
elsif @attachment.container.is_a?(Message)
|
||||||
format.html { redirect_to_referer_or new_board_message_path(@attachment.container) }
|
format.html { redirect_to_referer_or new_board_message_path(@attachment.container) }
|
||||||
|
elsif @attachment.container.is_a?(BlogComment)
|
||||||
|
format.html { redirect_to_referer_or user_blog_blog_comment_path(:user_id=>@attachment.container.author.id,:blog_id=>@attachment.container.blog_id,:id=>@attachment.container.id)}
|
||||||
elsif @course.nil?
|
elsif @course.nil?
|
||||||
format.html { redirect_to_referer_or forum_memo_path(@attachment.container.forum, @attachment.container) }
|
format.html { redirect_to_referer_or forum_memo_path(@attachment.container.forum, @attachment.container) }
|
||||||
else
|
else
|
||||||
|
|
|
@ -0,0 +1,121 @@
|
||||||
|
class BlogCommentsController < ApplicationController
|
||||||
|
include ApplicationHelper
|
||||||
|
before_filter :find_user
|
||||||
|
def index
|
||||||
|
|
||||||
|
end
|
||||||
|
def create
|
||||||
|
if User.current.logged?
|
||||||
|
@article = BlogComment.new
|
||||||
|
@article.author = User.current
|
||||||
|
@article.blog_id = params[:blog_id]
|
||||||
|
@article.safe_attributes = params[:blog_comment]
|
||||||
|
if request.post?
|
||||||
|
@article.save_attachments(params[:attachments])
|
||||||
|
if @article.save
|
||||||
|
# 更新kindeditor上传的图片资源所有者
|
||||||
|
# if params[:asset_id]
|
||||||
|
# ids = params[:asset_id].split(',')
|
||||||
|
# update_kindeditor_assets_owner ids,@article.id,OwnerTypeHelper::BLOGCOMMENT
|
||||||
|
# end
|
||||||
|
render_attachment_warning_if_needed(@article)
|
||||||
|
else
|
||||||
|
end
|
||||||
|
redirect_to user_blogs_path(:user_id=>params[:user_id])
|
||||||
|
else
|
||||||
|
respond_to do |format|
|
||||||
|
format.html {
|
||||||
|
render :layout => 'new_base_user'
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
redirect_to signin_path
|
||||||
|
end
|
||||||
|
end
|
||||||
|
def new
|
||||||
|
respond_to do |format|
|
||||||
|
format.html {render :layout=>'new_base_user'}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
def show
|
||||||
|
@article = BlogComment.find(params[:id])
|
||||||
|
respond_to do |format|
|
||||||
|
format.html {render :layout=>'new_base_user'}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
def update
|
||||||
|
@article = BlogComment.find(params[:id])
|
||||||
|
@article.safe_attributes = params[:blog_comment]
|
||||||
|
@article.save_attachments(params[:attachments])
|
||||||
|
if @article.save
|
||||||
|
render_attachment_warning_if_needed(@article)
|
||||||
|
else
|
||||||
|
end
|
||||||
|
redirect_to user_blog_blog_comment_path(:user_id=>params[:user_id],:blog_id=>params[:blog_id],:id=>params[:id])
|
||||||
|
end
|
||||||
|
def destroy
|
||||||
|
@article = BlogComment.find(params[:id])
|
||||||
|
if @article.parent_id.nil? #如果是文章被删,那么跳转到用户博客界面
|
||||||
|
@article.children.delete
|
||||||
|
@article.delete
|
||||||
|
redirect_to user_blogs_path(:user_id=>User.current)
|
||||||
|
else
|
||||||
|
root = @article.root
|
||||||
|
@article.delete
|
||||||
|
redirect_to user_blog_blog_comment_path(:user_id=>root.author_id,:blog_id=>root.blog_id,:id=>root.id)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def edit
|
||||||
|
@article = BlogComment.find(params[:id])
|
||||||
|
respond_to do |format|
|
||||||
|
format.html {render :layout=>'new_base_user'}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def quote
|
||||||
|
@blogComment = BlogComment.find(params[:id])
|
||||||
|
@subject = @blogComment.title
|
||||||
|
@subject = "RE: #{@subject}" unless @subject.starts_with?('RE:')
|
||||||
|
|
||||||
|
@content = "> #{ll(Setting.default_language, :text_user_wrote, @blogComment.author.realname)}\n> "
|
||||||
|
@temp = BlogComment.new
|
||||||
|
@temp.content = "<blockquote>#{ll(Setting.default_language, :text_user_wrote, @blogComment.author.realname)} <br/>#{@blogComment.content.html_safe}</blockquote>".html_safe
|
||||||
|
respond_to do | format|
|
||||||
|
format.js
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
#回复
|
||||||
|
def reply
|
||||||
|
@article = BlogComment.find(params[:id]).root
|
||||||
|
@quote = params[:quote][:quote]
|
||||||
|
@blogComment = BlogComment.new
|
||||||
|
@blogComment.author = User.current
|
||||||
|
@blogComment.blog = Blog.find(params[:blog_id])
|
||||||
|
params[:blog_comment][:sticky] = params[:blog_comment][:sticky] || 0
|
||||||
|
params[:blog_comment][:locked] = params[:blog_comment][:locked] || 0
|
||||||
|
@blogComment.safe_attributes = params[:blog_comment]
|
||||||
|
@blogComment.content = @quote + @blogComment.content
|
||||||
|
@blogComment.title = "RE: #{@article.title}" unless params[:blog_comment][:title]
|
||||||
|
@article.children << @blogComment
|
||||||
|
@user_activity_id = params[:user_activity_id]
|
||||||
|
|
||||||
|
attachments = Attachment.attach_files(@blogComment, params[:attachments])
|
||||||
|
render_attachment_warning_if_needed(@blogComment)
|
||||||
|
#@article.save
|
||||||
|
# redirect_to user_blogs_path(:user_id=>params[:user_id])
|
||||||
|
respond_to do |format|
|
||||||
|
format.html { redirect_to user_blog_blog_comment_path(:user_id=>@article.author_id,:blog_id=>@article.blog_id,:id=>@article)}
|
||||||
|
format.js
|
||||||
|
end
|
||||||
|
rescue Exception => e #如果上面的代码执行发生异常就捕获
|
||||||
|
flash[:notice] = e.message
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
def find_user
|
||||||
|
@user = User.find(params[:user_id])
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,47 @@
|
||||||
|
class BlogsController < ApplicationController
|
||||||
|
before_filter :find_blog,:except => [:index,:create,:new]
|
||||||
|
before_filter :find_user
|
||||||
|
def index
|
||||||
|
@articls = @user.blog.articles
|
||||||
|
@article = BlogComment.new
|
||||||
|
respond_to do |format|
|
||||||
|
format.html {render :layout=>'new_base_user'}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
def create
|
||||||
|
|
||||||
|
end
|
||||||
|
def new
|
||||||
|
|
||||||
|
end
|
||||||
|
def show
|
||||||
|
|
||||||
|
end
|
||||||
|
def update
|
||||||
|
|
||||||
|
end
|
||||||
|
def destory
|
||||||
|
|
||||||
|
end
|
||||||
|
def edit
|
||||||
|
|
||||||
|
end
|
||||||
|
private
|
||||||
|
def find_blog
|
||||||
|
if params[:blog_id]
|
||||||
|
@blog = Blog.find(params[:blog_id])
|
||||||
|
else
|
||||||
|
render_404
|
||||||
|
end
|
||||||
|
if @blog.nil?
|
||||||
|
#如果某个user的blog不存在,那么就创建一条
|
||||||
|
@blog = Blog.create(:name=>User.find(params[:id]).realname ,
|
||||||
|
:description=>'',
|
||||||
|
:author_id=>params[:id])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def find_user
|
||||||
|
@user = User.find(params[:user_id])
|
||||||
|
end
|
||||||
|
end
|
|
@ -31,7 +31,6 @@ class CoursesController < ApplicationController
|
||||||
|
|
||||||
def join
|
def join
|
||||||
if User.current.logged?
|
if User.current.logged?
|
||||||
# if params[:role] == 10
|
|
||||||
cs = CoursesService.new
|
cs = CoursesService.new
|
||||||
@user = User.current
|
@user = User.current
|
||||||
join = cs.join_course params,@user
|
join = cs.join_course params,@user
|
||||||
|
@ -289,14 +288,11 @@ class CoursesController < ApplicationController
|
||||||
def export_course_member_excel
|
def export_course_member_excel
|
||||||
@all_members = student_homework_score(0,0,0,"desc")
|
@all_members = student_homework_score(0,0,0,"desc")
|
||||||
filename="#{@course.teacher.lastname.to_s + @course.teacher.firstname.to_s }_#{@course.name}_#{@course.time.to_s + @course.term}#{l(:excel_member_list)}";
|
filename="#{@course.teacher.lastname.to_s + @course.teacher.firstname.to_s }_#{@course.name}_#{@course.time.to_s + @course.term}#{l(:excel_member_list)}";
|
||||||
# 如果是ie 需要转码
|
|
||||||
if(/trident/.match(request.env["HTTP_USER_AGENT"]) != nil)
|
|
||||||
filename= URI::encode(filename)
|
|
||||||
end
|
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.xls {
|
format.xls {
|
||||||
send_data(member_to_xls(@all_members,@course.course_groups), :type => "text/excel;charset=utf-8; header=present",
|
send_data(member_to_xls(@all_members,@course.course_groups), :type => "text/excel;charset=utf-8; header=present",
|
||||||
:filename => "#{filename}.xls")
|
:filename => filename_for_content_disposition("#{filename}.xls"))
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -42,8 +42,8 @@ class GanttsController < ApplicationController
|
||||||
|
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.html { render :action => "show", :layout => 'base_projects' }#by young
|
format.html { render :action => "show", :layout => 'base_projects' }#by young
|
||||||
format.png { send_data(@gantt.to_image, :disposition => 'inline', :type => 'image/png', :filename => "#{basename}.png") } if @gantt.respond_to?('to_image')
|
format.png { send_data(@gantt.to_image, :disposition => 'inline', :type => 'image/png', :filename => filename_for_content_disposition("#{basename}.png")) } if @gantt.respond_to?('to_image')
|
||||||
format.pdf { send_data(@gantt.to_pdf, :type => 'application/pdf', :filename => "#{basename}.pdf") }
|
format.pdf { send_data(@gantt.to_pdf, :type => 'application/pdf', :filename => filename_for_content_disposition("#{basename}.pdf") ) }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -33,7 +33,7 @@ class HomeworkAttachController < ApplicationController
|
||||||
format.js
|
format.js
|
||||||
format.xls {
|
format.xls {
|
||||||
send_data(homework_to_xls(@all_homework_list), :type => "text/excel;charset=utf-8; header=present",
|
send_data(homework_to_xls(@all_homework_list), :type => "text/excel;charset=utf-8; header=present",
|
||||||
:filename => "#{@course.teacher.lastname.to_s + @course.teacher.firstname}_#{@course.name}_#{@course.time.to_s + @course.term}_#{@bid.name}#{l(:excel_homework_list)}(#{l(:excel_not_rated)}).xls")
|
:filename => filename_for_content_disposition("#{@course.teacher.lastname.to_s + @course.teacher.firstname}_#{@course.name}_#{@course.time.to_s + @course.term}_#{@bid.name}#{l(:excel_homework_list)}(#{l(:excel_not_rated)}).xls") )
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -66,7 +66,7 @@ class HomeworkAttachController < ApplicationController
|
||||||
format.js
|
format.js
|
||||||
format.xls {
|
format.xls {
|
||||||
send_data(homework_to_xls(all_homework_list), :type => "text/excel;charset=utf-8; header=present",
|
send_data(homework_to_xls(all_homework_list), :type => "text/excel;charset=utf-8; header=present",
|
||||||
:filename => "#{@course.teacher.lastname.to_s + @course.teacher.firstname}_#{@course.name}_#{@course.time.to_s + @course.term}_#{@bid.name}#{l(:excel_homework_list)}(#{l(:excel_been_rated)}).xls")
|
:filename => filename_for_content_disposition("#{@course.teacher.lastname.to_s + @course.teacher.firstname}_#{@course.name}_#{@course.time.to_s + @course.term}_#{@bid.name}#{l(:excel_homework_list)}(#{l(:excel_been_rated)}).xls") )
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -101,7 +101,7 @@ class HomeworkAttachController < ApplicationController
|
||||||
format.js
|
format.js
|
||||||
format.xls {
|
format.xls {
|
||||||
send_data(homework_to_xls(all_homework_list), :type => "text/excel;charset=utf-8; header=present",
|
send_data(homework_to_xls(all_homework_list), :type => "text/excel;charset=utf-8; header=present",
|
||||||
:filename => "#{@course.teacher.lastname.to_s + @course.teacher.firstname}_#{@course.name}_#{@course.time.to_s + @course.term}_#{@bid.name}#{l(:excel_homework_list)}.xls")
|
:filename => filename_for_content_disposition("#{@course.teacher.lastname.to_s + @course.teacher.firstname}_#{@course.name}_#{@course.time.to_s + @course.term}_#{@bid.name}#{l(:excel_homework_list)}.xls") )
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -151,7 +151,7 @@ class IssuesController < ApplicationController
|
||||||
format.atom { render :template => 'journals/index', :layout => false, :content_type => 'application/atom+xml' }
|
format.atom { render :template => 'journals/index', :layout => false, :content_type => 'application/atom+xml' }
|
||||||
format.pdf {
|
format.pdf {
|
||||||
pdf = issue_to_pdf(@issue, :journals => @journals)
|
pdf = issue_to_pdf(@issue, :journals => @journals)
|
||||||
send_data(pdf, :type => 'application/pdf', :filename => "#{@project.identifier}-#{@issue.id}.pdf")
|
send_data(pdf, :type => 'application/pdf', :filename => filename_for_content_disposition("#{@project.identifier}-#{@issue.id}.pdf") )
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -413,7 +413,7 @@ class PollController < ApplicationController
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.xls {
|
format.xls {
|
||||||
send_data(poll_to_xls(poll_questions), :type => "text/excel;charset=utf-8; header=present",
|
send_data(poll_to_xls(poll_questions), :type => "text/excel;charset=utf-8; header=present",
|
||||||
:filename => "#{@poll.polls_name}.xls")
|
:filename => filename_for_content_disposition("#{@poll.polls_name}.xls") )
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -84,7 +84,7 @@ class StoresController < ApplicationController
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.xls {
|
format.xls {
|
||||||
send_data(homework_to_xls(attachments), :type => "text/excel;charset=utf-8; header=present",
|
send_data(homework_to_xls(attachments), :type => "text/excel;charset=utf-8; header=present",
|
||||||
:filename => "#{l(:label_file_lost_list)}.xls")
|
:filename => filename_for_content_disposition("#{l(:label_file_lost_list)}.xls") )
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -82,14 +82,14 @@ class WikiController < ApplicationController
|
||||||
@content = @page.content_for_version(params[:version])
|
@content = @page.content_for_version(params[:version])
|
||||||
if User.current.allowed_to?(:export_wiki_pages, @project)
|
if User.current.allowed_to?(:export_wiki_pages, @project)
|
||||||
if params[:format] == 'pdf'
|
if params[:format] == 'pdf'
|
||||||
send_data(wiki_page_to_pdf(@page, @project), :type => 'application/pdf', :filename => "#{@page.title}.pdf")
|
send_data(wiki_page_to_pdf(@page, @project), :type => 'application/pdf', :filename => filename_for_content_disposition("#{@page.title}.pdf") )
|
||||||
return
|
return
|
||||||
elsif params[:format] == 'html'
|
elsif params[:format] == 'html'
|
||||||
export = render_to_string :action => 'export', :layout => false
|
export = render_to_string :action => 'export', :layout => false
|
||||||
send_data(export, :type => 'text/html', :filename => "#{@page.title}.html")
|
send_data(export, :type => 'text/html', :filename => filename_for_content_disposition("#{@page.title}.html"))
|
||||||
return
|
return
|
||||||
elsif params[:format] == 'txt'
|
elsif params[:format] == 'txt'
|
||||||
send_data(@content.text, :type => 'text/plain', :filename => "#{@page.title}.txt")
|
send_data(@content.text, :type => 'text/plain', :filename => filename_for_content_disposition("#{@page.title}.txt") )
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -286,7 +286,7 @@ class WikiController < ApplicationController
|
||||||
send_data(export, :type => 'text/html', :filename => "wiki.html")
|
send_data(export, :type => 'text/html', :filename => "wiki.html")
|
||||||
}
|
}
|
||||||
format.pdf {
|
format.pdf {
|
||||||
send_data(wiki_pages_to_pdf(@pages, @project), :type => 'application/pdf', :filename => "#{@project.identifier}.pdf")
|
send_data(wiki_pages_to_pdf(@pages, @project), :type => 'application/pdf', :filename => filename_for_content_disposition("#{@project.identifier}.pdf") )
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
module BlogCommentsHelper
|
||||||
|
end
|
|
@ -0,0 +1,2 @@
|
||||||
|
module BlogsHelper
|
||||||
|
end
|
|
@ -7,4 +7,5 @@ module OwnerTypeHelper
|
||||||
BID = 6
|
BID = 6
|
||||||
JOURNALSFORMESSAGE = 7
|
JOURNALSFORMESSAGE = 7
|
||||||
HOMEWORKCOMMON = 8
|
HOMEWORKCOMMON = 8
|
||||||
|
BLOGCOMMENT=9
|
||||||
end
|
end
|
|
@ -0,0 +1,16 @@
|
||||||
|
class Blog < ActiveRecord::Base
|
||||||
|
# attr_accessible :title, :body
|
||||||
|
include Redmine::SafeAttributes
|
||||||
|
belongs_to :user
|
||||||
|
has_many :articles, :class_name => 'BlogComment', :conditions => "#{BlogComment.table_name}.parent_id IS NULL ", :order => "#{BlogComment.table_name}.created_on DESC"
|
||||||
|
has_many :blog_comments, :dependent => :destroy, :order => "#{BlogComment.table_name}.created_on DESC"
|
||||||
|
belongs_to :last_comment, :class_name => 'BlogComment', :foreign_key => :last_comment_id
|
||||||
|
acts_as_tree :dependent => :nullify
|
||||||
|
#acts_as_list :scope => '(user_id = #{user_id} AND parent_id #{user_id ? = "#{parent_id}" : "IS NULL"})'
|
||||||
|
acts_as_watchable
|
||||||
|
|
||||||
|
validates :name, presence: true, length: {maximum: 30}
|
||||||
|
validates :description, length: {maximum: 255}
|
||||||
|
|
||||||
|
safe_attributes 'name', 'description'
|
||||||
|
end
|
|
@ -0,0 +1,24 @@
|
||||||
|
class BlogComment < ActiveRecord::Base
|
||||||
|
# attr_accessible :title, :body
|
||||||
|
include Redmine::SafeAttributes
|
||||||
|
belongs_to :blog
|
||||||
|
belongs_to :author, :class_name => 'User', :foreign_key => 'author_id'
|
||||||
|
|
||||||
|
acts_as_tree :counter_cache => :comments_count, :order => "#{BlogComment.table_name}.sticky desc ,#{BlogComment.table_name}.created_on ASC"
|
||||||
|
acts_as_attachable
|
||||||
|
belongs_to :last_reply, :class_name => 'BlogComment', :foreign_key => 'last_comment_id'
|
||||||
|
|
||||||
|
acts_as_watchable
|
||||||
|
|
||||||
|
validates_presence_of :title, :content
|
||||||
|
validates_length_of :title, :maximum => 255
|
||||||
|
#validate :cannot_reply_to_locked_comment, :on => :create
|
||||||
|
safe_attributes 'title', 'content',"sticky", "locked"
|
||||||
|
|
||||||
|
def deleted_attach_able_by? user
|
||||||
|
(user && user.logged? && (self.author == user) ) || user.admin?
|
||||||
|
end
|
||||||
|
|
||||||
|
def project
|
||||||
|
end
|
||||||
|
end
|
|
@ -93,6 +93,7 @@ class User < Principal
|
||||||
has_many :changesets, :dependent => :nullify
|
has_many :changesets, :dependent => :nullify
|
||||||
has_one :preference, :dependent => :destroy, :class_name => 'UserPreference'
|
has_one :preference, :dependent => :destroy, :class_name => 'UserPreference'
|
||||||
has_one :rss_token, :class_name => 'Token', :conditions => "action='feeds'"
|
has_one :rss_token, :class_name => 'Token', :conditions => "action='feeds'"
|
||||||
|
has_one :blog, :class_name => 'Blog', :foreign_key => "author_id"
|
||||||
has_one :api_token, :class_name => 'Token', :conditions => "action='api'"
|
has_one :api_token, :class_name => 'Token', :conditions => "action='api'"
|
||||||
belongs_to :auth_source
|
belongs_to :auth_source
|
||||||
belongs_to :ucourse, :class_name => 'Course', :foreign_key => :id #huang
|
belongs_to :ucourse, :class_name => 'Course', :foreign_key => :id #huang
|
||||||
|
@ -255,6 +256,18 @@ class User < Principal
|
||||||
# count = self.journals_for_messages(:conditions => ["status=? and is_readed = ? " ,1, 0]).count
|
# count = self.journals_for_messages(:conditions => ["status=? and is_readed = ? " ,1, 0]).count
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def blog
|
||||||
|
@blog = Blog.where("author_id = #{self.id}").all[0]
|
||||||
|
if @blog.nil?
|
||||||
|
#如果某个user的blog不存在,那么就创建一条,并且跳转
|
||||||
|
@blog = Blog.create(:name=>(User.find(self.id).realname),
|
||||||
|
:description=>'',
|
||||||
|
:author_id=>self.id)
|
||||||
|
@blog.save
|
||||||
|
end
|
||||||
|
@blog
|
||||||
|
end
|
||||||
|
|
||||||
# 查询指派给我的缺陷记录
|
# 查询指派给我的缺陷记录
|
||||||
def count_new_issue_assign_to
|
def count_new_issue_assign_to
|
||||||
self.issue_assigns
|
self.issue_assigns
|
||||||
|
|
|
@ -326,26 +326,26 @@ class CoursesService
|
||||||
@state = 1
|
@state = 1
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
if params[:course_password] == course.password
|
if params[:course_password] == course.password
|
||||||
if params[:role] == "10"
|
if params[:role] == "10"
|
||||||
members = []
|
members = []
|
||||||
members << Member.new(:role_ids => [10], :user_id => current_user.id)
|
members << Member.new(:role_ids => [10], :user_id => current_user.id)
|
||||||
course.members << members
|
course.members << members
|
||||||
StudentsForCourse.create(:student_id => current_user.id, :course_id => params[:object_id])
|
StudentsForCourse.create(:student_id => current_user.id, :course_id => params[:object_id])
|
||||||
@state = 0
|
@state = 0
|
||||||
|
else
|
||||||
|
#如果已经发送过消息了,那么就要给个提示
|
||||||
|
if CourseMessage.where("course_message_type = 'JoinCourseRequest' and user_id = #{course.tea_id} and content = #{params[:role]} and course_message_id = #{User.current.id} and course_id = #{course.id} and status = 0").count != 0
|
||||||
|
@state = 7
|
||||||
|
else
|
||||||
|
Mailer.run.join_course_request(course, User.current, params[:role])
|
||||||
|
CourseMessage.create(:user_id => course.tea_id, :course_id => course.id, :viewed => false,:content=> params[:role],:course_message_id=>User.current.id,:course_message_type=>'JoinCourseRequest',:status=>0)
|
||||||
|
@state = 6
|
||||||
|
end
|
||||||
|
end
|
||||||
else
|
else
|
||||||
#如果已经发送过消息了,那么就要给个提示
|
@state = 1
|
||||||
if CourseMessage.where("course_message_type = 'JoinCourseRequest' and user_id = #{course.tea_id} and content = #{params[:role]} and course_message_id = #{User.current.id} and course_id = #{course.id} and status = 0").count != 0
|
|
||||||
@state = 7
|
|
||||||
else
|
|
||||||
Mailer.run.join_course_request(course, User.current, params[:role])
|
|
||||||
CourseMessage.create(:user_id => course.tea_id, :course_id => course.id, :viewed => false,:content=> params[:role],:course_message_id=>User.current.id,:course_message_type=>'JoinCourseRequest',:status=>0)
|
|
||||||
@state = 6
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
else
|
|
||||||
@state = 1
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
<div class="mt10 fl" style="width: 600px">
|
||||||
|
<% 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 => 45 -%>
|
||||||
|
<a href="javascript:void(0);" class="fl FilesName02"> (<%= number_to_human_size attachment.filesize , :precision => 0 %>)</a>
|
||||||
|
<% if options[:deletable] %>
|
||||||
|
<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 %>
|
||||||
|
<% 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>
|
|
@ -0,0 +1,78 @@
|
||||||
|
<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(' '.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(' '.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>
|
||||||
|
<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 => 'sub_btn' %>
|
||||||
|
<a href="javascript:void(0);" onclick="_file.click();" class="AnnexBtn fl mr15">上传附件</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 => container),
|
||||||
|
: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>
|
||||||
|
|
|
@ -0,0 +1,53 @@
|
||||||
|
<%= javascript_include_tag "/assets/kindeditor/kindeditor",'/assets/kindeditor/pasteimg' ,'blog' %>
|
||||||
|
<div class="resources mt10">
|
||||||
|
<div id="new_course_topic">
|
||||||
|
<div class="homepagePostBrief c_grey">
|
||||||
|
<div>
|
||||||
|
<input type="text" value="<%= article.title%>" name="blog_comment[title]" id="message_subject" class="InputBox w713" style="width: 720px !important;" maxlength="255" onkeyup="regexTopicSubject();" placeholder="发布文章,请先输入文章标题" " />
|
||||||
|
<p id="subjectmsg"></p>
|
||||||
|
</div>
|
||||||
|
<div id="topic_editor" style="display: block;">
|
||||||
|
<%if User.current.id == user.id%>
|
||||||
|
<div class="mt10">
|
||||||
|
<%= f.check_box :sticky%>
|
||||||
|
<%= label_tag 'message_sticky', l(:label_board_sticky) %>
|
||||||
|
<%= f.check_box :locked%>
|
||||||
|
<%= label_tag 'message_locked', l(:label_board_locked) %>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
<div class="mt10">
|
||||||
|
<div id="message_quote" class="wiki" style="width: 92%;word-break: break-all;word-wrap: break-word;margin-left: 40px;"></div>
|
||||||
|
<%= text_area :quote,:quote,:style => 'display:none' %>
|
||||||
|
<%= hidden_field_tag :asset_id,params[:asset_id],:required => false,:style => 'display:none' %>
|
||||||
|
|
||||||
|
<%= f.kindeditor :content,:editor_id => 'message_content_editor',
|
||||||
|
:owner_id => article.nil? ? 0: article.id,
|
||||||
|
:owner_type => OwnerTypeHelper::BLOGCOMMENT,
|
||||||
|
:width => '100%',
|
||||||
|
:height => 300,
|
||||||
|
:minHeight=>300,
|
||||||
|
:class => 'talk_text fl',
|
||||||
|
:input_html => { :id => 'message_content',
|
||||||
|
:class => 'talk_text fl',
|
||||||
|
:maxlength => 5000 }%>
|
||||||
|
<div class="cl"></div>
|
||||||
|
<p id="message_content_span"></p>
|
||||||
|
</div>
|
||||||
|
<div class="cl"></div>
|
||||||
|
<div class="mt10">
|
||||||
|
<div class="fl" id="topic_attachments">
|
||||||
|
<%= render :partial => 'blog_comments/blog_attachments', :locals => {:container => article} %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="cl"></div>
|
||||||
|
<div class="mt5">
|
||||||
|
<a href="javascript:void(0);" class="BlueCirBtnMini fr" onclick="submit_article();">确定</a>
|
||||||
|
<span class="fr mr10 mt3">或</span>
|
||||||
|
<a href="<%= user_blog_blog_comment_path(:user_id=>article.author.id,:blog_id=>article.blog_id,:id=>article.id)%>" class="fr mr10 mt3" >取消</a>
|
||||||
|
</div>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,62 @@
|
||||||
|
<%= javascript_include_tag "/assets/kindeditor/kindeditor",'/assets/kindeditor/pasteimg' ,'blog' %>
|
||||||
|
<div class="resources mt10">
|
||||||
|
<div id="new_course_topic">
|
||||||
|
<div class="homepagePostBrief c_grey">
|
||||||
|
<div>
|
||||||
|
<input type="text" name="blog_comment[title]" id="message_subject" class="InputBox w713" style="width: 720px !important;" maxlength="255" onfocus="$('#topic_editor').show()" onkeyup="regexTopicSubject();" placeholder="发布文章,请先输入文章标题" " >
|
||||||
|
<p id="subjectmsg"></p>
|
||||||
|
</div>
|
||||||
|
<div id="topic_editor" style="display: none;">
|
||||||
|
<%if User.current.id == user.id%>
|
||||||
|
<div class="mt10">
|
||||||
|
<%= f.check_box :sticky%>
|
||||||
|
<%= label_tag 'message_sticky', l(:label_board_sticky) %>
|
||||||
|
<%= f.check_box :locked%>
|
||||||
|
<%= label_tag 'message_locked', l(:label_board_locked) %>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
<div class="mt10">
|
||||||
|
<div id="message_quote" class="wiki" style="width: 92%;word-break: break-all;word-wrap: break-word;margin-left: 40px;"></div>
|
||||||
|
<%= text_area :quote,:quote,:style => 'display:none' %>
|
||||||
|
<%= hidden_field_tag :asset_id,params[:asset_id],:required => false,:style => 'display:none' %>
|
||||||
|
|
||||||
|
<%= f.kindeditor :content, :editor_id => 'message_content_editor',
|
||||||
|
:owner_id => article.nil? ? 0: article.id,
|
||||||
|
:owner_type => OwnerTypeHelper::BLOGCOMMENT,
|
||||||
|
:width => '100%',
|
||||||
|
:height => 300,
|
||||||
|
:minHeight=>300,
|
||||||
|
:class => 'talk_text fl',
|
||||||
|
:input_html => { :id => 'message_content',
|
||||||
|
:class => 'talk_text fl',
|
||||||
|
:maxlength => 5000 }%>
|
||||||
|
<div class="cl"></div>
|
||||||
|
<p id="message_content_span"></p>
|
||||||
|
</div>
|
||||||
|
<div class="cl"></div>
|
||||||
|
<div class="mt10">
|
||||||
|
<div class="fl" id="topic_attachments">
|
||||||
|
<%= render :partial => 'blog_comments/blog_attachments', :locals => {:container => article} %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="cl"></div>
|
||||||
|
<div class="mt5">
|
||||||
|
<a href="javascript:void(0);" class="BlueCirBtnMini fr" onclick="submit_article();">确定</a>
|
||||||
|
<span class="fr mr10 mt3">或</span>
|
||||||
|
<a href="javascript:void(0);" class="fr mr10 mt3" onclick="reset_article();">取消</a>
|
||||||
|
</div>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<%#= render :partial => 'course_new_topic', :locals => {:f => f, :topic => @message} %>
|
||||||
|
<!--<li>
|
||||||
|
<div class="ml55 fl" nhname="toolbar_container"></div>
|
||||||
|
<a href="javascript:void(0);" nhname="cancelbtn" class="grey_btn fr ml10"><%#= l(:button_cancel) %></a>
|
||||||
|
<a href="javascript:void(0);" nhname="submitbtn" class="blue_btn fr " style="margin-left: 55px">
|
||||||
|
<%#= l(:button_submit)%>
|
||||||
|
</a>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</li>-->
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,35 @@
|
||||||
|
<%= javascript_include_tag "/assets/kindeditor/kindeditor",'/assets/kindeditor/pasteimg' %>
|
||||||
|
<li>
|
||||||
|
<div style="display: none ;" class="fl"><label><span class="c_red">*</span> <%= l(:field_subject) %> :</label></div>
|
||||||
|
<div style="display: none;"><%= f.text_field :title, { size: 60, id: "message_subject",:class=>"talk_input w585 fl" }.merge({ hidden: "hidden"}) %></div>
|
||||||
|
|
||||||
|
<div class="cl"></div>
|
||||||
|
</li>
|
||||||
|
<li class="ml60 mb5">
|
||||||
|
<div class="cl"></div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div id="message_quote" class="wiki" style="width: 92%;word-break: break-all;word-wrap: break-word;margin-left: 40px;"></div>
|
||||||
|
<!--<label class="fl" >
|
||||||
|
<span class="c_red">*</span>
|
||||||
|
<%#= l(:field_description) %> :
|
||||||
|
</label>-->
|
||||||
|
<%= text_area :quote,:quote,:style => 'display:none' %>
|
||||||
|
<%= hidden_field_tag :asset_id,params[:asset_id],:required => false,:style => 'display:none' %>
|
||||||
|
<input type="hidden" name="blog_comment[title]" value="RE:<%= article.title%>">
|
||||||
|
<input type="hidden" name="blog_comment[sticky]" value="0">
|
||||||
|
<input type="hidden" name="blog_comment[locked]" value="0">
|
||||||
|
<%= f.kindeditor :content, :editor_id => 'message_content_editor',
|
||||||
|
:width => '99%',
|
||||||
|
:height => 100,
|
||||||
|
:minHeight=>100,
|
||||||
|
:input_html => { :id => 'message_content',
|
||||||
|
:class => 'talk_text fl',
|
||||||
|
:maxlength => 5000 }%>
|
||||||
|
<div class="cl"></div>
|
||||||
|
<p id="message_content_span"></p>
|
||||||
|
</li>
|
||||||
|
<div class="cl"></div>
|
||||||
|
<li >
|
||||||
|
<div class="cl"></div>
|
||||||
|
</li>
|
|
@ -0,0 +1,31 @@
|
||||||
|
<style type="text/css">
|
||||||
|
/*回复框*/
|
||||||
|
.ReplyToMessageInputContainer .ke-toolbar{display:none;width:400px;border:none;background:none;padding:0px 0px;}
|
||||||
|
.ReplyToMessageInputContainer .ke-toolbar-icon{line-height:26px;font-size:14px;padding-left:26px;}
|
||||||
|
.ReplyToMessageInputContainer .ke-toolbar-icon-url{background-image:url( /images/public_icon.png )}
|
||||||
|
.ReplyToMessageInputContainer .ke-outline{padding:0px 0px;line-height:26px;font-size:14px;}
|
||||||
|
.ReplyToMessageInputContainer .ke-icon-emoticons{background-position:0px -671px;width:50px;height:26px;}
|
||||||
|
.ReplyToMessageInputContainer .ke-icon-emoticons:hover{background-position:-79px -671px;width:50px;height:26px;}
|
||||||
|
.ReplyToMessageInputContainer .ke-outline{border:none;}
|
||||||
|
.ReplyToMessageInputContainer .ke-inline-block{display: none;}
|
||||||
|
.ReplyToMessageInputContainer .ke-container{float:left;}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<div class="ReplyToMessageContainer borderBottomNone"id="reply_to_message_<%= reply.id%>">
|
||||||
|
<div class="homepagePostReplyPortrait mr15 imageFuzzy" id="reply_image_<%= reply.id%>"><%= link_to image_tag(url_to_avatar(User.current), :width => "33", :height => "33"), user_path(User.current), :alt => "用户头像" %></div>
|
||||||
|
<div class="ReplyToMessageInputContainer mb10">
|
||||||
|
<div nhname='new_message_<%= reply.id%>'>
|
||||||
|
<%= form_for @blog_comment, :as => :reply, :url => {:controller => 'blog_comments',:action => 'reply', :id => @blogComment.id}, :html => {:multipart => true, :id => 'new_form'} do |f| %>
|
||||||
|
<input type="hidden" name="quote[quote]" id="quote_quote">
|
||||||
|
<input type="hidden" name="blog_comment[title]" id="reply_subject">
|
||||||
|
<textarea placeholder="有问题或有建议,请直接给我留言吧!" style="display: none" nhname='new_message_textarea_<%= reply.id%>' name="blog_comment[content]"></textarea>
|
||||||
|
<div nhname='toolbar_container_<%= reply.id%>' style="float:left; margin-left: 5px; padding-top:3px;"></div>
|
||||||
|
<a id="new_message_submit_btn_<%= reply.id%>" href="javascript:void(0)" class="blue_n_btn fr" style="display:none;margin-top:6px;">发送</a>
|
||||||
|
<div class="cl"></div>
|
||||||
|
<p nhname='contentmsg_<%= reply.id%>'></p>
|
||||||
|
<% end%>
|
||||||
|
</div>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div>
|
|
@ -0,0 +1,6 @@
|
||||||
|
<% if User.current.logged? && User.current.id == @user.id %>
|
||||||
|
<%= form_for @article, :url =>{:controller=>'blog_comments',:action => 'update',:user_id=>@user.id , :blog_id => @article.id},:method=>'PUT',
|
||||||
|
:html => {:nhname=>'form',:multipart => true, :id => 'message-form'} do |f| %>
|
||||||
|
<%= render :partial => 'blog_comments/edit', :locals => {:f => f, :article => @article, :edit_mode => true, :user => @user} %>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
|
@ -0,0 +1,10 @@
|
||||||
|
if($("#reply_message_<%= @blogComment.id%>").length > 0) {
|
||||||
|
$("#reply_message_<%= @blogComment.id%>").replaceWith("<%= escape_javascript(render :partial => 'simple_ke_reply_form', :locals => {:reply => @blogComment,:temp =>@temp,:subject =>@subject}) %>");
|
||||||
|
$(function(){
|
||||||
|
$('#reply_subject').val("<%= raw escape_javascript(@subject) %>");
|
||||||
|
$('#quote_quote').val("<%= raw escape_javascript(@temp.content.html_safe) %>");
|
||||||
|
init_activity_KindEditor_data(<%= @blogComment.id%>,null,"85%");
|
||||||
|
});
|
||||||
|
}else if($("#reply_to_message_<%= @blogComment.id%>").length >0) {
|
||||||
|
$("#reply_to_message_<%= @blogComment.id%>").replaceWith("<p id='reply_message_<%= @blogComment.id%>'></p>");
|
||||||
|
}
|
|
@ -0,0 +1,2 @@
|
||||||
|
$("#user_activity_<%= @user_activity_id%>").replaceWith("<%= escape_javascript(render :partial => 'blogs/article', :locals => {:activity => @article,:user_activity_id =>@user_activity_id,:first_user_activity =>@first_user_activity,:page => @page}) %>");
|
||||||
|
init_activity_KindEditor_data(<%= @user_activity_id%>,"","87%");
|
|
@ -0,0 +1,175 @@
|
||||||
|
<%= javascript_include_tag "/assets/kindeditor/kindeditor",'/assets/kindeditor/pasteimg',"init_activity_KindEditor",'blog' %>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function(){
|
||||||
|
$("#RSide").removeAttr("id");
|
||||||
|
$("#Container").css("width","1000px");
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
function expand_reply(container,btnid){
|
||||||
|
var target = $(container).children();
|
||||||
|
var btn = $(btnid);
|
||||||
|
if(btn.data('init')=='0'){
|
||||||
|
btn.data('init',1);
|
||||||
|
btn.html('收起回复');
|
||||||
|
target.show();
|
||||||
|
}else{
|
||||||
|
btn.data('init',0);
|
||||||
|
btn.html('展开更多');
|
||||||
|
target.hide();
|
||||||
|
target.eq(0).show();
|
||||||
|
target.eq(1).show();
|
||||||
|
target.eq(2).show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$(function() {
|
||||||
|
init_activity_KindEditor_data(<%= @article.id%>,null,"85%");
|
||||||
|
showNormalImage('message_description_<%= @article.id %>');
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<div class="postRightContainer ml10" onmouseover="$('#message_setting_<%= @article.id%>').show();" onmouseout="$('#message_setting_<%= @article.id%>').hide();">
|
||||||
|
<div class="postThemeContainer">
|
||||||
|
<div class="postDetailPortrait">
|
||||||
|
<%= link_to image_tag(url_to_avatar(@article.author),:width=>50,:height => 50,:alt=>'图像' ),user_path(@article.author) %>
|
||||||
|
</div>
|
||||||
|
<div class="postThemeWrap">
|
||||||
|
<% if @article.author.id == User.current.id%>
|
||||||
|
<div class="homepagePostSetting" id="message_setting_<%= @article.id%>" style="display: none">
|
||||||
|
<ul>
|
||||||
|
<li class="homepagePostSettingIcon">
|
||||||
|
<ul class="homepagePostSettiongText">
|
||||||
|
<li>
|
||||||
|
<%= link_to(
|
||||||
|
l(:button_edit),
|
||||||
|
{:action => 'edit', :id => @article.id},
|
||||||
|
:class => 'postOptionLink'
|
||||||
|
) if User.current && User.current.id == @article.author.id %>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<%= link_to(
|
||||||
|
l(:button_delete),
|
||||||
|
{:action => 'destroy', :id => @article.id},
|
||||||
|
:method => :delete,
|
||||||
|
:data => {:confirm => l(:text_are_you_sure)},
|
||||||
|
:class => 'postOptionLink'
|
||||||
|
) if User.current && User.current.id == @article.author.id %>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<%end%>
|
||||||
|
<div class="postDetailTitle fl">
|
||||||
|
<a href="javascript:void(0);" class="f14 linkGrey4 fb" style="overflow:hidden;">主题: <%= @article.title%></a>
|
||||||
|
</div>
|
||||||
|
<div class="cl"></div>
|
||||||
|
|
||||||
|
<div class="postDetailCreater">
|
||||||
|
<% if @article.try(:author).try(:realname) == ' ' %>
|
||||||
|
<%= link_to @article.try(:author), user_path(@article.author,:host=>Setting.host_user), :class => "linkBlue2", :target=> "_blank" %>
|
||||||
|
<% else %>
|
||||||
|
<%= link_to @article.try(:author).try(:realname), user_path(@article.author,:host=>Setting.host_user), :class => "linkBlue2", :target=> "_blank" %>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
<div class="postDetailDate mb5"><%= format_time( @article.created_on)%></div>
|
||||||
|
<div class="cl"></div>
|
||||||
|
<div class="memo-content upload_img break_word" id="message_description_<%= @article.id %>" style="word-break: break-all; word-wrap:break-word;margin-bottom: 0px !important;" >
|
||||||
|
<%= @article.content.html_safe%>
|
||||||
|
</div>
|
||||||
|
<div class="cl"></div>
|
||||||
|
<div class=" fl" style="width: 600px">
|
||||||
|
<%#= link_to_attachments_course @topic, :author => false %>
|
||||||
|
<% if @article.attachments.any?%>
|
||||||
|
<% options = {:author => true, :deletable => false} %>
|
||||||
|
<%= render :partial => 'blog_comments/attachments_links', :locals => {:attachments => @article.attachments, :options => options, :is_float => true} %>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div>
|
||||||
|
<div class="cl"></div>
|
||||||
|
<% count=0 %>
|
||||||
|
<% if @article.parent %>
|
||||||
|
<% count=@article.parent.children.count%>
|
||||||
|
<% else %>
|
||||||
|
<% count=@article.children.count%>
|
||||||
|
<% end %>
|
||||||
|
<div class="homepagePostReply">
|
||||||
|
<% unless count == 0 %>
|
||||||
|
<div class="homepagePostReplyBanner">
|
||||||
|
<div class="homepagePostReplyBannerCount">回复(<%=count %>)</div>
|
||||||
|
<div class="homepagePostReplyBannerTime"></div>
|
||||||
|
<!-- <div class="homepagePostReplyBannerMore">
|
||||||
|
<%# if @reply_count > 2%>
|
||||||
|
<a href="javascript:void(0);" class="replyGrey" id="reply_btn_<%#= @topic.id%>" onclick="expand_reply('#reply_div_<%#= @topic.id %>','#reply_btn_<%#= @topic.id%>')" data-count="<%#= @reply_count %>" data-init="0" >点击展开更多回复</a>
|
||||||
|
<%# end %>
|
||||||
|
</div>-->
|
||||||
|
</div>
|
||||||
|
<div class="" id="reply_div_<%= @article.id %>">
|
||||||
|
<%@article.children.reorder('created_on desc').each_with_index do |reply,i| %>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function(){
|
||||||
|
showNormalImage('reply_message_description_<%= reply.id %>');
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<div class="homepagePostReplyContainer" onmouseover="$('#reply_edit_menu_<%= reply.id%>').show();" onmouseout="$('#reply_edit_menu_<%= reply.id%>').hide();">
|
||||||
|
<div class="homepagePostReplyPortrait">
|
||||||
|
<%= link_to image_tag(url_to_avatar(reply.author), :width => 33,:height => 33), user_path(reply.author) %>
|
||||||
|
</div>
|
||||||
|
<div class="homepagePostReplyDes">
|
||||||
|
<div class="homepagePostReplyPublisher">
|
||||||
|
<% if reply.try(:author).try(:realname) == ' ' %>
|
||||||
|
<%= link_to reply.try(:author), user_path(reply.author_id,:host=>Setting.host_user), :class => "newsBlue mr10 f14" %>
|
||||||
|
<% else %>
|
||||||
|
<%= link_to reply.try(:author).try(:realname), user_path(reply.author_id,:host=>Setting.host_user), :class => "newsBlue mr10 f14" %>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
<div class="homepagePostReplyContent upload_img break_word" id="reply_message_description_<%= reply.id %>">
|
||||||
|
<%= reply.content.html_safe%>
|
||||||
|
</div>
|
||||||
|
<div style="margin-top: -7px; margin-bottom: 5px">
|
||||||
|
<%= format_time(reply.created_on) %>
|
||||||
|
<div class="fr" id="reply_edit_menu_<%= reply.id%>" style="display: none">
|
||||||
|
<%= link_to(
|
||||||
|
l(:button_reply),
|
||||||
|
{:controller => 'blog_comments',:action => 'quote',:user_id=>reply.author_id,:blog_id=>reply.blog_id, :id => reply.id},
|
||||||
|
:remote => true,
|
||||||
|
:method => 'get',
|
||||||
|
:class => 'fr newsBlue',
|
||||||
|
:title => l(:button_reply)) if !@article.locked? && User.current.logged? %>
|
||||||
|
<%= link_to(
|
||||||
|
l(:button_delete),
|
||||||
|
{:controller => 'blog_comments',:action => 'destroy', :id => reply.id},
|
||||||
|
:method => :delete,
|
||||||
|
:class => 'fr newsGrey mr10',
|
||||||
|
:data => {:confirm => l(:text_are_you_sure)},
|
||||||
|
:title => l(:button_delete)
|
||||||
|
) if reply.author.id == User.current.id %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<p id="reply_message_<%= reply.id%>"></p>
|
||||||
|
</div>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<% end %>
|
||||||
|
<div class="cl"></div>
|
||||||
|
<% if !@article.locked? && User.current.logged?%>
|
||||||
|
<div class="talkWrapMsg" nhname="about_talk_reply">
|
||||||
|
<em class="talkWrapArrow"></em>
|
||||||
|
<div class="cl"></div>
|
||||||
|
<div class="talkConIpt ml5 mb10" id="reply<%= @article.id %>">
|
||||||
|
<%= form_for :blog_comment, :url => {:action => 'reply',:controller => 'blog_comments',:user_id=>@article.author.id,:blog_id=>@article.blog_id, :id => @article.id}, :html => {:multipart => true, :id => 'message_form'} do |f| %>
|
||||||
|
<%= render :partial => 'blog_comments/reply_form', :locals => {:f => f,:user=>@user,:article=>@article} %>
|
||||||
|
<%= link_to l(:button_cancel), "javascript:void(0)", :onclick => 'canel_message_replay();', :class => " grey_btn fr c_white mt10 mr5" %>
|
||||||
|
<%= link_to l(:button_submit), "javascript:void(0)", :onclick => 'submit_message_replay();', :class => "blue_btn fr c_white mt10", :style => "margin-right: 5px;" %>
|
||||||
|
<% end %>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,145 @@
|
||||||
|
<div class="resources mt10" id="user_activity_<%= user_activity_id%>">
|
||||||
|
<div class="homepagePostBrief">
|
||||||
|
<div class="homepagePostPortrait">
|
||||||
|
<%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_path(activity.author_id,:host=>Setting.host_user), :alt => "用户头像" %>
|
||||||
|
</div>
|
||||||
|
<div class="homepagePostDes">
|
||||||
|
<div class="homepagePostTo break_word mt-4">
|
||||||
|
<% if activity.try(:author).try(:realname) == ' ' %>
|
||||||
|
<%= link_to activity.try(:author), user_path(activity.author_id,:host=>Setting.host_user), :class => "newsBlue mr15" %>
|
||||||
|
<% else %>
|
||||||
|
<%= link_to activity.try(:author).try(:realname), user_path(activity.author_id,:host=>Setting.host_user), :class => "newsBlue mr15" %>
|
||||||
|
<% end %>
|
||||||
|
TO
|
||||||
|
<%= link_to activity.blog.name+" | 博客", user_blogs_path(:user_id=>activity.author_id,:host=>Setting.host_user), :class => "newsBlue ml15 mr5"%>
|
||||||
|
</div>
|
||||||
|
<div class="homepagePostTitle hidden m_w530 fl">
|
||||||
|
<% if activity.parent_id.nil? %> <!--+"(帖子标题)"-->
|
||||||
|
<%= link_to activity.title.to_s.html_safe, user_blog_blog_comment_path(:user_id=>activity.author_id, :blog_id=>activity.blog.id,:id=>activity), :class=> "postGrey" %>
|
||||||
|
<% else %>
|
||||||
|
<%= link_to activity.title.subject.to_s.html_safe, user_blog_blog_comment_path(:user_id=>activity.author_id, :blog_id=>activity.blog.id,:id=>activity), :class=> "postGrey"%>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
<% if activity.sticky == 1%>
|
||||||
|
<span class="sticky_btn_cir ml10">置顶</span>
|
||||||
|
<% end%>
|
||||||
|
<% if activity.locked%>
|
||||||
|
<span class="locked_btn_cir ml10 fl" title="已锁定"> </span>
|
||||||
|
<% end%>
|
||||||
|
<div class="cl"></div>
|
||||||
|
<div class="homepagePostDate">
|
||||||
|
发帖时间:<%= format_time(activity.created_on) %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="homepagePostIntro break_word upload_img list_style" id="activity_description_<%= user_activity_id%>">
|
||||||
|
<% if activity.parent_id.nil? %>
|
||||||
|
<%= activity.content.to_s.html_safe%>
|
||||||
|
<% else %>
|
||||||
|
<%= activity.parent.content.to_s.html_safe%>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
<div class="cl"></div>
|
||||||
|
<div class=" fl" style="width: 600px">
|
||||||
|
<% if activity.attachments.any?%>
|
||||||
|
<% options = {:author => true, :deletable => false } %>
|
||||||
|
<%= render :partial => 'blog_comments/attachments_links', :locals => {:attachments => activity.attachments, :options => options, :is_float => true} %>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
<div class="homepagePostSetting" id="act-<%= user_activity_id %>" style="visibility: hidden">
|
||||||
|
<ul>
|
||||||
|
<li class="homepagePostSettingIcon">
|
||||||
|
<ul class="homepagePostSettiongText">
|
||||||
|
<li><a href="javascript:void(0);" class="postOptionLink">编辑</a></li>
|
||||||
|
<li><a href="javascript:void(0);" class="postOptionLink">复制</a></li>
|
||||||
|
<li><a href="javascript:void(0);" class="postOptionLink">删除</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div>
|
||||||
|
<% count=0 %>
|
||||||
|
<% if activity.parent %>
|
||||||
|
<% count=activity.parent.children.count%>
|
||||||
|
<% else %>
|
||||||
|
<% count=activity.children.count%>
|
||||||
|
<% end %>
|
||||||
|
<div class="homepagePostReply">
|
||||||
|
<div class="topBorder" style="display: <%= count<=0 && !activity.locked ? '': 'none' %>"></div>
|
||||||
|
<div class="homepagePostReplyBanner" style="display: <%= count>0 ? '': 'none' %>">
|
||||||
|
<div class="homepagePostReplyBannerCount" onclick="expand_reply_input('#reply_input_<%= user_activity_id %>');">回复(
|
||||||
|
<%= count %>
|
||||||
|
)</div>
|
||||||
|
<div class="homepagePostReplyBannerTime"><%#=format_date(activity.updated_on)%></div>
|
||||||
|
<%if count > 3 %>
|
||||||
|
<div class="homepagePostReplyBannerMore">
|
||||||
|
<a id="reply_btn_<%=user_activity_id%>" onclick="expand_reply('#reply_div_<%= user_activity_id %> li','#reply_btn_<%=user_activity_id%>')" data-count="<%= count %>" data-init="0" class=" replyGrey" href="javascript:void(0)" value="show_help" >
|
||||||
|
展开更多
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<% activity= activity.parent ? activity.parent : activity%>
|
||||||
|
<% replies_all_i = 0 %>
|
||||||
|
<% if count > 0 %>
|
||||||
|
<div class="" id="reply_div_<%= user_activity_id %>">
|
||||||
|
<ul>
|
||||||
|
<% activity.children.reorder("created_on desc").each do |reply|%>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function(){
|
||||||
|
showNormalImage('reply_content_<%= reply.id %>');
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<% replies_all_i=replies_all_i+1 %>
|
||||||
|
<li class="homepagePostReplyContainer" nhname="reply_rec" style="display:<%= replies_all_i>3 ? 'none' : '' %>">
|
||||||
|
<div class="homepagePostReplyPortrait">
|
||||||
|
<%= link_to image_tag(url_to_avatar(reply.author), :width => "33", :height => "33"), user_path(reply.author_id,:host=>Setting.host_user), :alt => "用户头像" %>
|
||||||
|
</div>
|
||||||
|
<div class="homepagePostReplyDes">
|
||||||
|
<div class="homepagePostReplyPublisher mt-4">
|
||||||
|
<% if reply.try(:author).try(:realname) == ' ' %>
|
||||||
|
<%= link_to reply.try(:author), user_path(reply.author_id,:host=>Setting.host_user), :class => "newsBlue mr10 f14" %>
|
||||||
|
<% else %>
|
||||||
|
<%= link_to reply.try(:author).try(:realname), user_path(reply.author_id,:host=>Setting.host_user), :class => "newsBlue mr10 f14" %>
|
||||||
|
<% end %>
|
||||||
|
<%= format_time(reply.created_on) %>
|
||||||
|
</div>
|
||||||
|
<div class="homepagePostReplyContent break_word list_style upload_img" id="reply_content_<%= reply.id %>">
|
||||||
|
<%= reply.content.html_safe %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</li>
|
||||||
|
<% end %>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<% if !activity.locked? %>
|
||||||
|
<div class="homepagePostReplyContainer borderBottomNone minHeight48">
|
||||||
|
<div class="homepagePostReplyPortrait mr15 imageFuzzy" id="reply_image_<%= user_activity_id%>"><%= link_to image_tag(url_to_avatar(User.current), :width => "33", :height => "33"), user_path(activity.author_id), :alt => "用户头像" %></div>
|
||||||
|
<div class="homepagePostReplyInputContainer mb10">
|
||||||
|
<div nhname='new_message_<%= user_activity_id%>' style="display:none;">
|
||||||
|
<%= form_for('new_form',:url => {:controller=>'blog_comments',:action => 'reply', :id => activity.id, :blog_id => activity.blog.id, :user_id => activity.author_id},:method => "post",:remote=>true) do |f|%>
|
||||||
|
<input type="hidden" name="quote[quote]" value="">
|
||||||
|
<input type="hidden" name="blog_comment[sticky]" value="0">
|
||||||
|
<input type="hidden" name="blog_comment[locked]" value="0">
|
||||||
|
<input type="hidden" name="blog_comment[title]" value="RE:<%= activity.title%>">
|
||||||
|
<input type="hidden" name="user_activity_id" value="<%=user_activity_id%>">
|
||||||
|
<textarea placeholder="有问题或有建议,请直接给我留言吧!" style="display: none" nhname='new_message_textarea_<%= user_activity_id%>' name="blog_comment[content]"></textarea>
|
||||||
|
<div nhname='toolbar_container_<%= user_activity_id%>' style="float:left; margin-left: 5px; padding-top:3px;"></div>
|
||||||
|
<a id="new_message_submit_btn_<%= user_activity_id%>" href="javascript:void(0)" class="blue_n_btn fr" style="display:none;margin-top:6px;">发送</a>
|
||||||
|
<div class="cl"></div>
|
||||||
|
<p nhname='contentmsg_<%= user_activity_id%>'></p>
|
||||||
|
<% end%>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,101 @@
|
||||||
|
<%= javascript_include_tag "/assets/kindeditor/kindeditor", '/assets/kindeditor/pasteimg', "init_activity_KindEditor" %>
|
||||||
|
<style type="text/css">
|
||||||
|
/*回复框*/
|
||||||
|
.homepagePostReplyInputContainer .ke-toolbar {display: none; width: 400px; border: none; background: none; padding: 0px 0px;}
|
||||||
|
.homepagePostReplyInputContainer .ke-toolbar-icon {line-height: 26px; font-size: 14px; padding-left: 26px;}
|
||||||
|
.homepagePostReplyInputContainer .ke-toolbar-icon-url {background-image: url(/images/public_icon.png)}
|
||||||
|
.homepagePostReplyInputContainer .ke-outline {padding: 0px 0px; line-height: 26px; font-size: 14px;}
|
||||||
|
.homepagePostReplyInputContainer .ke-icon-emoticons {background-position: 0px -671px; width: 50px; height: 26px;}
|
||||||
|
.homepagePostReplyInputContainer .ke-icon-emoticons:hover {background-position: -79px -671px; width: 50px; height: 26px;}
|
||||||
|
.homepagePostReplyInputContainer .ke-outline {border: none;}
|
||||||
|
.homepagePostReplyInputContainer .ke-inline-block {display: none;}
|
||||||
|
.homepagePostReplyInputContainer .ke-container {float: left;}
|
||||||
|
</style>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function(){
|
||||||
|
$("#RSide").removeAttr("id");
|
||||||
|
$("#Container").css("width","1000px");
|
||||||
|
});
|
||||||
|
function reset_article(){
|
||||||
|
$("#message_subject").val("");
|
||||||
|
$("#subjectmsg").text("");
|
||||||
|
document.getElementById("blog_comment_sticky").checked=false;
|
||||||
|
document.getElementById("blog_comment_locked").checked=false;
|
||||||
|
$("#topic_attachments").html("<%= escape_javascript(render :partial => 'blog_comments/blog_attachments', :locals => {:container => BlogComment.new})%>");
|
||||||
|
message_content_editor.html("");
|
||||||
|
$("#topic_editor").slideToggle();
|
||||||
|
}
|
||||||
|
<%# if @is_new%>
|
||||||
|
// $(function(){
|
||||||
|
// $("#message_subject").focus();
|
||||||
|
// });
|
||||||
|
<%#end%>
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div class="homepageRight mt0 ml10">
|
||||||
|
<div class="homepageRightBanner">
|
||||||
|
<div class="NewsBannerName">
|
||||||
|
<%= @user.name%>的博客
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<% if User.current.logged? && User.current.id == @user.id %>
|
||||||
|
<%= labelled_form_for @article, :url =>{:controller=>'blog_comments',:action => 'create',:user_id=>user.id , :blog_id => blog.id},
|
||||||
|
:html => {:nhname=>'form',:multipart => true, :id => 'message-form'} do |f| %>
|
||||||
|
<%= render :partial => 'blog_comments/new', :locals => {:f => f, :article => @article, :edit_mode => false, :user => @user} %>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<% if topics%>
|
||||||
|
<% topics.each do |topic| %>
|
||||||
|
<script>
|
||||||
|
function expand_reply(container, btnid) {
|
||||||
|
var target = $(container);
|
||||||
|
var btn = $(btnid);
|
||||||
|
if (btn.data('init') == '0') {
|
||||||
|
btn.data('init', 1);
|
||||||
|
btn.html('收起回复');
|
||||||
|
target.show();
|
||||||
|
} else {
|
||||||
|
btn.data('init', 0);
|
||||||
|
btn.html('展开更多');
|
||||||
|
target.hide();
|
||||||
|
target.eq(0).show();
|
||||||
|
target.eq(1).show();
|
||||||
|
target.eq(2).show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function expand_reply_input(id) {
|
||||||
|
$(id).toggle();
|
||||||
|
}
|
||||||
|
|
||||||
|
$(function () {
|
||||||
|
init_activity_KindEditor_data(<%= topic.id%>, null, "87%");
|
||||||
|
showNormalImage('activity_description_<%= topic.id %>');
|
||||||
|
/*var description_images=$("div#activity_description_<%#= topic.id %>").find("img");
|
||||||
|
if (description_images.length>0) {
|
||||||
|
for (var i=0; i<description_images.length; i++){
|
||||||
|
var image=$(description_images[i]);
|
||||||
|
var element=$("<a></a>").attr("href",image.attr('src'));
|
||||||
|
image.wrap(element);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$('#activity_description_<%#= topic.id %> a').colorbox({rel:'nofollow', close: "关闭", returnFocus: false});*/
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<% if topic %>
|
||||||
|
<%= render :partial => 'blogs/article', :locals => {:activity => topic, :user_activity_id => topic.id} %>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<%# if topics.count == 10 %>
|
||||||
|
<!--<div id="show_more_course_topic" class="loadMore mt10 f_grey">展开更多<%#= link_to "", boards_topic_path(@board, :course_id => @board.course.id ,:page => page), :id => "more_topic_link", :remote => "true", :class => "none" %></div>-->
|
||||||
|
<%# end %>
|
||||||
|
<% end%>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
$("#show_more_course_topic").mouseover(function () {
|
||||||
|
$("#more_topic_link").click();
|
||||||
|
});
|
||||||
|
</script>
|
|
@ -0,0 +1,187 @@
|
||||||
|
<style type="text/css">
|
||||||
|
div.talk_new .ke-container{margin-left:2px;}
|
||||||
|
.break_word {width:100%;}
|
||||||
|
</style>
|
||||||
|
<script type="text/javascript">
|
||||||
|
//头部导航
|
||||||
|
var menuids=["TopUserNav"] //Enter id(s) of SuckerTree UL menus, separated by commas
|
||||||
|
function buildsubmenus(){
|
||||||
|
for (var i=0; i<menuids.length; i++){
|
||||||
|
var div = document.getElementById(menuids[i]);
|
||||||
|
if(div == undefined)continue;
|
||||||
|
var ultags=div.getElementsByTagName("ul");
|
||||||
|
for (var t=0; t<ultags.length; t++){
|
||||||
|
ultags[t].parentNode.getElementsByTagName("a")[0].className="subfolderstyle";
|
||||||
|
ultags[t].parentNode.onmouseover=function(){
|
||||||
|
this.getElementsByTagName("ul")[0].style.display="block";
|
||||||
|
}
|
||||||
|
ultags[t].parentNode.onmouseout=function(){
|
||||||
|
this.getElementsByTagName("ul")[0].style.display="none";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (window.addEventListener)
|
||||||
|
window.addEventListener("load", buildsubmenus, false)
|
||||||
|
else if (window.attachEvent)
|
||||||
|
window.attachEvent("onload", buildsubmenus)
|
||||||
|
</script>
|
||||||
|
<%= javascript_include_tag "/assets/kindeditor/kindeditor",'/assets/kindeditor/pasteimg' %>
|
||||||
|
<%#= javascript_include_tag "/assets/kindeditor/kindeditor-min" %>
|
||||||
|
|
||||||
|
|
||||||
|
<%= render :partial => 'blogs/article_list', :locals => {:blog=>@user.blog,:topics => @user.blog.articles.reorder("#{BlogComment.table_name}.sticky desc,#{BlogComment.table_name}.created_on desc"), :page => 0, :user => @user} %>
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript">//侧导航
|
||||||
|
|
||||||
|
function nh_check_field(params){
|
||||||
|
var result=true;
|
||||||
|
if(params.subject!=undefined){
|
||||||
|
if($.trim(params.subject.val()) == ""){
|
||||||
|
params.subjectmsg.html('主题不能为空');
|
||||||
|
params.subjectmsg.css({color:'#ff0000'});
|
||||||
|
result=false;
|
||||||
|
}else{
|
||||||
|
params.subjectmsg.html('填写正确');
|
||||||
|
params.subjectmsg.css({color:'#008000'});
|
||||||
|
}
|
||||||
|
params.subjectmsg.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(params.content!=undefined){
|
||||||
|
if(params.content.isEmpty()){
|
||||||
|
result=false;
|
||||||
|
}
|
||||||
|
if(params.content.html()!=params.textarea.html() || params.issubmit==true){
|
||||||
|
params.textarea.html(params.content.html());
|
||||||
|
params.content.sync(); //用上面那句ie11提交到服务器居然木有值
|
||||||
|
if(params.content.isEmpty()){
|
||||||
|
params.contentmsg.html('内容不能为空');
|
||||||
|
params.contentmsg.css({color:'#ff0000'});
|
||||||
|
}else{
|
||||||
|
params.contentmsg.html('填写正确');
|
||||||
|
params.contentmsg.css({color:'#008000'});
|
||||||
|
}
|
||||||
|
params.contentmsg.show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
function nh_init_board(params){
|
||||||
|
//发帖/编辑/回复按钮的click
|
||||||
|
params.showbtn.click(function(){
|
||||||
|
params.textarea.removeAttr('placeholder');
|
||||||
|
if(params.textarea.data('init') == undefined){
|
||||||
|
//初始化编辑器
|
||||||
|
var editor = params.kindutil.create(params.textarea, {
|
||||||
|
// allowPreviewEmoticons : false,
|
||||||
|
// allowImageUpload : false,
|
||||||
|
autoHeightMode : true,
|
||||||
|
resizeType : 1,minWidth:"1px",width:"560px",height:"150px",
|
||||||
|
allowFileManager:true,uploadJson:"/kindeditor/upload",
|
||||||
|
fileManagerJson:"/kindeditor/filemanager",
|
||||||
|
afterChange:function(){//按键事件
|
||||||
|
nh_check_field({content:this,contentmsg:params.contentmsg,textarea:params.textarea});
|
||||||
|
// var edit = this.edit;
|
||||||
|
// var body = edit.doc.body;
|
||||||
|
// edit.iframe.height(minHeight);
|
||||||
|
// this.resize(null, Math.max((params.kindutil.IE ? body.scrollHeight : body.offsetHeight) + 30, minHeight));
|
||||||
|
},
|
||||||
|
afterCreate:function(){
|
||||||
|
this.loadPlugin("autoheight");
|
||||||
|
var userAgent = navigator.userAgent.toLowerCase();
|
||||||
|
if(/trident/.test(userAgent)){
|
||||||
|
$("div.talk_new .ke-container").css({'margin-left':'0px'});
|
||||||
|
}
|
||||||
|
// var toolbar = $("div[class='ke-toolbar']",params.about_talk);
|
||||||
|
// $(".ke-outline>.ke-toolbar-icon",toolbar).append('表情');
|
||||||
|
// params.toolbar_container.append(toolbar);
|
||||||
|
}
|
||||||
|
}).loadPlugin('paste');
|
||||||
|
|
||||||
|
//主题输入框按键事件
|
||||||
|
params.inputsubject.keyup(function(){
|
||||||
|
nh_check_field({subject:params.inputsubject,subjectmsg:params.subjectmsg});
|
||||||
|
})
|
||||||
|
//表单提交
|
||||||
|
params.form.submit(function(){
|
||||||
|
var is_checked = nh_check_field({
|
||||||
|
issubmit:true,
|
||||||
|
subject:params.inputsubject,
|
||||||
|
subjectmsg:params.subjectmsg,
|
||||||
|
content:editor,
|
||||||
|
contentmsg:params.contentmsg,
|
||||||
|
textarea:params.textarea
|
||||||
|
});
|
||||||
|
if(is_checked){
|
||||||
|
//return true 居然不提交 fuck your sister
|
||||||
|
$(this)[0].submit();
|
||||||
|
// return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
//提交按钮click
|
||||||
|
params.submitbtn.click(function(){
|
||||||
|
params.form.submit();
|
||||||
|
});
|
||||||
|
//取消按钮click
|
||||||
|
params.cancelbtn.click(function(){
|
||||||
|
params.about_talk.toggle();//显示/隐藏编辑区
|
||||||
|
if(params.about_talk.is(':hidden')){//隐藏时reset表单数据
|
||||||
|
params.form[0].reset();
|
||||||
|
if(params.type=='reply'){
|
||||||
|
params.textarea.empty();
|
||||||
|
}else{
|
||||||
|
params.textarea.html(params.init_content_val.val());
|
||||||
|
}
|
||||||
|
var str = params.textarea.html();
|
||||||
|
str=str.replace(new RegExp(/</g),'<');
|
||||||
|
str=str.replace(new RegExp(/>/g),'>');
|
||||||
|
editor.html(str);
|
||||||
|
params.subjectmsg.hide();
|
||||||
|
params.contentmsg.hide();
|
||||||
|
if(params.quote_show!=undefined)params.quote_show.empty();
|
||||||
|
if(params.quote_input!=undefined)params.quote_input.empty();
|
||||||
|
}else{
|
||||||
|
if(params.type=='reply'){
|
||||||
|
params.textarea.show();
|
||||||
|
params.textarea.focus();
|
||||||
|
params.textarea.hide();
|
||||||
|
//params.jumphref.attr('href','#'+params.form.attr('id'));
|
||||||
|
//params.jumphref[0].click();
|
||||||
|
}else{
|
||||||
|
params.textarea.show();
|
||||||
|
params.textarea.focus();
|
||||||
|
params.textarea.hide();
|
||||||
|
// params.inputsubject.focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
params.textarea.data('init','1');//标记为已经初始化
|
||||||
|
}
|
||||||
|
params.cancelbtn.click();//显示/隐藏编辑区
|
||||||
|
});
|
||||||
|
if(params.type == 'reply'){
|
||||||
|
params.showbtn_child.click(function(){
|
||||||
|
if(params.textarea.data('init') == undefined){
|
||||||
|
params.showbtn.click();
|
||||||
|
}else{
|
||||||
|
params.cancelbtn.click();
|
||||||
|
if(params.about_talk.is(':hidden')){
|
||||||
|
params.cancelbtn.click();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var parent_topic_id = $(this).data('topic-id');
|
||||||
|
if(parent_topic_id!=undefined)$("input[name='parent_topic']",params.form).val(parent_topic_id);
|
||||||
|
var ref_str = params.get_ref_str_call($(this));
|
||||||
|
params.quote_show.html(ref_str);
|
||||||
|
params.quote_input.html(ref_str);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
|
@ -71,6 +71,14 @@
|
||||||
<textarea class="homepageSignatureTextarea none" placeholder="请编辑签名" id="user_brief_introduction_edit" onblur="edit_user_introduction('<%= edit_brief_introduction_user_path(@user.id)%>');"><%= @user.user_extensions.brief_introduction %></textarea>
|
<textarea class="homepageSignatureTextarea none" placeholder="请编辑签名" id="user_brief_introduction_edit" onblur="edit_user_introduction('<%= edit_brief_introduction_user_path(@user.id)%>');"><%= @user.user_extensions.brief_introduction %></textarea>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
|
<div class="homepageImageBlock">
|
||||||
|
<div>
|
||||||
|
<%= link_to(@user.blog.blog_comments.where("#{BlogComment.table_name}.parent_id is null").count,
|
||||||
|
{:controller => 'blogs', :action => 'index', :user_id => @user.id }, :class => 'homepageImageNumber',:id => 'user_score') %>
|
||||||
|
</div>
|
||||||
|
<div class="homepageImageText">博客</div>
|
||||||
|
</div>
|
||||||
|
<div class="homepageVerDiv"></div>
|
||||||
<div class="homepageImageBlock">
|
<div class="homepageImageBlock">
|
||||||
<div id="watch_user_number_div">
|
<div id="watch_user_number_div">
|
||||||
<%= link_to User.watched_by(@user.id).count.to_s, {:controller=>"users", :action=>"user_watchlist",:id=>@user.id},:class=>"homepageImageNumber" %>
|
<%= link_to User.watched_by(@user.id).count.to_s, {:controller=>"users", :action=>"user_watchlist",:id=>@user.id},:class=>"homepageImageNumber" %>
|
||||||
|
@ -84,14 +92,8 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="homepageImageText">粉丝</div>
|
<div class="homepageImageText">粉丝</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="homepageVerDiv"></div>
|
|
||||||
<div class="homepageImageBlock">
|
|
||||||
<div>
|
|
||||||
<%= link_to(format("%.2f" ,get_option_number(@user,1).total_score ).to_i,
|
|
||||||
{:controller => 'users', :action => 'show_new_score', :remote => true, :id => @user.id }, :class => 'homepageImageNumber',:id => 'user_score') %>
|
|
||||||
</div>
|
|
||||||
<div class="homepageImageText">积分</div>
|
|
||||||
</div>
|
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<div id="attachment_<%= attachment.id%>">
|
<div id="attachment_<%= attachment.id%>">
|
||||||
<%= link_to_short_attachment attachment, :class => 'link_file_a fl', :download => true -%>
|
<%= link_to_short_attachment attachment, :class => 'link_file_a fl', :download => true -%>
|
||||||
<%= link_to(' '.html_safe, attachment_path(attachment, :format => 'js'), :method => 'delete', :remote => true, :title => '删除', :class => 'remove-upload fl', :confirm => l(:text_are_you_sure)) if attachment.id && User.current == attachment.author %>
|
<%= link_to(' '.html_safe, attachment_path(attachment, :format => 'js'), :method => 'delete', :remote => true, :title => '删除', :class => 'remove-upload fl', :confirm => l(:text_are_you_sure)) if attachment.id && User.current == attachment.author %>
|
||||||
<span class="ml5 fl">(<%= number_to_human_size attachment.filesize %>)</span>
|
<span class="postAttSize fl ">(<%= number_to_human_size attachment.filesize %>)</span>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
</div>
|
</div>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
|
|
|
@ -52,6 +52,10 @@
|
||||||
<div id="intro_content_show_<%= user_activity_id%>" class="fr" style="display:none;"><a href="javascript:void(0);" class="linkBlue">[展开]</a></div>
|
<div id="intro_content_show_<%= user_activity_id%>" class="fr" style="display:none;"><a href="javascript:void(0);" class="linkBlue">[展开]</a></div>
|
||||||
<div id="intro_content_hide_<%= user_activity_id%>" class="fr" style="display:none;"><a href="javascript:void(0);" class="linkBlue">[收起]</a></div>
|
<div id="intro_content_hide_<%= user_activity_id%>" class="fr" style="display:none;"><a href="javascript:void(0);" class="linkBlue">[收起]</a></div>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
|
<div>
|
||||||
|
<%= render :partial => 'student_work/work_attachments', :locals => {:attachments => activity.attachments} %>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div>
|
||||||
<%# if is_teacher%>
|
<%# if is_teacher%>
|
||||||
<!--<div class="homepagePostSetting">
|
<!--<div class="homepagePostSetting">
|
||||||
<ul>
|
<ul>
|
||||||
|
|
|
@ -48,19 +48,26 @@
|
||||||
<% if activity.attachments.any? %>
|
<% if activity.attachments.any? %>
|
||||||
<% activity.attachments.each do |attachment| %>
|
<% activity.attachments.each do |attachment| %>
|
||||||
<div class="break_word">
|
<div class="break_word">
|
||||||
|
<span class="fl">
|
||||||
<span title="<%= attachment.filename %>" id="attachment_">
|
<span title="<%= attachment.filename %>" id="attachment_">
|
||||||
<%= link_to_short_attachment attachment,:length=> 58, :class => 'homepagePostFileAtt newsBlue', :download => true -%>
|
<%= link_to_short_attachment attachment,:length=> 58, :class => 'link_file_a fl newsBlue', :download => true -%>
|
||||||
</span>
|
</span>
|
||||||
<% if attachment.is_text? %>
|
<% if attachment.is_text? %>
|
||||||
<%= link_to image_tag('magnifier.png'),
|
<%= link_to image_tag('magnifier.png'),
|
||||||
:controller => 'attachments',
|
:controller => 'attachments',
|
||||||
:action => 'show',
|
:action => 'show',
|
||||||
:id => attachment,
|
:id => attachment,
|
||||||
|
:class => 'fl',
|
||||||
:filename => attachment.filename %>
|
:filename => attachment.filename %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
</span>
|
||||||
<span class="postAttSize">(
|
<span class="postAttSize">(
|
||||||
<%= number_to_human_size attachment.filesize %>)
|
<%= number_to_human_size attachment.filesize %>)
|
||||||
</span>
|
</span>
|
||||||
|
<span class="author" title="<%= attachment.author%>">
|
||||||
|
<%= link_to h(truncate(attachment.author.name, length: 10, omission: '...')),user_path(attachment.author),:class => "c_orange" %>,
|
||||||
|
<%= format_time(attachment.created_on) %>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
|
@ -392,6 +392,15 @@ RedmineApp::Application.routes.draw do
|
||||||
get 'store_selected_resource'
|
get 'store_selected_resource'
|
||||||
# end
|
# end
|
||||||
end
|
end
|
||||||
|
#resources :blogs
|
||||||
|
resources :blogs do
|
||||||
|
resources :blog_comments do
|
||||||
|
member do
|
||||||
|
post 'reply'
|
||||||
|
get 'quote'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
match 'users/:id/user_newfeedback', :to => 'users#user_newfeedback', :via => :get, :as => "feedback"
|
match 'users/:id/user_newfeedback', :to => 'users#user_newfeedback', :via => :get, :as => "feedback"
|
||||||
match 'users/:id/user_projects', :to => 'users#user_projects', :via => :get
|
match 'users/:id/user_projects', :to => 'users#user_projects', :via => :get
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
class CreateBlogs < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
create_table :blogs do |t|
|
||||||
|
t.string "name", :default => "", :null => false
|
||||||
|
t.text "description"
|
||||||
|
t.integer "position", :default => 1
|
||||||
|
t.integer "article_count", :default => 0, :null => false
|
||||||
|
t.integer "comments_count", :default => 0, :null => false
|
||||||
|
t.integer "last_comments_id"
|
||||||
|
t.integer "parent_id"
|
||||||
|
t.integer "author_id"
|
||||||
|
t.timestamps
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,19 @@
|
||||||
|
class CreateBlogComments < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
create_table :blog_comments do |t|
|
||||||
|
t.integer "blog_id", :null => false
|
||||||
|
t.integer "parent_id"
|
||||||
|
t.string "title", :default => "", :null => false
|
||||||
|
t.text "content"
|
||||||
|
t.integer "author_id"
|
||||||
|
t.integer "comments_count", :default => 0, :null => false
|
||||||
|
t.integer "last_comment_id"
|
||||||
|
t.datetime "created_on", :null => false
|
||||||
|
t.datetime "updated_on", :null => false
|
||||||
|
t.boolean "locked", :default => false
|
||||||
|
t.integer "sticky", :default => 0
|
||||||
|
t.integer "reply_id"
|
||||||
|
t.timestamps
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
75
db/schema.rb
75
db/schema.rb
|
@ -11,7 +11,7 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended to check this file into your version control system.
|
# It's strongly recommended to check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(:version => 20151020021234) do
|
ActiveRecord::Schema.define(:version => 20151022071804) do
|
||||||
|
|
||||||
create_table "activities", :force => true do |t|
|
create_table "activities", :force => true do |t|
|
||||||
t.integer "act_id", :null => false
|
t.integer "act_id", :null => false
|
||||||
|
@ -144,6 +144,36 @@ ActiveRecord::Schema.define(:version => 20151020021234) do
|
||||||
t.integer "open_anonymous_evaluation", :default => 1
|
t.integer "open_anonymous_evaluation", :default => 1
|
||||||
end
|
end
|
||||||
|
|
||||||
|
create_table "blog_comments", :force => true do |t|
|
||||||
|
t.integer "blog_id", :null => false
|
||||||
|
t.integer "parent_id"
|
||||||
|
t.string "title", :default => "", :null => false
|
||||||
|
t.text "content"
|
||||||
|
t.integer "author_id"
|
||||||
|
t.integer "comments_count", :default => 0, :null => false
|
||||||
|
t.integer "last_comment_id"
|
||||||
|
t.datetime "created_on", :null => false
|
||||||
|
t.datetime "updated_on", :null => false
|
||||||
|
t.boolean "locked", :default => false
|
||||||
|
t.integer "sticky", :default => 0
|
||||||
|
t.integer "reply_id"
|
||||||
|
t.datetime "created_at", :null => false
|
||||||
|
t.datetime "updated_at", :null => false
|
||||||
|
end
|
||||||
|
|
||||||
|
create_table "blogs", :force => true do |t|
|
||||||
|
t.string "name", :default => "", :null => false
|
||||||
|
t.text "description"
|
||||||
|
t.integer "position", :default => 1
|
||||||
|
t.integer "article_count", :default => 0, :null => false
|
||||||
|
t.integer "comments_count", :default => 0, :null => false
|
||||||
|
t.integer "last_comments_id"
|
||||||
|
t.integer "parent_id"
|
||||||
|
t.integer "author_id"
|
||||||
|
t.datetime "created_at", :null => false
|
||||||
|
t.datetime "updated_at", :null => false
|
||||||
|
end
|
||||||
|
|
||||||
create_table "boards", :force => true do |t|
|
create_table "boards", :force => true do |t|
|
||||||
t.integer "project_id", :null => false
|
t.integer "project_id", :null => false
|
||||||
t.string "name", :default => "", :null => false
|
t.string "name", :default => "", :null => false
|
||||||
|
@ -497,26 +527,23 @@ ActiveRecord::Schema.define(:version => 20151020021234) do
|
||||||
add_index "documents", ["created_on"], :name => "index_documents_on_created_on"
|
add_index "documents", ["created_on"], :name => "index_documents_on_created_on"
|
||||||
add_index "documents", ["project_id"], :name => "documents_project_id"
|
add_index "documents", ["project_id"], :name => "documents_project_id"
|
||||||
|
|
||||||
create_table "dts", :primary_key => "Num", :force => true do |t|
|
create_table "dts", :force => true do |t|
|
||||||
t.string "Defect", :limit => 50
|
t.string "IPLineCode"
|
||||||
t.string "Category", :limit => 50
|
|
||||||
t.string "File"
|
|
||||||
t.string "Method"
|
|
||||||
t.string "Module", :limit => 20
|
|
||||||
t.string "Variable", :limit => 50
|
|
||||||
t.integer "StartLine"
|
|
||||||
t.integer "IPLine"
|
|
||||||
t.string "IPLineCode", :limit => 200
|
|
||||||
t.string "Judge", :limit => 15
|
|
||||||
t.integer "Review", :limit => 1
|
|
||||||
t.string "Description"
|
t.string "Description"
|
||||||
t.text "PreConditions", :limit => 2147483647
|
t.string "Num"
|
||||||
t.text "TraceInfo", :limit => 2147483647
|
t.string "Variable"
|
||||||
t.text "Code", :limit => 2147483647
|
t.string "TraceInfo"
|
||||||
|
t.string "Method"
|
||||||
|
t.string "File"
|
||||||
|
t.string "IPLine"
|
||||||
|
t.string "Review"
|
||||||
|
t.string "Category"
|
||||||
|
t.string "Defect"
|
||||||
|
t.string "PreConditions"
|
||||||
|
t.string "StartLine"
|
||||||
t.integer "project_id"
|
t.integer "project_id"
|
||||||
t.datetime "created_at"
|
t.datetime "created_at", :null => false
|
||||||
t.datetime "updated_at"
|
t.datetime "updated_at", :null => false
|
||||||
t.integer "id", :null => false
|
|
||||||
end
|
end
|
||||||
|
|
||||||
create_table "enabled_modules", :force => true do |t|
|
create_table "enabled_modules", :force => true do |t|
|
||||||
|
@ -785,6 +812,16 @@ ActiveRecord::Schema.define(:version => 20151020021234) do
|
||||||
|
|
||||||
add_index "journal_details", ["journal_id"], :name => "journal_details_journal_id"
|
add_index "journal_details", ["journal_id"], :name => "journal_details_journal_id"
|
||||||
|
|
||||||
|
create_table "journal_details_copy", :force => true do |t|
|
||||||
|
t.integer "journal_id", :default => 0, :null => false
|
||||||
|
t.string "property", :limit => 30, :default => "", :null => false
|
||||||
|
t.string "prop_key", :limit => 30, :default => "", :null => false
|
||||||
|
t.text "old_value"
|
||||||
|
t.text "value"
|
||||||
|
end
|
||||||
|
|
||||||
|
add_index "journal_details_copy", ["journal_id"], :name => "journal_details_journal_id"
|
||||||
|
|
||||||
create_table "journal_replies", :id => false, :force => true do |t|
|
create_table "journal_replies", :id => false, :force => true do |t|
|
||||||
t.integer "journal_id"
|
t.integer "journal_id"
|
||||||
t.integer "user_id"
|
t.integer "user_id"
|
||||||
|
|
|
@ -263,7 +263,7 @@ K.options = {
|
||||||
cssData : '',
|
cssData : '',
|
||||||
minWidth : 650,
|
minWidth : 650,
|
||||||
minHeight : 100,
|
minHeight : 100,
|
||||||
minChangeSize : 50,
|
minChangeSize : 1,
|
||||||
zIndex : 811213,
|
zIndex : 811213,
|
||||||
items : ['code','emoticons','fontname',
|
items : ['code','emoticons','fontname',
|
||||||
'forecolor', 'hilitecolor', 'bold', '|', 'justifyleft', 'justifycenter', 'insertorderedlist','insertunorderedlist', '|',
|
'forecolor', 'hilitecolor', 'bold', '|', 'justifyleft', 'justifycenter', 'insertorderedlist','insertunorderedlist', '|',
|
||||||
|
@ -277,7 +277,7 @@ K.options = {
|
||||||
['#337FE5', '#003399', '#4C33E5', '#9933E5', '#CC33E5', '#EE33EE'],
|
['#337FE5', '#003399', '#4C33E5', '#9933E5', '#CC33E5', '#EE33EE'],
|
||||||
['#FFFFFF', '#CCCCCC', '#999999', '#666666', '#333333', '#000000']
|
['#FFFFFF', '#CCCCCC', '#999999', '#666666', '#333333', '#000000']
|
||||||
],
|
],
|
||||||
fontSizeTable : ['9px', '10px', '12px', '14px', '16px', '18px', '24px', '32px'],
|
fontSizeTable : ['选中的字体大小:','9px', '10px', '12px', '14px', '16px', '18px', '24px', '32px'],
|
||||||
htmlTags : {
|
htmlTags : {
|
||||||
font : ['id', 'class', 'color', 'size', 'face', '.background-color'],
|
font : ['id', 'class', 'color', 'size', 'face', '.background-color'],
|
||||||
span : [
|
span : [
|
||||||
|
@ -5737,20 +5737,45 @@ _plugin('core', function(K) {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
self.clickToolbar('fontsize', function() {
|
self.clickToolbar('fontsize', function() {
|
||||||
|
// knode = self.getSelectedAnchor();
|
||||||
|
|
||||||
|
//console.log(self.cmd.range.startContainer.parentElement.style.fontSize)
|
||||||
var curVal = self.cmd.val('fontsize'),
|
var curVal = self.cmd.val('fontsize'),
|
||||||
menu = self.createMenu({
|
menu = self.createMenu({
|
||||||
name : 'fontsize',
|
name : 'fontsize',
|
||||||
width : 150
|
width : 150
|
||||||
});
|
});
|
||||||
_each(self.fontSizeTable, function(i, val) {
|
_each(self.fontSizeTable, function(i, val) {
|
||||||
menu.addItem({
|
if (i==0){
|
||||||
title : '<span style="font-size:' + val + ';" unselectable="on">' + val + '</span>',
|
fontsize = "14px"
|
||||||
height : _removeUnit(val) + 12,
|
if(self.cmd.range.startContainer.parentElement.style.fontSize) {
|
||||||
checked : curVal === val,
|
fontsize = self.cmd.range.startContainer.parentElement.style.fontSize
|
||||||
click : function() {
|
menu.addItem({
|
||||||
self.exec('fontsize', val).hideMenu();
|
title: '<span style="font-size:14px ;" unselectable="on">首个选中字体:' + fontsize + '</span>',
|
||||||
}
|
height: 14,
|
||||||
});
|
click: function () {
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}else {
|
||||||
|
menu.addItem({
|
||||||
|
title: '<span style="font-size:14px ;" unselectable="on">当前为默认字体:' + fontsize + '</span>',
|
||||||
|
height: 14,
|
||||||
|
click: function () {
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
menu.addItem({
|
||||||
|
title: '<span style="font-size:' + val + ';" unselectable="on">' + val + '</span>',
|
||||||
|
height: _removeUnit(val) + 12,
|
||||||
|
checked: curVal === val,
|
||||||
|
click: function () {
|
||||||
|
self.exec('fontsize', val).hideMenu();
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
_each('forecolor,hilitecolor'.split(','), function(i, name) {
|
_each('forecolor,hilitecolor'.split(','), function(i, name) {
|
||||||
|
|
|
@ -0,0 +1,82 @@
|
||||||
|
function regexTopicSubject() {
|
||||||
|
var name = $("#message_subject").val();
|
||||||
|
if(name.length ==0)
|
||||||
|
{
|
||||||
|
$("#subjectmsg").text("标题不能为空");
|
||||||
|
$("#subjectmsg").css('color','#ff0000');
|
||||||
|
$("#message_subject").focus();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else if(name.length <= 255)
|
||||||
|
{
|
||||||
|
$("#subjectmsg").text("填写正确");
|
||||||
|
$("#subjectmsg").css('color','#008000');
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$("#subjectmsg").text("标题超过255个字符");
|
||||||
|
$("#subjectmsg").css('color','#ff0000');
|
||||||
|
$("#message_subject").focus();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function submit_article()
|
||||||
|
{
|
||||||
|
if(regexTopicSubject() && regexTopicDescription())
|
||||||
|
{
|
||||||
|
message_content_editor.sync();
|
||||||
|
$("#message-form").submit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function regexTopicDescription()
|
||||||
|
{
|
||||||
|
var name = message_content_editor.html();
|
||||||
|
if(name.length ==0)
|
||||||
|
{
|
||||||
|
$("#message_content_span").text("描述不能为空");
|
||||||
|
$("#message_content_span").css('color','#ff0000');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else if(name.length >=20000){
|
||||||
|
$("#message_content_span").text("描述最多20000个汉字(或40000个英文字符)");
|
||||||
|
$("#message_content_span").css('color','#ff0000');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$("#message_content_span").text("填写正确");
|
||||||
|
$("#message_content_span").css('color','#008000');
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function MessageReplayVevify() {
|
||||||
|
var content = message_content_editor.html();//$.trim($("#message_content").val());
|
||||||
|
if (content.length == 0) {
|
||||||
|
$("#message_content_span").text("回复不能为空");
|
||||||
|
$("#message_content_span").css('color', '#ff0000');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$("#message_content_span").text("填写正确");
|
||||||
|
$("#message_content_span").css('color', '#008000');
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function submit_message_replay()
|
||||||
|
{
|
||||||
|
if(MessageReplayVevify())
|
||||||
|
{
|
||||||
|
message_content_editor.sync();//提交内容之前要sync,不然服务器端取不到值
|
||||||
|
$("#message_form").submit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function canel_message_replay()
|
||||||
|
{
|
||||||
|
$("#reply").hide(200);
|
||||||
|
$("#message_quote").html("");
|
||||||
|
}
|
|
@ -1862,7 +1862,7 @@ span.required {color: #bb0000;}
|
||||||
#attachments_fields .ajax-waiting input.filename {background:url(../images/hourglass.png) no-repeat 0px 50%;}
|
#attachments_fields .ajax-waiting input.filename {background:url(../images/hourglass.png) no-repeat 0px 50%;}
|
||||||
#attachments_fields .ajax-loading input.filename {background:url(../images/loading.gif) no-repeat 0px 50%;}
|
#attachments_fields .ajax-loading input.filename {background:url(../images/loading.gif) no-repeat 0px 50%;}
|
||||||
#attachments_fields div.ui-progressbar { width: 100px; height:14px; margin: 2px 0 -5px 8px; display: inline-block; }
|
#attachments_fields div.ui-progressbar { width: 100px; height:14px; margin: 2px 0 -5px 8px; display: inline-block; }
|
||||||
a.remove-upload {background: url(../images/delete.png) no-repeat 1px 50%; width:1px; display:inline-block; padding-left:16px;}
|
a.remove-upload {background: url(../images/delete.png) no-repeat 1px 50%; width:1px; display:inline-block; padding-left:16px;margin-left: 5px;}
|
||||||
a.remove-upload:hover {text-decoration:none !important;}
|
a.remove-upload:hover {text-decoration:none !important;}
|
||||||
|
|
||||||
/*gcm upload file count and deleteall*/
|
/*gcm upload file count and deleteall*/
|
||||||
|
|
|
@ -159,9 +159,9 @@ a.postOptionLink:hover {color:#ffffff; background-color:#269ac9;}
|
||||||
.table_maxWidth table {max-width: 642px;}
|
.table_maxWidth table {max-width: 642px;}
|
||||||
.homepagePostProjectState {width:52px; height:20px; line-height:20px; border-radius:1px; background-color:#28be6c; color:#ffffff; text-align:center; vertical-align:middle; font-size:12px; display:inline-block; margin-left:5px;}
|
.homepagePostProjectState {width:52px; height:20px; line-height:20px; border-radius:1px; background-color:#28be6c; color:#ffffff; text-align:center; vertical-align:middle; font-size:12px; display:inline-block; margin-left:5px;}
|
||||||
.homepagePostAssignTo {float:left; font-size:14px; color:#269ac9;}
|
.homepagePostAssignTo {float:left; font-size:14px; color:#269ac9;}
|
||||||
.homepagePostFileAtt {height:22px; line-height:22px; vertical-align:middle; background:url(../images/public_icon.png) -27px -577px no-repeat; padding-left:25px; font-size:14px; margin-right:25px;}
|
.homepagePostFileAtt {height:22px; line-height:22px; vertical-align:middle; background:url(../images/public_icon.png) -27px -577px no-repeat; padding-left:25px; font-size:14px;}
|
||||||
.homepagePostImageAtt {height:22px; line-height:22px; vertical-align:middle; background:url(../images/homepage_icon.png) -86px -195px no-repeat; padding-left:35px; font-size:14px; margin-right:25px;}
|
.homepagePostImageAtt {height:22px; line-height:22px; vertical-align:middle; background:url(../images/homepage_icon.png) -86px -195px no-repeat; padding-left:35px; font-size:14px; margin-right:25px;}
|
||||||
.postAttSize {color:#888888; font-size:12px;}
|
.postAttSize {color:#888888; font-size:12px; margin-left: 5px;}
|
||||||
a.postGrey {color:#484848;}
|
a.postGrey {color:#484848;}
|
||||||
a.postGrey:hover {color:#000000;}
|
a.postGrey:hover {color:#000000;}
|
||||||
a.gz_btn{display:block; background:url(../images/pic_uersall.png) -318px -25px no-repeat; width:53px; height:18px; border:1px solid #cdcdcd; color:#333333; padding:0px 0 0 18px;margin-top: 2px;margin-right: 15px;}
|
a.gz_btn{display:block; background:url(../images/pic_uersall.png) -318px -25px no-repeat; width:53px; height:18px; border:1px solid #cdcdcd; color:#333333; padding:0px 0 0 18px;margin-top: 2px;margin-right: 15px;}
|
||||||
|
@ -551,7 +551,7 @@ blockquote {background: #e8e8e8;padding: 10px;margin-bottom: 5px;word-break: bre
|
||||||
|
|
||||||
#attachments_fields input.description {margin-left: 4px;width: 100px;}
|
#attachments_fields input.description {margin-left: 4px;width: 100px;}
|
||||||
#attachments_fields span.ispublic-label {display: inline-block;width: 30px;margin-left: 10px;}
|
#attachments_fields span.ispublic-label {display: inline-block;width: 30px;margin-left: 10px;}
|
||||||
a.remove-upload {background: url(../images/delete.png) no-repeat 1px 50%;width: 1px;display: inline-block;padding-left: 16px;}
|
a.remove-upload {background: url(../images/delete.png) no-repeat 1px 50%;width: 1px;display: inline-block;padding-left: 16px;margin-left: 5px;}
|
||||||
#attachments_fields input.filename {border: 0;height: 1.8em;width: 150px;color: #555;background-color: inherit;background: url(../images/attachment.png) no-repeat 1px 50%;padding-left: 18px;padding-top: 2px; white-space: nowrap; text-overflow:ellipsis;}
|
#attachments_fields input.filename {border: 0;height: 1.8em;width: 150px;color: #555;background-color: inherit;background: url(../images/attachment.png) no-repeat 1px 50%;padding-left: 18px;padding-top: 2px; white-space: nowrap; text-overflow:ellipsis;}
|
||||||
span.add_attachment {font-size: 80%;line-height: 2.5em;}
|
span.add_attachment {font-size: 80%;line-height: 2.5em;}
|
||||||
#attachments_fields span {display: block;white-space: nowrap;}
|
#attachments_fields span {display: block;white-space: nowrap;}
|
||||||
|
@ -569,7 +569,7 @@ span.add_attachment {font-size: 80%;line-height: 2.5em;}
|
||||||
a.remove-upload:hover {text-decoration:none !important;}
|
a.remove-upload:hover {text-decoration:none !important;}
|
||||||
|
|
||||||
.attachments_fields span.ispublic-label {display: inline-block;width: 30px;margin-left: 10px;}
|
.attachments_fields span.ispublic-label {display: inline-block;width: 30px;margin-left: 10px;}
|
||||||
a.remove-upload {background: url(../images/delete.png) no-repeat 1px 50%;width: 1px;display: inline-block;padding-left: 16px;}
|
a.remove-upload {background: url(../images/delete.png) no-repeat 1px 50%;width: 1px;display: inline-block;padding-left: 16px;margin-left: 5px;}
|
||||||
.attachments_fields input.filename {border: 0;height: 1.8em;width: 150px;color: #555;background-color: inherit;background: url(../images/attachment.png) no-repeat 1px 50%;padding-left: 18px;padding-top: 2px;}
|
.attachments_fields input.filename {border: 0;height: 1.8em;width: 150px;color: #555;background-color: inherit;background: url(../images/attachment.png) no-repeat 1px 50%;padding-left: 18px;padding-top: 2px;}
|
||||||
span.add_attachment {font-size: 80%;line-height: 2.5em;}
|
span.add_attachment {font-size: 80%;line-height: 2.5em;}
|
||||||
.attachments_fields span {display: block;white-space: nowrap;}
|
.attachments_fields span {display: block;white-space: nowrap;}
|
||||||
|
@ -973,7 +973,7 @@ a:hover.icon_remove{background:url(../images/course/icons.png) -20px -338px no-r
|
||||||
.SearchIcon:hover{background:url(../images/homepage_icon2.png) 676px -419px no-repeat; }
|
.SearchIcon:hover{background:url(../images/homepage_icon2.png) 676px -419px no-repeat; }
|
||||||
a.link_file{ background:url(../images/pic_file.png) 0 2px no-repeat; padding-left:20px; }
|
a.link_file{ background:url(../images/pic_file.png) 0 2px no-repeat; padding-left:20px; }
|
||||||
a:hover.link_file{ background:url(../images/pic_file.png) 0 -25px no-repeat; color:#3ca5c6;}
|
a:hover.link_file{ background:url(../images/pic_file.png) 0 -25px no-repeat; color:#3ca5c6;}
|
||||||
a.remove-upload {background: url(../images/delete.png) no-repeat 1px 50%;width: 1px;display: inline-block;padding-left: 16px;}
|
a.remove-upload {background: url(../images/delete.png) no-repeat 1px 50%;width: 1px;display: inline-block;padding-left: 16px;margin-left: 5px;}
|
||||||
a.FilesName{ max-width:540px;overflow:hidden; white-space:nowrap; text-overflow:ellipsis; display:block;}
|
a.FilesName{ max-width:540px;overflow:hidden; white-space:nowrap; text-overflow:ellipsis; display:block;}
|
||||||
a.FilesName02{ max-width:665px;overflow:hidden; white-space:nowrap; text-overflow:ellipsis; display:block;}
|
a.FilesName02{ max-width:665px;overflow:hidden; white-space:nowrap; text-overflow:ellipsis; display:block;}
|
||||||
.ProResultUl span { display:block; float:left;}
|
.ProResultUl span { display:block; float:left;}
|
||||||
|
|
|
@ -686,9 +686,9 @@ a.postOptionLink:hover {color:#ffffff; background-color:#269ac9;}
|
||||||
.table_maxWidth table {max-width: 642px;}
|
.table_maxWidth table {max-width: 642px;}
|
||||||
.homepagePostProjectState {width:52px; height:20px; line-height:20px; border-radius:1px; background-color:#28be6c; color:#ffffff; text-align:center; vertical-align:middle; font-size:12px; display:inline-block; margin-left:5px;}
|
.homepagePostProjectState {width:52px; height:20px; line-height:20px; border-radius:1px; background-color:#28be6c; color:#ffffff; text-align:center; vertical-align:middle; font-size:12px; display:inline-block; margin-left:5px;}
|
||||||
.homepagePostAssignTo {float:left; font-size:14px; color:#269ac9;}
|
.homepagePostAssignTo {float:left; font-size:14px; color:#269ac9;}
|
||||||
.homepagePostFileAtt {height:22px; line-height:22px; vertical-align:middle; background:url(../images/public_icon.png) -27px -577px no-repeat; padding-left:25px; font-size:14px; margin-right:25px;}
|
.homepagePostFileAtt {height:22px; line-height:22px; vertical-align:middle; background:url(../images/public_icon.png) -27px -577px no-repeat; padding-left:25px; font-size:14px;}
|
||||||
.homepagePostImageAtt {height:22px; line-height:22px; vertical-align:middle; background:url(../images/homepage_icon.png) -86px -195px no-repeat; padding-left:35px; font-size:14px; margin-right:25px;}
|
.homepagePostImageAtt {height:22px; line-height:22px; vertical-align:middle; background:url(../images/homepage_icon.png) -86px -195px no-repeat; padding-left:35px; font-size:14px; margin-right:25px;}
|
||||||
.postAttSize {color:#888888; font-size:12px;}
|
.postAttSize {color:#888888; font-size:12px; margin-left: 5px;}
|
||||||
a.postGrey {color:#484848;}
|
a.postGrey {color:#484848;}
|
||||||
a.postGrey:hover {color:#000000;}
|
a.postGrey:hover {color:#000000;}
|
||||||
a.gz_btn{display:block; background:url(../images/pic_uersall.png) -318px -25px no-repeat; width:53px; height:18px; border:1px solid #cdcdcd; color:#333333; padding:0px 0 0 18px;margin-top: 2px;margin-right: 15px;}
|
a.gz_btn{display:block; background:url(../images/pic_uersall.png) -318px -25px no-repeat; width:53px; height:18px; border:1px solid #cdcdcd; color:#333333; padding:0px 0 0 18px;margin-top: 2px;margin-right: 15px;}
|
||||||
|
@ -1078,7 +1078,7 @@ a:hover.icon_remove{background:url(../images/course/icons.png) -20px -338px no-r
|
||||||
.SearchIcon:hover{background:url(../images/homepage_icon2.png) 676px -419px no-repeat; }
|
.SearchIcon:hover{background:url(../images/homepage_icon2.png) 676px -419px no-repeat; }
|
||||||
a.link_file{ background:url(../images/pic_file.png) 0 2px no-repeat; padding-left:20px; }
|
a.link_file{ background:url(../images/pic_file.png) 0 2px no-repeat; padding-left:20px; }
|
||||||
a:hover.link_file{ background:url(../images/pic_file.png) 0 -25px no-repeat; color:#3ca5c6;}
|
a:hover.link_file{ background:url(../images/pic_file.png) 0 -25px no-repeat; color:#3ca5c6;}
|
||||||
a.remove-upload {background: url(../images/delete.png) no-repeat 1px 50%;width: 1px;display: inline-block;padding-left: 16px;}
|
a.remove-upload {background: url(../images/delete.png) no-repeat 1px 50%;width: 1px;display: inline-block;padding-left: 16px;margin-left: 5px;}
|
||||||
a.FilesName{ max-width:540px;overflow:hidden; white-space:nowrap; text-overflow:ellipsis; display:block;}
|
a.FilesName{ max-width:540px;overflow:hidden; white-space:nowrap; text-overflow:ellipsis; display:block;}
|
||||||
a.FilesName02{ max-width:665px;overflow:hidden; white-space:nowrap; text-overflow:ellipsis; display:block;}
|
a.FilesName02{ max-width:665px;overflow:hidden; white-space:nowrap; text-overflow:ellipsis; display:block;}
|
||||||
.ProResultUl span { display:block; float:left;}
|
.ProResultUl span { display:block; float:left;}
|
||||||
|
@ -1307,3 +1307,5 @@ a:hover.link_file_a{ background:url(../images/pic_file.png) 0 -25px no-repeat; c
|
||||||
.list_style ul li{list-style-type: disc;margin-left: 20px;}
|
.list_style ul li{list-style-type: disc;margin-left: 20px;}
|
||||||
.ul_grey li {color:#909090; list-style-position:inside; padding-left:1px;list-style-image:url('../images/news_dot2.png')}
|
.ul_grey li {color:#909090; list-style-position:inside; padding-left:1px;list-style-image:url('../images/news_dot2.png')}
|
||||||
.ul_normal_color li {list-style-position:inside; padding-left:1px; list-style-image:url('../images/news_dot.png')}
|
.ul_normal_color li {list-style-position:inside; padding-left:1px; list-style-image:url('../images/news_dot.png')}
|
||||||
|
span.author { font-size: 0.9em; color: #888; }
|
||||||
|
.ReplyToMessageInputContainer {width: 582px;float: left;}
|
||||||
|
|
|
@ -731,6 +731,10 @@ div.actions input[type="text"] {
|
||||||
list-style-type: disc;
|
list-style-type: disc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.memo-content ul li {
|
||||||
|
list-style-type: disc;
|
||||||
|
}
|
||||||
|
|
||||||
.memo-timestamp {
|
.memo-timestamp {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 0px;
|
bottom: 0px;
|
||||||
|
|
|
@ -359,7 +359,7 @@ blockquote {background: #eeeeee;padding: 10px;margin-bottom: 10px;}
|
||||||
a.remove-upload:hover {text-decoration:none !important;}
|
a.remove-upload:hover {text-decoration:none !important;}
|
||||||
|
|
||||||
#attachments_fields span.ispublic-label {display: inline-block;width: 30px;margin-left: 10px;}
|
#attachments_fields span.ispublic-label {display: inline-block;width: 30px;margin-left: 10px;}
|
||||||
a.remove-upload {background: url(../images/delete.png) no-repeat 1px 50%;width: 1px;display: inline-block;padding-left: 16px;}
|
a.remove-upload {background: url(../images/delete.png) no-repeat 1px 50%;width: 1px;display: inline-block;padding-left: 16px;margin-left: 5px;}
|
||||||
#attachments_fields input.filename {border: 0;height: 1.8em;width: 150px;color: #555;background-color: inherit;background: url(../images/attachment.png) no-repeat 1px 50%;padding-left: 18px;padding-top: 2px; white-space: nowrap; text-overflow:ellipsis;}
|
#attachments_fields input.filename {border: 0;height: 1.8em;width: 150px;color: #555;background-color: inherit;background: url(../images/attachment.png) no-repeat 1px 50%;padding-left: 18px;padding-top: 2px; white-space: nowrap; text-overflow:ellipsis;}
|
||||||
span.add_attachment {font-size: 80%;line-height: 2.5em;}
|
span.add_attachment {font-size: 80%;line-height: 2.5em;}
|
||||||
#attachments_fields span {display: block;white-space: nowrap;}
|
#attachments_fields span {display: block;white-space: nowrap;}
|
||||||
|
@ -377,7 +377,7 @@ a.remove-upload:hover {text-decoration:none !important;}
|
||||||
|
|
||||||
|
|
||||||
.attachments_fields span.ispublic-label {display: inline-block;width: 30px;margin-left: 10px;}
|
.attachments_fields span.ispublic-label {display: inline-block;width: 30px;margin-left: 10px;}
|
||||||
a.remove-upload {background: url(../images/delete.png) no-repeat 1px 50%;width: 1px;display: inline-block;padding-left: 16px;}
|
a.remove-upload {background: url(../images/delete.png) no-repeat 1px 50%;width: 1px;display: inline-block;padding-left: 16px;margin-left: 5px;}
|
||||||
.attachments_fields input.filename {border: 0;height: 1.8em;width: 150px;color: #555;background-color: inherit;background: url(../images/attachment.png) no-repeat 1px 50%;padding-left: 18px;padding-top: 2px;}
|
.attachments_fields input.filename {border: 0;height: 1.8em;width: 150px;color: #555;background-color: inherit;background: url(../images/attachment.png) no-repeat 1px 50%;padding-left: 18px;padding-top: 2px;}
|
||||||
span.add_attachment {font-size: 80%;line-height: 2.5em;}
|
span.add_attachment {font-size: 80%;line-height: 2.5em;}
|
||||||
.attachments_fields span {display: block;white-space: nowrap;}
|
.attachments_fields span {display: block;white-space: nowrap;}
|
||||||
|
|
|
@ -572,9 +572,9 @@ a.postReplyCancel:hover {color:#ffffff;}
|
||||||
.table_maxWidth table {max-width: 642px;}
|
.table_maxWidth table {max-width: 642px;}
|
||||||
.homepagePostProjectState {width:42px; height:20px; line-height:20px; border-radius:1px; background-color:#28be6c; color:#ffffff; text-align:center; vertical-align:middle; font-size:12px; display:inline-block; margin-left:5px;}
|
.homepagePostProjectState {width:42px; height:20px; line-height:20px; border-radius:1px; background-color:#28be6c; color:#ffffff; text-align:center; vertical-align:middle; font-size:12px; display:inline-block; margin-left:5px;}
|
||||||
.homepagePostAssignTo {float:left; font-size:14px; color:#15bccf; height:30px; line-height:30px; vertical-align:middle;}
|
.homepagePostAssignTo {float:left; font-size:14px; color:#15bccf; height:30px; line-height:30px; vertical-align:middle;}
|
||||||
.homepagePostFileAtt {height:22px; line-height:22px; vertical-align:middle; background:url(../images/homepage_icon.png) -85px -150px no-repeat; padding-left:35px; font-size:14px; margin-right:25px;}
|
.homepagePostFileAtt {height:22px; line-height:22px; vertical-align:middle; background:url(../images/homepage_icon.png) -85px -150px no-repeat; padding-left:35px; font-size:14px;}
|
||||||
.homepagePostImageAtt {height:22px; line-height:22px; vertical-align:middle; background:url(../images/homepage_icon.png) -86px -195px no-repeat; padding-left:35px; font-size:14px; margin-right:25px;}
|
.homepagePostImageAtt {height:22px; line-height:22px; vertical-align:middle; background:url(../images/homepage_icon.png) -86px -195px no-repeat; padding-left:35px; font-size:14px; margin-right:25px;}
|
||||||
.postAttSize {color:#888888; font-size:12px;}
|
.postAttSize {color:#888888; font-size:12px; margin-left: 5px;}
|
||||||
a.postGrey {color:#484848;}
|
a.postGrey {color:#484848;}
|
||||||
a.postGrey:hover {color:#000000;}
|
a.postGrey:hover {color:#000000;}
|
||||||
.homepagePostReplyjournal{margin-left: 15px; float: left;}
|
.homepagePostReplyjournal{margin-left: 15px; float: left;}
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
RSpec.describe BlogCommentsController, :type => :controller do
|
||||||
|
|
||||||
|
end
|
|
@ -0,0 +1,5 @@
|
||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
RSpec.describe BlogsController, :type => :controller do
|
||||||
|
|
||||||
|
end
|
|
@ -0,0 +1,6 @@
|
||||||
|
# Read about factories at https://github.com/thoughtbot/factory_girl
|
||||||
|
|
||||||
|
FactoryGirl.define do
|
||||||
|
factory :blog_comment do
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,6 @@
|
||||||
|
# Read about factories at https://github.com/thoughtbot/factory_girl
|
||||||
|
|
||||||
|
FactoryGirl.define do
|
||||||
|
factory :blog do
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue