diff --git a/app/controllers/attachments_controller.rb b/app/controllers/attachments_controller.rb
index 514f68d49..23fe19333 100644
--- a/app/controllers/attachments_controller.rb
+++ b/app/controllers/attachments_controller.rb
@@ -600,7 +600,7 @@ private
def has_login
unless @attachment && @attachment.container_type == "PhoneAppVersion"
- render_403 if !User.current.logged? && @attachment.container_type != 'OrgSubfield' && @attachment.container_type != 'OrgDocumentComment'
+ render_403 if !User.current.logged? && !(@attachment.container_type == 'OrgSubfield' && @attachment.container.organization.allow_guest_download) && !(@attachment.container_type == 'OrgDocumentComment' && @attachment.container.organization.allow_guest_download)
end
end
end
diff --git a/app/controllers/comments_controller.rb b/app/controllers/comments_controller.rb
index c8dcf0b8e..5966b310f 100644
--- a/app/controllers/comments_controller.rb
+++ b/app/controllers/comments_controller.rb
@@ -25,7 +25,9 @@ class CommentsController < ApplicationController
def create
raise Unauthorized unless @news.commentable?
-
+ if !@news.org_subfield_id.nil?
+ @org_subfield = OrgSubfield.find(@news.org_subfield_id)
+ end
@comment = Comment.new
#@project ? @comment.comments = params[:comment][:comments] : @comment.comments = params[:comment]
if params[:user_activity_id]
diff --git a/app/controllers/news_controller.rb b/app/controllers/news_controller.rb
index d3ac71b99..0962deb10 100644
--- a/app/controllers/news_controller.rb
+++ b/app/controllers/news_controller.rb
@@ -46,15 +46,16 @@ class NewsController < ApplicationController
@course = Course.find(params[:course_id])
end
if @project
+ @page = params[:page] ? params[:page].to_i + 1 : 0
scope = @project ? @project.news.visible : News.visible
@news_count = scope.count
- @news_pages = Paginator.new @news_count, @limit, params['page']
- @offset ||= @news_pages.offset
+ #@news_pages = Paginator.new @news_count, @limit, params['page']
+ #@offset ||= @news_pages.offset
@newss = scope.all(:include => [:author, :project],
:order => "#{News.table_name}.created_on DESC",
- :offset => @offset,
- :limit => @limit)
+ :offset => @page * 10,
+ :limit => 10)
respond_to do |format|
format.html {
@@ -63,6 +64,7 @@ class NewsController < ApplicationController
render :layout => false if request.xhr?
}
+ format.js
format.api
format.atom { render_feed(@newss, :title => (@project ? @project.name : Setting.app_title) + ": #{l(:label_news_plural)}") }
end
@@ -144,6 +146,10 @@ class NewsController < ApplicationController
if @course
render :layout => 'base_courses'
end
+ elsif @news.org_subfield_id
+ @org_subfield = OrgSubfield.find(@news.org_subfield_id)
+ @organization = @org_subfield.organization
+ render :layout => 'base_org'
end
end
@@ -151,6 +157,21 @@ class NewsController < ApplicationController
#modify by nwb
if @project
@news = News.new(:project => @project, :author => User.current)
+ @news.safe_attributes = params[:news]
+ @news.save_attachments(params[:attachments])
+ if @news.save
+ if params[:asset_id]
+ ids = params[:asset_id].split(',')
+ update_kindeditor_assets_owner ids,@news.id,OwnerTypeHelper::NEWS
+ end
+ render_attachment_warning_if_needed(@news)
+ #flash[:notice] = l(:notice_successful_create)
+ redirect_to project_news_index_url(@project)
+ else
+ redirect_to project_news_index_url(@project)
+ #layout_file = 'base_courses'
+ #render :action => 'new', :layout => layout_file
+ end
elsif @course
@news = News.new(:course => @course, :author => User.current)
#render :layout => 'base_courses'
@@ -221,8 +242,14 @@ class NewsController < ApplicationController
end
def edit
+ if @news.org_subfield_id
+ @org_subfield = OrgSubfield.find(@news.org_subfield_id)
+ @organization = @org_subfield.organization
+ end
if @course
render :layout => "base_courses"
+ elsif @org_subfield
+ render :layout => 'base_org'
end
end
@@ -240,12 +267,17 @@ class NewsController < ApplicationController
end
def destroy
+ if @news.org_subfield_id
+ @org_subfield = OrgSubfield.find(@news.org_subfield_id)
+ end
@news.destroy
# modify by nwb
if @project
redirect_to project_news_index_url(@project)
elsif @course
redirect_to course_news_index_url(@course)
+ elsif @org_subfield
+ redirect_to organization_path(@org_subfield.organization, :org_subfield_id => @org_subfield.id)
end
end
diff --git a/app/controllers/organizations_controller.rb b/app/controllers/organizations_controller.rb
index 39ece6fbe..361303833 100644
--- a/app/controllers/organizations_controller.rb
+++ b/app/controllers/organizations_controller.rb
@@ -116,6 +116,7 @@ class OrganizationsController < ApplicationController
@organization.description = params[:organization][:description]
# @organization.domain = params[:organization][:domain]
@organization.is_public = params[:organization][:is_public] == 'on' ? 1 : 0
+ @organization.allow_guest_download = params[:organization][:allow_guest_download] == 'on' ? 1 : 0
#@organization.name = params[:organization][:name]
@organization.save
respond_to do |format|
@@ -300,7 +301,11 @@ class OrganizationsController < ApplicationController
def org_resources_subfield
@org = Organization.find(params[:id])
- @subfield = @org.org_subfields.where('field_type = "Resource" ')
+ if params[:send_type].present? and params[:send_type] == 'news'
+ @subfield = @org.org_subfields.where("field_type = 'Post'")
+ else
+ @subfield = @org.org_subfields.where('field_type = "Resource" ')
+ end
respond_to do | format|
format.js
end
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index b7e507b28..b1c384ae4 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -1773,6 +1773,48 @@ class UsersController < ApplicationController
end
end
+ def share_news_to_course
+ news = News.find(params[:send_id])
+ course_ids = params[:course_ids]
+ course_ids.each do |course_id|
+ if Course.find(course_id).news.map(&:id).exclude?(news.id)
+ course_news = News.create(:course_id => course_id.to_i, :title => news.title, :summary => news.summary, :description => news.description,:author_id => User.current.id, :created_on => Time.now,:project_id => -1)
+ news.attachments.each do |attach|
+ course_news.attachments << Attachment.new(:filename => attach.filename, :disk_filename => attach.disk_filename, :filesize => attach.filesize, :content_type => attach.content_type, :digest => attach.digest,
+ :downloads => 0, :author_id => User.current.id, :created_on => Time.now, :description => attach.description, :disk_directory => attach.disk_directory, :attachtype => attach.attachtype,
+ :is_public => attach.is_public, :quotes => 0)
+ end
+ end
+ end
+ end
+
+ def share_news_to_project
+ news = News.find(params[:send_id])
+ project_ids = params[:project_ids]
+ project_ids.each do |project_id|
+ if Project.find(project_id).news.map(&:id).exclude?(news.id)
+ project_news = News.create(:project_id => project_id.to_i, :title => news.title, :summary => news.summary, :description => news.description,:author_id => User.current.id, :created_on => Time.now)
+ news.attachments.each do |attach|
+ project_news.attachments << Attachment.new(:filename => attach.filename, :disk_filename => attach.disk_filename, :filesize => attach.filesize, :content_type => attach.content_type, :digest => attach.digest,
+ :downloads => 0, :author_id => User.current.id, :created_on => Time.now, :description => attach.description, :disk_directory => attach.disk_directory, :attachtype => attach.attachtype,
+ :is_public => attach.is_public, :quotes => 0)
+ end
+ end
+ end
+ end
+
+ def share_news_to_org
+ news = News.find(params[:send_id])
+ field_id = params[:subfield]
+ org_news = News.create(:org_subfield_id => field_id.to_i, :title => news.title, :summary => news.summary, :description => news.description,:author_id => User.current.id, :created_on => Time.now,:project_id => -1)
+ news.attachments.each do |attach|
+ org_news.attachments << Attachment.new(:filename => attach.filename, :disk_filename => attach.disk_filename, :filesize => attach.filesize, :content_type => attach.content_type, :digest => attach.digest,
+ :downloads => 0, :author_id => User.current.id, :created_on => Time.now, :description => attach.description, :disk_directory => attach.disk_directory, :attachtype => attach.attachtype,
+ :is_public => attach.is_public, :quotes => 0)
+ end
+ OrgActivity.create(:container_type => 'OrgSubfield', :container_id => field_id.to_i, :org_act_type=>'News', :org_act_id => org_news.id, :user_id => User.current.id)
+ end
+
def change_org_subfield
end
@@ -2122,9 +2164,17 @@ class UsersController < ApplicationController
@user = User.current
if !params[:search].nil? #发送到有栏目类型为资源的组织中
search = "%#{params[:search].to_s.strip.downcase}%"
- @orgs = @user.organizations.where("name like ?", search).select{|org| OrgSubfield.where("organization_id = #{org.id} and field_type='Resource'").count > 0}
+ if params[:send_type].present? and params[:send_type] == 'news'
+ @orgs = @user.organizations.where("name like ?", search).select{|org| OrgSubfield.where("organization_id = #{org.id} and field_type='Post'").count > 0}
+ else
+ @orgs = @user.organizations.where("name like ?", search).select{|org| OrgSubfield.where("organization_id = #{org.id} and field_type='Resource'").count > 0}
+ end
else
- @orgs = @user.organizations.select{|org| OrgSubfield.where("organization_id = #{org.id} and field_type='Resource'").count > 0}
+ if params[:send_type].present? and params[:send_type] == 'news'
+ @orgs = @user.organizations.select{|org| OrgSubfield.where("organization_id = #{org.id} and field_type='Post'").count > 0}
+ else
+ @orgs = @user.organizations.select{|org| OrgSubfield.where("organization_id = #{org.id} and field_type='Resource'").count > 0}
+ end
end
@search = params[:search]
#这里仅仅是传递需要发送的资源id
diff --git a/app/models/mailer.rb b/app/models/mailer.rb
index 318de2942..e7a17d4d1 100644
--- a/app/models/mailer.rb
+++ b/app/models/mailer.rb
@@ -379,6 +379,16 @@ class Mailer < ActionMailer::Base
end
+ # issue截止时间提醒
+ def issue_due_date(issue, recipients)
+ @author = issue.author.login
+ @issue_name = issue.subject
+ @issue_url = url_for(:controller => 'issues', :action => 'show', :id => issue.id)
+ @subject = "#{l(:mail_issue)}#{issue.subject} #{l(:mail_issue_due_date)} "
+ mail :to => recipients,
+ :subject => @subject
+ end
+
# Builds a Mail::Message object used to email recipients of the added issue.
#
# Example:
diff --git a/app/models/news.rb b/app/models/news.rb
index 7c44f7e8a..fee5d2801 100644
--- a/app/models/news.rb
+++ b/app/models/news.rb
@@ -22,6 +22,7 @@ class News < ActiveRecord::Base
has_many_kindeditor_assets :assets, :dependent => :destroy
#added by nwb
belongs_to :course,:touch => true
+ belongs_to :org_subfield, :touch => true
belongs_to :author, :class_name => 'User', :foreign_key => 'author_id'
has_many :comments, :as => :commented, :dependent => :destroy, :order => "created_on"
# fq
@@ -57,7 +58,7 @@ class News < ActiveRecord::Base
after_create :act_as_activity,:act_as_forge_activity, :act_as_course_activity,:act_as_system_message, :add_author_as_watcher, :send_mail, :add_news_count
after_update :update_activity
- after_destroy :delete_kindeditor_assets, :decrease_news_count
+ after_destroy :delete_kindeditor_assets, :decrease_news_count, :delete_org_activities
scope :visible, lambda {|*args|
includes(:project).where(Project.allowed_to_condition(args.shift || User.current, :view_news, *args))
@@ -187,4 +188,8 @@ class News < ActiveRecord::Base
Mailer.run.news_added(self) if Setting.notified_events.include?('news_added')
end
+ def delete_org_activities
+ OrgActivity.where("container_type='OrgSubfield' and org_act_type='News' and org_act_id=?", self.id).destroy_all
+ end
+
end
\ No newline at end of file
diff --git a/app/models/org_subfield.rb b/app/models/org_subfield.rb
index b109ba042..c62cbf4f8 100644
--- a/app/models/org_subfield.rb
+++ b/app/models/org_subfield.rb
@@ -6,6 +6,7 @@ class OrgSubfield < ActiveRecord::Base
has_many :org_subfield_messages, :dependent => :destroy
has_many :messages, :through => :org_subfield_messages
has_many :boards, :dependent => :destroy
+ has_many :news, :dependent => :destroy
acts_as_attachable
after_create :create_board_sync
# 创建资源栏目讨论区
diff --git a/app/views/comments/create.js.erb b/app/views/comments/create.js.erb
index 8f0c5f38d..f94eda065 100644
--- a/app/views/comments/create.js.erb
+++ b/app/views/comments/create.js.erb
@@ -1,6 +1,8 @@
<% if @course %>
-$("#user_activity_<%= @user_activity_id%>").replaceWith("<%= escape_javascript(render :partial => 'users/course_news', :locals => {:activity => @news,:user_activity_id =>@user_activity_id}) %>");
+ $("#user_activity_<%= @user_activity_id%>").replaceWith("<%= escape_javascript(render :partial => 'users/course_news', :locals => {:activity => @news,:user_activity_id =>@user_activity_id}) %>");
+<% elsif @project %>
+ $("#user_activity_<%= @user_activity_id%>").replaceWith("<%= escape_javascript(render :partial => 'projects/project_news', :locals => {:activity => @news,:user_activity_id =>@user_activity_id}) %>");
<% else %>
-$("#user_activity_<%= @user_activity_id%>").replaceWith("<%= escape_javascript(render :partial => 'projects/project_news', :locals => {:activity => @news,:user_activity_id =>@user_activity_id}) %>");
+ $("#user_activity_<%= @user_activity_id%>").replaceWith("<%= escape_javascript(render :partial => 'organizations/org_subfield_news', :locals => {:activity => @news,:user_activity_id =>@user_activity_id}) %>");
<% end %>
init_activity_KindEditor_data('<%= @user_activity_id%>',"","87%", "UserActivity");
diff --git a/app/views/files/_course_list.html.erb b/app/views/files/_course_list.html.erb
index f1d96d22c..47c08d2fb 100644
--- a/app/views/files/_course_list.html.erb
+++ b/app/views/files/_course_list.html.erb
@@ -43,7 +43,7 @@
<% if (delete_allowed || User.current.id == file.author_id) && file.container_id == @course.id && file.container_type == "Course" %>
- <%= link_to("发 送".html_safe, 'javascript:void(0)',:class => "postOptionLink",:onclick=>"show_send('#{file.id}')") %>
+ <%= link_to("发 送".html_safe, 'javascript:void(0)',:class => "postOptionLink",:onclick=>"show_send('#{file.id}','#{User.current.id}','file')") %>
<%= link_to '更新版本',attachments_versions_path(file),:class => "postOptionLink",:remote=>true %>
<% if @course.is_public? %>
@@ -61,7 +61,7 @@
<% end %>
<%else%>
- <%= link_to("发 送".html_safe, 'javascript:void(0)',:class => "postOptionLink2",:onclick=>"show_send('#{file.id}')") %>
+ <%= link_to("发 送".html_safe, 'javascript:void(0)',:class => "postOptionLink2",:onclick=>"show_send('#{file.id}','#{User.current.id}','file')") %>
<% end %>
<% end %>
diff --git a/app/views/files/_file_tools.html.erb b/app/views/files/_file_tools.html.erb
index df4d9d738..91b475600 100644
--- a/app/views/files/_file_tools.html.erb
+++ b/app/views/files/_file_tools.html.erb
@@ -2,7 +2,7 @@
<% if (is_project_manager?(User.current, @project) || file.author_id == User.current.id) && project_contains_attachment?(@project,file) %>
<% if (delete_allowed || User.current.id == file.author_id) && file.container_id == @project.id && file.container_type == "Project" %>
- <%= link_to("发 送".html_safe, 'javascript:void(0)',:class => "postOptionLink",:onclick=>"show_send('#{file.id}')") %>
+ <%= link_to("发 送".html_safe, 'javascript:void(0)',:class => "postOptionLink",:onclick=>"show_send('#{file.id}','#{User.current.id}','file')") %>
<%= link_to '更新版本',attachments_versions_path(file),:class => "postOptionLink",:remote=>true %>
<% if @project.is_public? %>
@@ -25,7 +25,7 @@
<% end %>
<%else%>
- <%= link_to("发 送".html_safe, 'javascript:void(0)',:class => "postOptionLink2",:onclick=>"show_send('#{file.id}')") %>
+ <%= link_to("发 送".html_safe, 'javascript:void(0)',:class => "postOptionLink2",:onclick=>"show_send('#{file.id}','#{User.current.id}','file')") %>
<% end %>
<% end %>
diff --git a/app/views/files/_org_subfield_list.html.erb b/app/views/files/_org_subfield_list.html.erb
index 424319889..7a5d95125 100644
--- a/app/views/files/_org_subfield_list.html.erb
+++ b/app/views/files/_org_subfield_list.html.erb
@@ -38,7 +38,7 @@
<% if User.current.logged? %>
<% if (delete_allowed || User.current.id == file.author_id) && file.container_id == org_subfield.id && file.container_type == "OrgSubfield" %>
- <%= link_to("发 送".html_safe, 'javascript:void(0)',:class => "postOptionLink",:onclick=>"show_send('#{file.id}')") %>
+ <%= link_to("发 送".html_safe, 'javascript:void(0)',:class => "postOptionLink",:onclick=>"show_send('#{file.id}','#{User.current.id}','file')") %>
<%= link_to '更新版本',attachments_versions_path(file),:class => "postOptionLink",:remote=>true %>
@@ -52,7 +52,7 @@
<%else%>
- <%= link_to("发 送".html_safe, 'javascript:void(0)',:class => "postOptionLink2",:onclick=>"show_send('#{file.id}')") %>
+ <%= link_to("发 送".html_safe, 'javascript:void(0)',:class => "postOptionLink2",:onclick=>"show_send('#{file.id}','#{User.current.id}','file')") %>
<% end %>
<% end %>
diff --git a/app/views/files/_tool_settings.html.erb b/app/views/files/_tool_settings.html.erb
index 72ec6d89f..41d74b7df 100644
--- a/app/views/files/_tool_settings.html.erb
+++ b/app/views/files/_tool_settings.html.erb
@@ -4,7 +4,7 @@
<% if (is_project_manager?(User.current, project) || file.author_id == User.current.id) && project_contains_attachment?(project, file) %>
<% if (delete_allowed || User.current.id == file.author_id) && file.container_id == project.id && file.container_type == "Project" %>
- <%= link_to("发 送".html_safe, 'javascript:void(0)',:class => "postOptionLink",:onclick=>"show_send('#{file.id}')") %>
+ <%= link_to("发 送".html_safe, 'javascript:void(0)',:class => "postOptionLink",:onclick=>"show_send('#{file.id}','#{User.current.id}','file')") %>
<%= link_to '更新版本',attachments_versions_path(file),:class => "postOptionLink",:remote=>true %>
<% if project.is_public? %>
@@ -20,7 +20,7 @@
<% end %>
<% else %>
- <%= link_to("发 送".html_safe, 'javascript:void(0)',:class => "postOptionLink2",:onclick=>"show_send('#{file.id}')") %>
+ <%= link_to("发 送".html_safe, 'javascript:void(0)',:class => "postOptionLink2",:onclick=>"show_send('#{file.id}','#{User.current.id}','file')") %>
<% end %>
<% end %>
diff --git a/app/views/files/index.html.erb b/app/views/files/index.html.erb
index b702d5872..8cb547b13 100644
--- a/app/views/files/index.html.erb
+++ b/app/views/files/index.html.erb
@@ -245,105 +245,7 @@
});
}
- function observeSearchfieldOnInput(fieldId, url,send_id,send_ids) {
- $('#'+fieldId).each(function() {
- var $this = $(this);
- $this.addClass('autocomplete');
- $this.attr('data-value-was', $this.val());
- var check = function() {
- var val = $this.val();
- if ($this.attr('data-value-was') != val){
- $this.attr('data-value-was', val);
- $.ajax({
- url: url,
- type: 'get',
- data: {search: $this.val(),send_id:send_id,send_ids:send_ids},
- success: function(data){ },
- beforeSend: function(){ $this.addClass('ajax-loading'); },
- complete: function(){ $this.removeClass('ajax-loading'); }
- });
- }
- };
- var reset = function() {
- if (timer) {
- clearInterval(timer);
- timer = setInterval(check, 300);
- }
- };
- var timer = setInterval(check, 300);
- $this.bind('keyup click mousemove', reset);
- });
- }
- function check_des(event){
- if($(".sectionContent").find('input[type="radio"]:checked').length <= 0){
- event.preventDefault();
- $(".orgDirection").text('目标地址组织不能为空')
- return false;
- }else if($(".columnContent").find('input[type="radio"]:checked').length <= 0){
- event.preventDefault();
- $(".orgDirection").text('目标地址栏目不能为空')
- return false;
- }else{
- return true;
- }
- }
- <% if User.current.logged? %>
- var sendType = '1';
- var lastSendType ;//初始为发送到我的课程
- function show_send(id){
- if (lastSendType === '2'){ //如果已经发送过一次了,那么就应该沿用上次发送的类型。
- $.ajax({
- type: 'get',
- url: '<%= search_user_project_user_path(User.current)%>' + '?send_id=' + id
- });
- }else if(lastSendType == '1'){
- $.ajax({
- type: 'get',
- url: '<%= search_user_course_user_path(User.current)%>' + '?send_id=' + id
- });
- }else if( lastSendType == '3'){//组织
- $.ajax({
- type: 'get',
- url: '<%= search_user_org_user_path(User.current)%>' + '?send_id=' + id
- });
- }else{
- $.ajax({
- type: 'get',
- url: '<%= search_user_course_user_path(User.current)%>' + '?send_id=' + id
- });
- }
- }
-
- //id 发送的id
- //发送的id数组
- function chooseSendType(res_id,res_ids){
-
- sendType = $(".resourcesSendType").val();
- if (sendType === lastSendType) {
- return;
- } else if(lastSendType != null) { //不是第一次点击的时候
- if (sendType == '1') {
- $.ajax({
- type: 'get',
- url: '<%= search_user_course_user_path(User.current)%>' + '?send_id=' + res_id
- });
- } else if(sendType == '2') {
- $.ajax({
- type: 'get',
- url: '<%= search_user_project_user_path(User.current)%>' + '?send_id=' + res_id
- });
- }else if(sendType == '3'){
- $.ajax({
- type: 'get',
- url: '<%= search_user_org_user_path(User.current)%>' + '?send_id=' + res_id
- });
- }
- }
-
- lastSendType = sendType;
- }
- <% end %>
<% if @course %>
var tagNameHtml; //当前双击的链接的父节点的html
var tagName; //标签的值
diff --git a/app/views/layouts/base_org.html.erb b/app/views/layouts/base_org.html.erb
index 2007aec5a..9d3f76cc6 100644
--- a/app/views/layouts/base_org.html.erb
+++ b/app/views/layouts/base_org.html.erb
@@ -120,21 +120,19 @@
- <% if User.current.logged? %>
-
- <%= link_to '文章', organization_org_document_comments_path(@organization) %>
- <% if User.current.logged? %>
- (
- <%= link_to OrgDocumentComment.where("organization_id =? and parent_id is null", @organization.id).count, organization_org_document_comments_path(@organization), :class => "linkBlue" %>
- )
- <% end %>
- |
- <%= link_to '成员', members_organization_path(@organization.id) %>
- <% if User.current.logged? %>
- (<%= link_to @organization.org_members.count, members_organization_path(@organization.id), :id => 'org_members_count_id', :class => "linkBlue" %>)
- <% end %>
-
- <% end %>
+
+ <%= link_to '文章', organization_org_document_comments_path(@organization) %>
+ <%# if User.current.logged? %>
+ (
+ <%= link_to OrgDocumentComment.where("organization_id =? and parent_id is null", @organization.id).count, organization_org_document_comments_path(@organization), :class => "linkBlue" %>
+ )
+ <%# end %>
+ <% if User.current.logged? %>
+ |
+ <%= link_to '成员', members_organization_path(@organization.id) %>
+ (<%= link_to @organization.org_members.count, members_organization_path(@organization.id), :id => 'org_members_count_id', :class => "linkBlue" %>)
+ <% end %>
+
+ <% elsif User.current.logged? %>
+
+
+
+
+ <%= link_to("发送", 'javascript:void(0)',:class => "postOptionLink",:onclick=>"show_send('#{@news.id}','#{User.current.id}','news')") %>
+
+
+
+
<%end%>
通知: <%= @news.title%>
diff --git a/app/views/news/_edit_for_org_subfield.html.erb b/app/views/news/_edit_for_org_subfield.html.erb
new file mode 100644
index 000000000..75f24e6b7
--- /dev/null
+++ b/app/views/news/_edit_for_org_subfield.html.erb
@@ -0,0 +1,49 @@
+<%= content_for(:header_tags) do %>
+ <%= import_ke(enable_at: true, prettify: false) %>
+<% end %>
+
+
+
+
+
+
+
+
+ <%= text_area :quote,:quote,:style => 'display:none' %>
+ <%= hidden_field_tag :asset_id,params[:asset_id],:required => false,:style => 'display:none' %>
+
+ <%= f.kindeditor :description, :editor_id => 'project_news_description_editor',
+ :owner_id => news.nil? ? 0: news.id,
+ :owner_type => OwnerTypeHelper::NEWS,
+ :width => '100%',
+ :height => 300,
+ :minHeight=>300,
+ :class => 'talk_text fl',
+ :input_html => { :id => 'news_content',
+ :class => 'talk_text fl',
+ :maxlength => 5000 },
+ at_id: news.id, at_type: news.class.to_s
+ %>
+
+
+
+
+
+
+ <%= render :partial => 'attachments/form_course', :locals => {:container => news, :isReply => false} %>
+
+
+
+
+
确定
+
或
+ <%= link_to "取消",news_path(news), :class => "fr mr10 mt3"%>
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/views/news/_organization_show.html.erb b/app/views/news/_organization_show.html.erb
new file mode 100644
index 000000000..98d14c3ab
--- /dev/null
+++ b/app/views/news/_organization_show.html.erb
@@ -0,0 +1,174 @@
+<%= content_for(:header_tags) do %>
+ <%= import_ke(enable_at: false, prettify: false, init_activity: false) %>
+<% end %>
+
+
+
+
+
+
+
+ <%= link_to image_tag(url_to_avatar(@news.author),:width=>50,:height => 50,:alt=>'图像' ),user_path(@news.author) %>
+
+
+ <% if User.current.logged? %>
+
+
+
+
+ <%= link_to("发送", 'javascript:void(0)',:class => "postOptionLink",:onclick=>"show_send('#{@news.id}','#{User.current.id}','news')") %>
+
+ <%= link_to(
+ l(:button_edit),
+ {:action => 'edit', :id => @news},
+ :class => 'postOptionLink'
+ ) if @news.author == User.current %>
+
+
+ <%= delete_link(
+ news_path(@news),
+ :data => {:confirm => l(:text_are_you_sure)},
+ :class => 'postOptionLink'
+ ) if @news.author == User.current %>
+
+
+
+
+
+ <%end%>
+
+
+
+
+ <% if @news.try(:author).try(:realname) == ' ' %>
+ <%= link_to @news.try(:author), user_path(@news.author,:host=>Setting.host_user), :class => "linkBlue2", :target=> "_blank" %>
+ <% else %>
+ <%= link_to @news.try(:author).try(:realname), user_path(@news.author,:host=>Setting.host_user), :class => "linkBlue2", :target=> "_blank" %>
+ <% end %>
+
+
<%= format_time( @news.created_on)%>
+
+
+ <%= @news.description.html_safe%>
+
+
+
+ <%= link_to_attachments_course @news, :author => false %>
+
+
+
+
+
+
+ <% unless @comments.empty? %>
+
+
回复(<%=@comments.count %>)
+
+
+
+ <% @comments.each_with_index do |reply,i| %>
+
+
+
+ <%= link_to image_tag(url_to_avatar(reply.author), :width => 33,:height => 33), user_path(reply.author) %>
+
+
+
+ <% 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 %>
+
+
+ <%= reply.comments.html_safe%>
+
+
+ <%= format_time(reply.created_on) %>
+
+
+
+
+
+
+ <% end %>
+
+
+ <% end %>
+
+ <% if @news.commentable? %>
+
+ <% end %>
+
+
diff --git a/app/views/news/_project_news.html.erb b/app/views/news/_project_news.html.erb
index efbb74e46..fa2a99cd7 100644
--- a/app/views/news/_project_news.html.erb
+++ b/app/views/news/_project_news.html.erb
@@ -1,77 +1,36 @@
-
-<%
- btn_tips = l(:label_news_new)
- label_tips = l(:label_news)
-%>
-
-
<%= label_tips %>
-
-
-
<%= l(:label_total_news) %><%= @news_count %> <%= l(:label_project_new_list) %>
- <% if @project && User.current.allowed_to?(:manage_news, @project) %>
- <%= link_to(btn_tips, new_project_news_path(@project),
- :class => 'problem_new_btn fl c_dorange') %>
-
-
- <% end %>
-
-
-
- <% if @newss.empty? %>
-
- <%= l(:label_no_data) %>
-
- <% else %>
- <% @newss.each do |news| %>
-
- <%= link_to image_tag(url_to_avatar(news.author),:width => 42,:height => 42), user_path(news.author), :class => "problem_pic fl" %>
-
- <%= link_to_user_header(news.author,false,{:class=> 'problem_name c_orange fl'}) if news.respond_to?(:author) %>
-
<%= l(:label_add_news) %>: <%= link_to h(news.title), news_path(news),:class => 'problem_tit fl fb c_dblue' %>
- <%=link_to "
#{news.comments.all.count} ".html_safe, news_path(news.id), :class => "pro_mes_w_news" %>
-
-
<%=textAreailizable news.description %>
-
-
<%= l(:label_create_time) %> :<%= format_time(news.created_on) %>
-
-
-
+
+
-
-
- <%= pagination_links_full @news_pages, @news_count, :per_page_links => false, :remote => false, :flag => true%>
-
-
- <% other_formats_links do |f| %>
- <%= f.link_to 'Atom', :url => {:project_id => @project, :key => User.current.rss_key} %>
- <% end %>
-
- <% content_for :header_tags do %>
- <%= auto_discovery_link_tag(:atom, params.merge({:format => 'atom', :page => nil, :key => User.current.rss_key})) %>
- <%= stylesheet_link_tag 'scm' %>
- <% end %>
-
- <% html_title(l(:label_news_plural)) -%>
-
-
diff --git a/app/views/news/_project_news_detail.html.erb b/app/views/news/_project_news_detail.html.erb
new file mode 100644
index 000000000..fdb035bf5
--- /dev/null
+++ b/app/views/news/_project_news_detail.html.erb
@@ -0,0 +1,56 @@
+<%= content_for(:header_tags) do %>
+ <%= import_ke(enable_at: false, prettify: false) %>
+ <%= javascript_include_tag "init_activity_KindEditor" %>
+<% end %>
+
+
+<% if all_news %>
+ <% all_news.each do |news| %>
+
+ <% if news %>
+ <%= render :partial => 'users/project_news', :locals => {:activity => news, :user_activity_id => news.id} %>
+ <% end %>
+ <% end %>
+
+ <% if all_news.count == 10 %>
+ <%= link_to "点击展开更多",news_index_path(:project_id => @project.id ,:page => page),:id => "show_more_project_news",:remote => "true",:class => "loadMore mt10 f_grey"%>
+ <% end %>
+<% end%>
+
diff --git a/app/views/news/_project_news_new.html.erb b/app/views/news/_project_news_new.html.erb
new file mode 100644
index 000000000..0e9b03c6f
--- /dev/null
+++ b/app/views/news/_project_news_new.html.erb
@@ -0,0 +1,60 @@
+<%= content_for(:header_tags) do %>
+ <%= import_ke(enable_at: true, prettify: false) %>
+<% end %>
+
+
+
+
+
+
+
+ <%= f.check_box :sticky, :value => edit_mode ? news.sticky : 0 %>
+ <%= label_tag 'news_sticky', l(:label_board_sticky) %>
+
+
+
+
+ <%= text_area :quote,:quote,:style => 'display:none' %>
+ <%= hidden_field_tag :asset_id,params[:asset_id],:required => false,:style => 'display:none' %>
+
+ <%= f.kindeditor :description, :editor_id => 'project_news_description_editor',
+ :owner_id => news.nil? ? 0: news.id,
+ :owner_type => OwnerTypeHelper::NEWS,
+ :width => '100%',
+ :height => 300,
+ :minHeight=>300,
+ :class => 'talk_text fl',
+ :input_html => { :id => 'news_content',
+ :class => 'talk_text fl',
+ :maxlength => 5000 },
+ at_id: news.id, at_type: news.class.to_s
+ %>
+
+
+
+
+
+
+ <%= render :partial => 'attachments/form_course', :locals => {:container => news, :isReply => false} %>
+
+
+
+
+ <%if !edit_mode %>
+
确定
+
或
+
取消
+ <% else %>
+
确定
+
或
+ <%= link_to "取消",news_path(news), :class => "fr mr10 mt3"%>
+ <% end %>
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/views/news/_project_show.html.erb b/app/views/news/_project_show.html.erb
index 463b0f489..26ff807db 100644
--- a/app/views/news/_project_show.html.erb
+++ b/app/views/news/_project_show.html.erb
@@ -1,72 +1,184 @@
-
-
<%= l(:label_news) %>
-
+<%= content_for(:header_tags) do %>
+ <%= import_ke(enable_at: false, prettify: false, init_activity: false) %>
+<% end %>
+
+
+
-<% if authorize_for('news', 'edit') %>
-
- <%= labelled_form_for :news, @news, :url => news_path(@news),
- :html => { :id => 'news-form', :multipart => true, :method => :put } do |f| %>
- <%= render :partial => 'project_form', :locals => { :f => f, :is_new => false } %>
- <% end %>
-
+
+
+
+ <%= link_to image_tag(url_to_avatar(@news.author),:width=>50,:height => 50,:alt=>'图像' ),user_path(@news.author) %>
-<% end %>
+
+ <% if User.current.allowed_to?(:manage_news, @project)%>
+
+
+
+
+ <%= link_to("发送", 'javascript:void(0)',:class => "postOptionLink",:onclick=>"show_send('#{@news.id}','#{User.current.id}','news')") %>
+
+ <%= link_to(
+ l(:button_edit),
+ {:action => 'edit', :id => @news},
+ :class => 'postOptionLink'
+ ) if User.current.allowed_to?(:manage_news, @project) %>
+
+
+ <%= delete_link(
+ news_path(@news),
+ :data => {:confirm => l(:text_are_you_sure)},
+ :class => 'postOptionLink'
+ ) if User.current.allowed_to?(:manage_news, @project) %>
+
+
+
+
+
+ <% elsif User.current.logged? %>
+
+
+
+
+ <%= link_to("发送", 'javascript:void(0)',:class => "postOptionLink",:onclick=>"show_send('#{@news.id}','#{User.current.id}','news')") %>
+
+
+
+
+ <%end%>
+
+
-
- <%= link_to image_tag(url_to_avatar(@news.author),:width => 42,:height => 42), user_path(@news.author), :class => "problem_pic fl" %>
-
-
<%=h @news.title %>
- <%#= watcher_link(@news, User.current) %>
- <%= link_to(l(:button_edit),
- edit_news_path(@news),
- :class => 'talk_edit fr',
- :accesskey => accesskey(:edit),
- :onclick => '$("#edit-news").show(); return false;') if User.current.allowed_to?(:manage_news, @project) %>
- <%= delete_link news_path(@news),:class => 'talk_edit fr' if User.current.allowed_to?(:manage_news, @project) %>
-
-
<%= textAreailizable(@news, :description) %>
- <%= link_to_attachments_course @news %>
- <%= l(:label_create_time) %> : <%= format_time(@news.created_on) %>
-
+
+ <% if @news.try(:author).try(:realname) == ' ' %>
+ <%= link_to @news.try(:author), user_path(@news.author,:host=>Setting.host_user), :class => "linkBlue2", :target=> "_blank" %>
+ <% else %>
+ <%= link_to @news.try(:author).try(:realname), user_path(@news.author,:host=>Setting.host_user), :class => "linkBlue2", :target=> "_blank" %>
+ <% end %>
+
+
<%= format_time( @news.created_on)%>
+
+
+ <%= @news.description.html_safe%>
+
+ <%= link_to_attachments_course @news, :author => false %>
+
-
-<% if @news.commentable? %>
-
- <%= toggle_link l(:label_comment_add), "add_comment_form", :focus => "comment_comments" %>
-
- <%= form_tag({:controller => 'comments', :action => 'create', :id => @news}, :id => "add_comment_form") do %>
-
- <%= text_area 'comment', 'comments', :rows => 5, :style => "width:98%" %>
+
+
+
+
+ <% unless @comments.empty? %>
+
+
回复(<%=@comments.count %>)
+
+
+
+ <% @comments.each_with_index do |reply,i| %>
+
+
+
+ <%= link_to image_tag(url_to_avatar(reply.author), :width => 33,:height => 33), user_path(reply.author) %>
+
+
+
+ <% 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 %>
+
+
+ <%= reply.comments.html_safe%>
+
+
+ <%= format_time(reply.created_on) %>
+
+
+
+
+
+
+ <% end %>
+
-
-
<%= l(:label_comment_add) %>
- <% end %>
<% end %>
-
-<% comments = @comments.reverse %>
-<% comments.each do |comment| %>
- <% next if comment.new_record? %>
-
-
<%= link_to image_tag(url_to_avatar(comment.author),:width => 42,:height => 42), user_path(comment.author), :class => "ping_dispic" %>
-
-
- <%= link_to_user_header(comment.author,false,:class => 'c_blue fb fl mb10 ') if comment.respond_to?(:author) %>
<%= format_time(comment.created_on) %>
+
+ <% if @news.commentable? %>
+
-
-
- <% end if @comments.any? %>
+ <% end %>
+
-<% content_for :header_tags do %>
- <%= stylesheet_link_tag 'scm' %>
-<% end %>
-<% html_title @news.title -%>
diff --git a/app/views/news/edit.html.erb b/app/views/news/edit.html.erb
index b043b06f8..76259f5d7 100644
--- a/app/views/news/edit.html.erb
+++ b/app/views/news/edit.html.erb
@@ -16,8 +16,12 @@
<%= labelled_form_for :news, @news, :url => news_path(@news),
:html => { :id => 'news-form', :multipart => true, :method => :put } do |f| %>
- <%#= labelled_form_for :news, :url =>{:controller=>'news',:action => 'new', :course_id => @course.id},
- :html => {:nhname=>'form',:multipart => true, :id => 'news-form'} do |f| %>
- <%= render :partial => 'course_news_new', :locals => {:f => f, :news => @news, :edit_mode => true, :course => @course} %>
+ <% if @org_subfield %>
+ <%= render :partial => 'edit_for_org_subfield', :locals => {:f => f, :news => @news} %>
+ <% elsif @course %>
+ <%= render :partial => 'course_news_new', :locals => {:f => f, :news => @news, :edit_mode => true, :course => @course} %>
+ <% elsif @project %>
+ <%= render :partial => 'project_news_new', :locals => {:f => f, :news => @news, :edit_mode => true} %>
+ <% end %>
<% end %>
diff --git a/app/views/news/index.html.erb b/app/views/news/index.html.erb
index 2635e52a6..c4dd11ea0 100644
--- a/app/views/news/index.html.erb
+++ b/app/views/news/index.html.erb
@@ -3,3 +3,6 @@
<% elsif @course %>
<%= render :partial => 'course_news', locals: {course: @course} %>
<% end %>
+
+
+
diff --git a/app/views/news/index.js.erb b/app/views/news/index.js.erb
index 302c0cf9d..d2cac877c 100644
--- a/app/views/news/index.js.erb
+++ b/app/views/news/index.js.erb
@@ -1,5 +1,5 @@
<% if @project %>
- $("#news_list").html("<%= escape_javascript(render :partial => 'course_news_list', :locals=>{ :newss=>@newss,:obj_pages=>@obj_pages, :obj_count=>@obj_count})%>");
+ $("#show_more_project_news").replaceWith("<%= escape_javascript(render :partial => 'project_news_detail', :locals=>{ :all_news=>@newss,:page => @page})%>");
<% else %>
$("#show_more_course_news").replaceWith("<%= escape_javascript( render :partial => 'course_news_detail', :locals =>{:newss => @newss, :page => @page} )%>");
<% end %>
\ No newline at end of file
diff --git a/app/views/news/show.html.erb b/app/views/news/show.html.erb
index 846be063f..4f6ca056e 100644
--- a/app/views/news/show.html.erb
+++ b/app/views/news/show.html.erb
@@ -2,6 +2,8 @@
<%= render :partial => 'project_show', locals: {project: @project} %>
<% elsif @course %>
<%= render :partial => 'course_show', locals: {course: @course} %>
+<% elsif @organization %>
+ <%= render :partial => 'organization_show', :locals => {:org_subfield => @org_subfield} %>
<% end %>
+ <% replies_all_i = replies_all_i + 1 %>
+
+
+ <%= link_to image_tag(url_to_avatar(comment.author), :width => "33", :height => "33"), user_path(comment.author_id), :alt => "用户头像" %>
+
+
+
+ <% if comment.try(:author).try(:realname) == ' ' %>
+ <%= link_to comment.try(:author), user_path(comment.author_id), :class => "newsBlue mr10 f14" %>
+ <% else %>
+ <%= link_to comment.try(:author).try(:realname), user_path(comment.author_id), :class => "newsBlue mr10 f14" %>
+ <% end %>
+ <%= format_time(comment.created_on) %>
+
+
+
+
+
+
+ <% end %>
+
+
+ <% end %>
+
+
+
<%= link_to image_tag(url_to_avatar(User.current), :width => "33", :height => "33"), user_path(activity.author_id), :alt => "用户头像" %>
+
+
+ <%= form_for('new_form',:url => {:controller => 'comments', :action => 'create', :id => activity},:method => "post", :remote => true) do |f|%>
+
+
+
+
发送
+
+
+ <% end%>
+
+
+
+
+
+
+
+
diff --git a/app/views/organizations/_show_home_page.html.erb b/app/views/organizations/_show_home_page.html.erb
index 32d3ad10d..f6d5fc9ea 100644
--- a/app/views/organizations/_show_home_page.html.erb
+++ b/app/views/organizations/_show_home_page.html.erb
@@ -2,15 +2,13 @@
- <% if User.current.logged? %>
<%= link_to document.title, org_document_comment_path(:id => document.id, :organization_id => document.organization.id) %>
- <% end %>
<% unless document.content.blank? %>
<%= document.content.html_safe %>
<% end %>
- <% if params[:show_homepage].nil? and User.current.logged? %>
+ <% if params[:show_homepage].nil? %>
发布时间:<%= format_activity_day(document.created_at) %> <%= format_time(document.created_at, false) %>
diff --git a/app/views/organizations/new.html.erb b/app/views/organizations/new.html.erb
index ab0a4ec50..ea7fbbb30 100644
--- a/app/views/organizations/new.html.erb
+++ b/app/views/organizations/new.html.erb
@@ -34,6 +34,12 @@
(打钩为公开,不打钩则不公开,若不公开,仅组织成员可见该组织。)
+
+ 允许游客下载:
+
+ (打钩为允许游客下载文件)
+
+
创建
<%= link_to "取消",user_activities_path(User.current.id),:class => "blue_btn grey_btn fl c_white"%>
diff --git a/app/views/organizations/setting.html.erb b/app/views/organizations/setting.html.erb
index 45ac302ca..436d571f5 100644
--- a/app/views/organizations/setting.html.erb
+++ b/app/views/organizations/setting.html.erb
@@ -65,6 +65,9 @@
公开 :
class="ml3" />
+ 允许游客下载:
+ class="ml3" />
+
保存
<% end %>
diff --git a/app/views/projects/_development_group.html.erb b/app/views/projects/_development_group.html.erb
index 6cac445ee..2c7d36fb5 100644
--- a/app/views/projects/_development_group.html.erb
+++ b/app/views/projects/_development_group.html.erb
@@ -47,6 +47,9 @@
<% else %>
<%= link_to l(:project_module_repository),({:controller => 'repositories', :action => 'show', :id => @project, :repository_id => gitlab_repository(@project).identifier}), :class => "f14 c_blue02" %>
<% end %>
+ <% unless @project.project_score.changeset_num == 0 %>
+ <%= link_to "(#{@project.project_score.changeset_num})", ({:controller => 'repositories', :action => 'show', :id => @project, :repository_id => gitlab_repository(@project).identifier}), :class => "subnav_num c_orange",:id=>'project_files_count_nav' %>
+ <% end %>
<% if (User.current.admin? || User.current.allowed_to?({:controller => 'projects', :action => 'settings'}, @project)) && rep_is_gitlab?(@project) %>
<%= link_to "+"+l(:project_gitlab_create_repository), url_for(:controller => 'projects', :action => 'settings', :id => @project.id, :tab=>'repositories') , :class => "subnav_green" %>
diff --git a/app/views/users/_course_news.html.erb b/app/views/users/_course_news.html.erb
index 100a1a1bf..67d09d365 100644
--- a/app/views/users/_course_news.html.erb
+++ b/app/views/users/_course_news.html.erb
@@ -35,6 +35,17 @@
<%= render :partial=>"attachments/activity_attach", :locals=>{:activity => activity} %>
+
+
+
+ <% if User.current.logged? %>
+
+ <%= link_to("发 送".html_safe, 'javascript:void(0)',:class => "postOptionLink",:onclick=>"show_send('#{activity.id}',#{User.current.id},'news')") %>
+
+ <% end %>
+
+
+
@@ -120,4 +131,4 @@
-
\ No newline at end of file
+
diff --git a/app/views/users/_project_news.html.erb b/app/views/users/_project_news.html.erb
index 3ea1479c5..eb4941668 100644
--- a/app/views/users/_project_news.html.erb
+++ b/app/views/users/_project_news.html.erb
@@ -1,29 +1,134 @@
-
-
+
+
-
+ <%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_path(activity.author_id), :alt => "用户头像" %>
+ <%= render :partial => 'users/show_detail_info', :locals => {:user => activity.author} %>
+
-
-
-
-
-
截止时间:2015-08-20
+
+ <% if @ctivity.try(:author).try(:realname) == ' ' %>
+ <%= link_to activity.try(:author), user_path(activity.author_id), :class => "newsBlue mr15" %>
+ <% else %>
+ <%= link_to activity.try(:author).try(:realname), user_path(activity.author_id), :class => "newsBlue mr15" %>
+ <% end %> TO
+ <%= link_to activity.project.name.to_s+" | 项目通知", project_news_index_path(activity.project), :class => "newsBlue ml15" %>
+
+
+ <%= link_to activity.title.to_s, news_path(activity), :class => "postGrey" %>
+
+ <% if activity.sticky == 1%>
+
置顶
+ <% end%>
+
+
+ 发布时间:<%= format_time(activity.created_on) %>
-
(作业描述)系统中有多个ckeditor,且每个ckeditor的id未知,怎么样做到当光标聚焦某个ckeditor的文本框中,该编辑器的默认值应自动消失的处理;网络拓扑图开发;
-
+
+ <%=render :partial =>"users/intro_content", :locals=>{:user_activity_id =>user_activity_id, :content=>activity.description} %>
+
+
+
+
+
+ <%= render :partial=>"attachments/activity_attach", :locals=>{:activity => activity} %>
+
+
-
+ <% if User.current.logged? %>
+
+ <%= link_to("发 送".html_safe, 'javascript:void(0)',:class => "postOptionLink",:onclick=>"show_send('#{activity.id}','#{User.current.id}','news')") %>
+
+ <% end %>
-
\ No newline at end of file
+ <% count=activity.comments.count %>
+
+
+
回复
+ <%= count>0 ? "(#{count})" : "" %> ▪
+
+ <% if activity.author == User.current %>
+ 赞 <%= get_praise_num(activity) > 0 ? "(#{get_praise_num(activity)})" : "" %>
+ <% else %>
+ <%=render :partial=> "praise_tread/praise", :locals => {:activity=>activity, :user_activity_id=>user_activity_id,:type=>"activity"}%>
+ <% end %>
+
+
+
<%#= format_date(activity.updated_on) %>
+ <%if count>3 %>
+
+ <% end %>
+
+
+ <% replies_all_i = 0 %>
+ <% if count > 0 %>
+
+
+ <% activity.comments.reorder("created_on desc").each do |comment| %>
+
+ <% replies_all_i = replies_all_i + 1 %>
+
+
+ <%= link_to image_tag(url_to_avatar(comment.author), :width => "33", :height => "33"), user_path(comment.author_id), :alt => "用户头像" %>
+
+
+
+ <% if comment.try(:author).try(:realname) == ' ' %>
+ <%= link_to comment.try(:author), user_path(comment.author_id), :class => "newsBlue mr10 f14" %>
+ <% else %>
+ <%= link_to comment.try(:author).try(:realname), user_path(comment.author_id), :class => "newsBlue mr10 f14" %>
+ <% end %>
+ <%= format_time(comment.created_on) %>
+
+
+
+
+
+
+ <% end %>
+
+
+ <% end %>
+
+
+
<%= link_to image_tag(url_to_avatar(User.current), :width => "33", :height => "33"), user_path(activity.author_id), :alt => "用户头像" %>
+
+
+ <%= form_for('new_form',:url => {:controller => 'comments', :action => 'create', :id => activity},:method => "post", :remote => true) do |f|%>
+
+
+
+
发送
+
+
+ <% end%>
+
+
+
+
+
+
+
+
diff --git a/app/views/users/_resource_share_for_orgs.html.erb b/app/views/users/_resource_share_for_orgs.html.erb
index 5a712b857..792db7546 100644
--- a/app/views/users/_resource_share_for_orgs.html.erb
+++ b/app/views/users/_resource_share_for_orgs.html.erb
@@ -1,7 +1,7 @@
发送到
-
+
课程
项目
组织
@@ -13,7 +13,7 @@
<%= hidden_field_tag(:send_ids, send_ids) %>
<% end %>
diff --git a/app/views/users/_resource_share_for_project_popup.html.erb b/app/views/users/_resource_share_for_project_popup.html.erb
index f15c29e90..33fa03061 100644
--- a/app/views/users/_resource_share_for_project_popup.html.erb
+++ b/app/views/users/_resource_share_for_project_popup.html.erb
@@ -2,7 +2,7 @@
发送到
-
+
课程
项目
组织
@@ -18,7 +18,7 @@
<%= hidden_field_tag(:send_ids, send_ids) %>
<%= submit_tag '',:class=>'searchIcon2',:onfocus=>"this.blur();",:style=>'border-style:none' %>
diff --git a/app/views/users/_resource_share_popup.html.erb b/app/views/users/_resource_share_popup.html.erb
index af7bd5bd3..74265cabb 100644
--- a/app/views/users/_resource_share_popup.html.erb
+++ b/app/views/users/_resource_share_popup.html.erb
@@ -4,7 +4,7 @@
发送到
-
+
课程
项目
组织
@@ -20,7 +20,7 @@
<%= hidden_field_tag(:send_ids, send_ids) %>
<%= submit_tag '',:class=>'searchIcon2',:onfocus=>"this.blur();",:style=>'border-style:none' %>
diff --git a/app/views/users/_share_news_to_course.html.erb b/app/views/users/_share_news_to_course.html.erb
new file mode 100644
index 000000000..144792201
--- /dev/null
+++ b/app/views/users/_share_news_to_course.html.erb
@@ -0,0 +1,56 @@
+
+
+
+
+
发送到
+
+
+ 课程
+ 项目
+ 组织
+
+
+
+
+
+
+ <%= form_tag search_user_course_user_path(user),:method => 'get',
+ :remote=>true,:id=>'search_user_course_form',:class=>'resourcesSearchBox' do %>
+ <%= hidden_field_tag(:send_id, send_id) %>
+ <%= hidden_field_tag(:send_ids, send_ids) %>
+
+
+
+ <%= submit_tag '',:class=>'searchIcon2',:onfocus=>"this.blur();",:style=>'border-style:none' %>
+ <% end %>
+
+ <%= form_tag share_news_to_course_user_path(user),:remote=>true,:id=>'course_list_form' %>
+
+
+ <%= hidden_field_tag(:send_id, send_id) %>
+ <%= hidden_field_tag(:send_ids, send_ids) %>
+
+ <% if !courses.empty? %>
+ <% courses.each do |course| %>
+
+ <% end %>
+
+
+
+
+
+ <%= submit_tag '确定',:class=>'sendSourceText',:onfocus=>'this.blur();' %>
+
+
+
+
+ <% end %>
+
+
diff --git a/app/views/users/_share_news_to_org.html.erb b/app/views/users/_share_news_to_org.html.erb
new file mode 100644
index 000000000..794c6db89
--- /dev/null
+++ b/app/views/users/_share_news_to_org.html.erb
@@ -0,0 +1,59 @@
+
+
发送到
+
+
+ 课程
+ 项目
+ 组织
+
+
+ <%= form_tag search_user_org_user_path(user),:method => 'get',
+ :remote=>true,:id=>'search_user_org_form' do %>
+ <%= hidden_field_tag(:send_id, send_id) %>
+ <%= hidden_field_tag(:send_ids, send_ids) %>
+
+
+ <% end %>
+
+
+<%= form_tag share_news_to_org_user_path(user),:remote=>true,:id=>'orgs_list_form' do %>
+ <%= hidden_field_tag(:send_id, send_id) %>
+ <%= hidden_field_tag(:send_ids, send_ids) %>
+
+
+
+
+
+ <%= render :partial => 'users/org_resources_subfield',:locals => {:subfield=>nil}%>
+
+
+
+
+
+
+
+
+ 目标地址:
+
+ <%= submit_tag '确定',:class=>'sendSourceText',:onfocus=>'this.blur();',:onclick=>"check_des(event);" %>
+
+
+
+<%end %>
\ No newline at end of file
diff --git a/app/views/users/_share_news_to_project.html.erb b/app/views/users/_share_news_to_project.html.erb
new file mode 100644
index 000000000..37bac105a
--- /dev/null
+++ b/app/views/users/_share_news_to_project.html.erb
@@ -0,0 +1,54 @@
+
+
+
发送到
+
+
+ 课程
+ 项目
+ 组织
+
+
+
+
+
+
+ <%= form_tag search_user_project_user_path(user),:method => 'get',
+ :remote=>true,:id=>'search_user_project_form',:class=>'resourcesSearchBox' do %>
+ <%= hidden_field_tag(:send_id, send_id) %>
+ <%= hidden_field_tag(:send_ids, send_ids) %>
+
+
+
+ <%= submit_tag '',:class=>'searchIcon2',:onfocus=>"this.blur();",:style=>'border-style:none' %>
+ <% end %>
+
+ <%= form_tag share_news_to_project_user_path(user), :remote => true, :id=>'projects_list_form' %>
+
+
+ <%= hidden_field_tag(:send_id, send_id) %>
+ <%= hidden_field_tag(:send_ids, send_ids) %>
+
+ <% if !projects.empty? %>
+ <% projects.each do |project| %>
+
+ <% end %>
+
+
+
+
+
+ <%= submit_tag '确定',:class=>'sendSourceText',:onfocus=>'this.blur();' %>
+
+
+
+
+ <% end %>
+
+
diff --git a/app/views/users/search_user_course.js.erb b/app/views/users/search_user_course.js.erb
index d0ac40ed0..138eab6f9 100644
--- a/app/views/users/search_user_course.js.erb
+++ b/app/views/users/search_user_course.js.erb
@@ -9,7 +9,11 @@
//$("#upload_box").css('left','').css('top','');
//$("#upload_box").html('<%#= escape_javascript( render :partial => "resource_share_popup" ,:locals => {:courses=>@course,:user=>@user,:send_id=>@send_id,:send_ids=>@send_ids})%>');
//$("#upload_box").css('display','block');
-$("#ajax-modal").html('<%= escape_javascript( render :partial => 'users/resource_share_popup' ,:locals => {:courses=>@course,:user=>@user,:send_id=>@send_id,:send_ids=>@send_ids})%>');
+<% if params[:send_type].present? && params[:send_type] == 'news' %>
+ $("#ajax-modal").html('<%= escape_javascript( render :partial => 'users/share_news_to_course' ,:locals => {:courses=>@course,:user=>@user,:send_id=>@send_id,:send_ids=>@send_ids})%>');
+<% else %>
+ $("#ajax-modal").html('<%= escape_javascript( render :partial => 'users/resource_share_popup' ,:locals => {:courses=>@course,:user=>@user,:send_id=>@send_id,:send_ids=>@send_ids})%>');
+<% end %>
showModal('ajax-modal', '452px');
$('#ajax-modal').siblings().remove();
$('#ajax-modal').before(" ");
diff --git a/app/views/users/search_user_org.js.erb b/app/views/users/search_user_org.js.erb
index db099fe72..fb6efec9a 100644
--- a/app/views/users/search_user_org.js.erb
+++ b/app/views/users/search_user_org.js.erb
@@ -1,4 +1,8 @@
-$("#ajax-modal").html('<%= escape_javascript( render :partial => 'users/resource_share_for_orgs' ,:locals => {:orgs=>@orgs,:user=>@user,:send_id=>@send_id,:send_ids=>@send_ids})%>');
+<% if params[:send_type].present? && params[:send_type] == 'news' %>
+ $("#ajax-modal").html('<%= escape_javascript( render :partial => 'users/share_news_to_org' ,:locals => {:orgs=>@orgs,:user=>@user,:send_id=>@send_id,:send_ids=>@send_ids})%>');
+<% else %>
+ $("#ajax-modal").html('<%= escape_javascript( render :partial => 'users/resource_share_for_orgs' ,:locals => {:orgs=>@orgs,:user=>@user,:send_id=>@send_id,:send_ids=>@send_ids})%>');
+<% end %>
showModal('ajax-modal', '452px');
$('#ajax-modal').siblings().remove();
$('#ajax-modal').before(" ");
diff --git a/app/views/users/search_user_project.js.erb b/app/views/users/search_user_project.js.erb
index 5218c22ab..926b7aa58 100644
--- a/app/views/users/search_user_project.js.erb
+++ b/app/views/users/search_user_project.js.erb
@@ -1,4 +1,8 @@
-$("#ajax-modal").html('<%= escape_javascript( render :partial => 'users/resource_share_for_project_popup', :locals => {:projects => @projects, :user => @user, :send_id => @send_id, :send_ids => @send_ids}) %>');
+<% if params[:send_type].present? && params[:send_type] == 'news' %>
+ $("#ajax-modal").html('<%= escape_javascript( render :partial => 'users/share_news_to_project', :locals => {:projects => @projects, :user => @user, :send_id => @send_id, :send_ids => @send_ids}) %>');
+<% else %>
+ $("#ajax-modal").html('<%= escape_javascript( render :partial => 'users/resource_share_for_project_popup', :locals => {:projects => @projects, :user => @user, :send_id => @send_id, :send_ids => @send_ids}) %>');
+<% end %>
showModal('ajax-modal', '452px');
$('#ajax-modal').siblings().remove();
$('#ajax-modal').before(" ");
diff --git a/app/views/users/share_news_to_course.js.erb b/app/views/users/share_news_to_course.js.erb
new file mode 100644
index 000000000..5a5046dfa
--- /dev/null
+++ b/app/views/users/share_news_to_course.js.erb
@@ -0,0 +1,2 @@
+hideModal();
+alert("发送成功!");
\ No newline at end of file
diff --git a/app/views/users/share_news_to_org.js.erb b/app/views/users/share_news_to_org.js.erb
new file mode 100644
index 000000000..5a5046dfa
--- /dev/null
+++ b/app/views/users/share_news_to_org.js.erb
@@ -0,0 +1,2 @@
+hideModal();
+alert("发送成功!");
\ No newline at end of file
diff --git a/app/views/users/share_news_to_project.js.erb b/app/views/users/share_news_to_project.js.erb
new file mode 100644
index 000000000..5a5046dfa
--- /dev/null
+++ b/app/views/users/share_news_to_project.js.erb
@@ -0,0 +1,2 @@
+hideModal();
+alert("发送成功!");
\ No newline at end of file
diff --git a/app/views/users/user_resource.html.erb b/app/views/users/user_resource.html.erb
index 2f94e4401..e395604f4 100644
--- a/app/views/users/user_resource.html.erb
+++ b/app/views/users/user_resource.html.erb
@@ -141,7 +141,7 @@
预览
重命名
- 发送
+ 发送
删除
@@ -330,7 +330,7 @@
- function show_send(){
+ function show_send_(){
$("#contextMenu").hide();
document.oncontextmenu = function() {return true;}
line.children().css("background-color",'white');
@@ -338,12 +338,14 @@
if (lastSendType === '2'){ //如果已经发送过一次了,那么就应该沿用上次发送的类型。
$.ajax({
type: 'get',
- url: '<%= search_user_project_user_path(@user)%>' + '?send_id=' + id
+ url: '<%= search_user_project_user_path(@user)%>' + '?send_id=' + id,
+ data:{send_type:'file'}
});
}else{
$.ajax({
type: 'get',
- url: '<%= search_user_course_user_path(@user)%>' + '?send_id=' + id
+ url: '<%= search_user_course_user_path(@user)%>' + '?send_id=' + id,
+ data:{send_type:'file'}
});
}
}
@@ -476,91 +478,5 @@
}
}
- //id 发送的id
- //发送的id数组
- function chooseSendType(res_id,res_ids){
-
- sendType = $(".resourcesSendType").val();
- if (sendType === lastSendType) {
- return;
- } else if (lastSendType != null) { //不是第一次点击的时候
- if(res_ids == "") {//如果是单个发送
- if (sendType === '1') {
- $.ajax({
- type: 'get',
- url: '<%= search_user_course_user_path(@user)%>' + '?send_id=' + id
- });
- } else if(sendType === '2') {
- $.ajax({
- type: 'get',
- url: '<%= search_user_project_user_path(@user)%>' + '?send_id=' + id
- });
- }else if(sendType ==='3')
- {
- $.ajax({
- type: 'get',
- url: '<%= search_user_org_user_path(@user)%>' + '?send_id=' + res_id
- });
- }
- }else{//如果是多个发送
- if (sendType === '1'){
- $.ajax({
- type: 'get',
- url: '<%= search_user_course_user_path(@user)%>' + '?'+ $("#resources_list_form").serialize()
- });
- }else if(sendType === '2'){
- $.ajax({
- type: 'get',
- url: '<%= search_user_project_user_path(@user)%>' + '?' + $("#resources_list_form").serialize()
- });
- }else if(sendType === '3'){
- $.ajax({
- type: 'get',
- url: '<%= search_user_org_user_path(User.current)%>' + '?'+$("#resources_list_form").serialize()
- });
- }
- }
- }
-
- lastSendType = sendType;
- }
-
- function observeSearchfieldOnInput(fieldId, url,send_id,send_ids) {
- $('#'+fieldId).each(function() {
- var $this = $(this);
- $this.addClass('autocomplete');
- $this.attr('data-value-was', $this.val());
- var check = function() {
- var val = $this.val();
- if ($this.attr('data-value-was') != val){
- $this.attr('data-value-was', val);
- $.ajax({
- url: url,
- type: 'get',
- data: {search: $this.val(),send_id:send_id,send_ids:send_ids},
- success: function(data){ },
- beforeSend: function(){ $this.addClass('ajax-loading'); },
- complete: function(){ $this.removeClass('ajax-loading'); }
- });
- }
- };
- var reset = function() {
- if (timer) {
- clearInterval(timer);
- timer = setInterval(check, 300);
- }
- };
- var timer = setInterval(check, 300);
- $this.bind('keyup click mousemove', reset);
- });
- }
-
- function subfield_click(){
- var sendText = $("input[name='org_id']:checked").next().text();
- var orgDirection = "目标地址:"
- var sendColumn = $("input[name='subfield']:checked").next().text();
- $(".orgDirection").text(orgDirection + sendText + " / " + sendColumn);
- }
-
diff --git a/config/locales/mailers/zh.yml b/config/locales/mailers/zh.yml
index 7b56011b1..00a1bfafd 100644
--- a/config/locales/mailers/zh.yml
+++ b/config/locales/mailers/zh.yml
@@ -28,4 +28,6 @@ zh:
mail_homework: "作业:"
mail_anonymous_comment_close: "作业匿评已经关闭,请您关注!"
mail_anonymous_comment_open: "作业匿评已经开启,请您关注!"
- mail_anonymous_comment_failed: "作业匿评开启失败,请您关注!"
\ No newline at end of file
+ mail_anonymous_comment_failed: "作业匿评开启失败,请您关注!"
+ mail_issue_due_date: "问题跟踪截止时间快到了,请您关注!"
+ mail_issue: "问题跟踪:"
\ No newline at end of file
diff --git a/config/routes.rb b/config/routes.rb
index ccbe67004..3531f4b5f 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -464,6 +464,8 @@ RedmineApp::Application.routes.draw do
get 'projects/:id/issues/report', :to => 'reports#issue_report', :as => 'project_issues_report'
get 'projects/:id/issues/report/:detail', :to => 'reports#issue_report_details', :as => 'project_issues_report_details'
post '/users/:id/user_activities', :to => 'users#show', :as => "user_activities"
+ match 'projects/:project_id/news/index', :to => 'news#index', :via => [:get, :post], :as => 'new_course_news'
+ match 'projects/:project_id/news/new', :to => 'news#new', :via => [:get, :post]
post '/courses/:id/course_activity', :to => 'courses#show', :as => 'course_activity'
get '/boards/:id/boards_topic', :to =>'boards#show', :as => 'boards_topic'
@@ -532,6 +534,9 @@ RedmineApp::Application.routes.draw do
post "add_exist_file_to_course"
post "add_exist_file_to_project"
post 'add_exist_file_to_org'
+ post 'share_news_to_course'
+ post 'share_news_to_project'
+ post 'share_news_to_org'
get 'resource_preview'
get 'rename_resource'
get 'search_user_project'
diff --git a/db/migrate/20160120032758_add_org_subfield_id_to_news.rb b/db/migrate/20160120032758_add_org_subfield_id_to_news.rb
new file mode 100644
index 000000000..bd4ca9772
--- /dev/null
+++ b/db/migrate/20160120032758_add_org_subfield_id_to_news.rb
@@ -0,0 +1,5 @@
+class AddOrgSubfieldIdToNews < ActiveRecord::Migration
+ def change
+ add_column :news, :org_subfield_id, :integer
+ end
+end
diff --git a/db/migrate/20160121070232_add_allow_guest_download_to_organizations.rb b/db/migrate/20160121070232_add_allow_guest_download_to_organizations.rb
new file mode 100644
index 000000000..edf5c47b0
--- /dev/null
+++ b/db/migrate/20160121070232_add_allow_guest_download_to_organizations.rb
@@ -0,0 +1,5 @@
+class AddAllowGuestDownloadToOrganizations < ActiveRecord::Migration
+ def change
+ add_column :organizations, :allow_guest_download, :boolean, :default => true
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index d60f351dd..347f801a6 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,7 +11,7 @@
#
# It's strongly recommended to check this file into your version control system.
-ActiveRecord::Schema.define(:version => 20160115125217) do
+ActiveRecord::Schema.define(:version => 20160121070232) do
create_table "activities", :force => true do |t|
t.integer "act_id", :null => false
@@ -1082,14 +1082,15 @@ ActiveRecord::Schema.define(:version => 20160115125217) do
create_table "news", :force => true do |t|
t.integer "project_id"
- t.string "title", :limit => 60, :default => "", :null => false
- t.string "summary", :default => ""
+ t.string "title", :limit => 60, :default => "", :null => false
+ t.string "summary", :default => ""
t.text "description"
- t.integer "author_id", :default => 0, :null => false
+ t.integer "author_id", :default => 0, :null => false
t.datetime "created_on"
- t.integer "comments_count", :default => 0, :null => false
+ t.integer "comments_count", :default => 0, :null => false
t.integer "course_id"
- t.integer "sticky", :default => 0
+ t.integer "sticky", :default => 0
+ t.integer "org_subfield_id"
end
add_index "news", ["author_id"], :name => "index_news_on_author_id"
@@ -1262,8 +1263,9 @@ ActiveRecord::Schema.define(:version => 20160115125217) do
t.integer "home_id"
t.string "domain"
t.boolean "is_public"
- t.datetime "created_at", :null => false
- t.datetime "updated_at", :null => false
+ t.datetime "created_at", :null => false
+ t.datetime "updated_at", :null => false
+ t.boolean "allow_guest_download", :default => true
end
create_table "phone_app_versions", :force => true do |t|
@@ -1710,6 +1712,10 @@ ActiveRecord::Schema.define(:version => 20160115125217) do
t.string "extra"
end
+ create_table "temp", :id => false, :force => true do |t|
+ t.integer "id", :default => 0, :null => false
+ end
+
create_table "time_entries", :force => true do |t|
t.integer "project_id", :null => false
t.integer "user_id", :null => false
diff --git a/lib/tasks/issue_due_date.rake b/lib/tasks/issue_due_date.rake
index f40fa290f..8d101ff94 100644
--- a/lib/tasks/issue_due_date.rake
+++ b/lib/tasks/issue_due_date.rake
@@ -12,8 +12,8 @@ namespace :issue_due_date do
recipients << assigner
recipients.each do |r|
issue.forge_messages << ForgeMessage.new(:user_id => r.id, :project_id => issue.project_id, :viewed => false, :status => 1)
- # 发送邮件通知
- # Mailer.homework_endtime__added(homework_common, s.student_id).deliver
+ # issue截止时间邮件提醒
+ Mailer.issue_due_date(issue, recipients).deliver
end
end
end
diff --git a/lib/trustie/gitlab/sync.rb b/lib/trustie/gitlab/sync.rb
index 1f6f7c146..d41b813e7 100644
--- a/lib/trustie/gitlab/sync.rb
+++ b/lib/trustie/gitlab/sync.rb
@@ -53,6 +53,19 @@ module Trustie
)
project.gpid = gproject.id
project.save!
+
+ # 创建的时候一并同步成员及角色
+ project.members.each do |m|
+ begin
+ gid = m.user.gid
+ unless gid
+ gid = sync_user(m.user).id
+ end
+ self.g.add_team_member(gproject.id, gid, UserLevel::DEVELOPER)
+ rescue => e
+ puts e
+ end
+ end
end
def sync_project(project, opt={})
diff --git a/public/javascripts/application.js b/public/javascripts/application.js
index e94954a10..f982d92f6 100644
--- a/public/javascripts/application.js
+++ b/public/javascripts/application.js
@@ -1018,3 +1018,120 @@ function showNormalImage(id) {
}
}
+
+//文件、帖子、通知分享
+function org_id_click(){
+ var sendText = $("input[name='org_id']:checked").next().text();
+ var orgDirection = "目标地址:";
+ $(".orgDirection").text(orgDirection + sendText);
+}
+function subfield_click(){
+ var sendText = $("input[name='org_id']:checked").next().text();
+ var orgDirection = "目标地址:";
+ var sendColumn = $("input[name='subfield']:checked").next().text();
+ $(".orgDirection").text(orgDirection + sendText + " / " + sendColumn);
+}
+
+function observeSearchfieldOnInput(fieldId, url,send_id,send_ids, send_type) {
+ $('#'+fieldId).each(function() {
+ var $this = $(this);
+ $this.addClass('autocomplete');
+ $this.attr('data-value-was', $this.val());
+ var check = function() {
+ var val = $this.val();
+ if ($this.attr('data-value-was') != val){
+ $this.attr('data-value-was', val);
+ $.ajax({
+ url: url,
+ type: 'get',
+ data: {search: $this.val(),send_id:send_id,send_ids:send_ids, send_type:send_type},
+ success: function(data){ },
+ beforeSend: function(){ $this.addClass('ajax-loading'); },
+ complete: function(){ $this.removeClass('ajax-loading'); }
+ });
+ }
+ };
+ var reset = function() {
+ if (timer) {
+ clearInterval(timer);
+ timer = setInterval(check, 300);
+ }
+ };
+ var timer = setInterval(check, 300);
+ $this.bind('keyup click mousemove', reset);
+ });
+}
+function check_des(event){
+ if($(".sectionContent").find('input[type="radio"]:checked').length <= 0){
+ event.preventDefault();
+ $(".orgDirection").text('目标地址组织不能为空');
+ return false;
+ }else if($(".columnContent").find('input[type="radio"]:checked').length <= 0){
+ event.preventDefault();
+ $(".orgDirection").text('目标地址栏目不能为空');
+ return false;
+ }else{
+ return true;
+ }
+}
+
+var sendType = '1';
+var lastSendType ;//初始为发送到我的课程
+function show_send(id, user_id, send_type){
+ if (lastSendType === '2'){ //如果已经发送过一次了,那么就应该沿用上次发送的类型。
+ $.ajax({
+ type: 'get',
+ url: '/users/' + user_id + '/search_user_project',
+ data:{send_id:id, send_type:send_type}
+ });
+ }else if(lastSendType == '1'){
+ $.ajax({
+ type: 'get',
+ url: '/users/' + user_id + '/search_user_course',
+ data:{send_id:id, send_type:send_type}
+ });
+ }else if( lastSendType == '3'){//组织
+ $.ajax({
+ type: 'get',
+ url: '/users/' + user_id + '/search_user_org',
+ data:{send_id:id, send_type:send_type}
+ });
+ }else{
+ $.ajax({
+ type: 'get',
+ url: '/users/' + user_id + '/search_user_course',
+ data:{send_id:id, send_type:send_type}
+ });
+ }
+}
+
+//id 发送的id
+//发送的id数组
+function chooseSendType(res_id,res_ids, user_id, send_type){
+
+ sendType = $(".resourcesSendType").val();
+ if (sendType === lastSendType) {
+ return;
+ } else if(lastSendType != null) { //不是第一次点击的时候
+ if (sendType == '1') {
+ $.ajax({
+ type: 'get',
+ url: '/users/' + user_id + '/search_user_course',
+ data:{send_id:res_id, send_type:send_type}
+ });
+ } else if(sendType == '2') {
+ $.ajax({
+ type: 'get',
+ url: '/users/' + user_id + '/search_user_project',
+ data:{send_id:res_id, send_type:send_type}
+ });
+ }else if(sendType == '3'){
+ $.ajax({
+ type: 'get',
+ url: '/users/' + user_id + '/search_user_org',
+ data:{send_id:res_id, send_type:send_type}
+ });
+ }
+ }
+ lastSendType = sendType;
+}
diff --git a/public/javascripts/project.js b/public/javascripts/project.js
index 0f4ef57fe..c08c81054 100644
--- a/public/javascripts/project.js
+++ b/public/javascripts/project.js
@@ -241,7 +241,7 @@ function regexTitle() {
function regexDescription() {
project_news_description_editor.sync();
- var name = $("#news_description").val();
+ var name = project_news_description_editor.html();
if (name.length == 0) {
$("#description_notice_span").text("描述不能为空");
$("#description_notice_span").css('color', '#ff0000');
@@ -272,9 +272,26 @@ function submitFocus(obj) {
$(obj).focus();
}
+
function submitComment()
{
- $("#add_comment_form").submit();
+ if (newsReplyVerify()) {
+ comment_editor.sync();
+ $("#add_comment_form").submit();
+ }
+}
+
+function newsReplyVerify() {
+ var content = comment_editor.html();
+ if(comment_editor.isEmpty()) {
+ $("#add_reply_news").text("评论不能为空");
+ $("#add_reply_news").css('color', '#ff0000');
+ return false;
+ } else {
+ $("#add_reply_news").text("填写正确");
+ $("#add_reply_news").css('color', '#008000');
+ return true;
+ }
}
//当项目描述长度小于112px时,不显示更多按钮