share completed with fq, xianbo
This commit is contained in:
parent
dde65a5895
commit
5d0b5812b3
|
@ -43,7 +43,7 @@ class ProjectsController < ApplicationController
|
||||||
|
|
||||||
before_filter :find_project, :except => [ :index, :search,:list, :new, :create, :copy, :statistics, :new_join, :course, :enterprise_course, :course_enterprise]
|
before_filter :find_project, :except => [ :index, :search,:list, :new, :create, :copy, :statistics, :new_join, :course, :enterprise_course, :course_enterprise]
|
||||||
before_filter :authorize, :except => [:new_join, :new_homework, :homework, :statistics, :search, :watcherlist, :index, :list, :new, :create, :copy, :archive, :unarchive, :destroy, :member, :focus, :file,
|
before_filter :authorize, :except => [:new_join, :new_homework, :homework, :statistics, :search, :watcherlist, :index, :list, :new, :create, :copy, :archive, :unarchive, :destroy, :member, :focus, :file,
|
||||||
:statistics, :feedback, :course, :enterprise_course, :course_enterprise, :project_respond]
|
:statistics, :feedback, :course, :enterprise_course, :course_enterprise, :project_respond, :share]
|
||||||
before_filter :authorize_global, :only => [:new, :create]
|
before_filter :authorize_global, :only => [:new, :create]
|
||||||
before_filter :require_admin, :only => [ :copy, :archive, :unarchive, :destroy, :calendar]
|
before_filter :require_admin, :only => [ :copy, :archive, :unarchive, :destroy, :calendar]
|
||||||
#by young
|
#by young
|
||||||
|
@ -480,6 +480,15 @@ class ProjectsController < ApplicationController
|
||||||
render :layout => 'base'
|
render :layout => 'base'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def share
|
||||||
|
@shares = @project.shares.reverse
|
||||||
|
@base_courses_tag = @project.project_type
|
||||||
|
respond_to do |format|
|
||||||
|
format.html{render :layout => 'base_courses' if @base_courses_tag==1}
|
||||||
|
format.api
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
|
|
||||||
@course_tag = params[:project][:project_type]
|
@course_tag = params[:project][:project_type]
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
|
# encoding: utf-8
|
||||||
class SharesController < ApplicationController
|
class SharesController < ApplicationController
|
||||||
|
before_filter :require_login, :except => [:index]
|
||||||
# GET /shares
|
# GET /shares
|
||||||
# GET /shares.json
|
# GET /shares.json
|
||||||
def index
|
def index
|
||||||
|
@ -25,15 +27,31 @@ class SharesController < ApplicationController
|
||||||
# GET /shares/new.json
|
# GET /shares/new.json
|
||||||
def new
|
def new
|
||||||
@share = Share.new
|
@share = Share.new
|
||||||
|
@user = User.current
|
||||||
|
@ps = @user.projects.all
|
||||||
|
|
||||||
#add by mkz 抓取参数传给share
|
projectName = params[:projectname]
|
||||||
|
userName = params[:username]
|
||||||
|
url = params[:url]
|
||||||
|
share_type = params[:share_type]
|
||||||
|
share_type ||= 0 #默认是测试结果分享
|
||||||
|
description = params[:description]
|
||||||
|
|
||||||
|
#deal params
|
||||||
|
if share_type == 0 && !params[:description].nil?
|
||||||
|
arr = params[:description].split(",")
|
||||||
|
# @share.description = @arr.join(",")
|
||||||
|
#description = "stcloud源代码测试平台:用户" << userName << "对项目" << projectName << "进行了测试。测试结果:" << "\n"
|
||||||
|
name = User.current.login.to_s.dup
|
||||||
|
description = name << "对项目进行了测试。测试结果:" << "\n"
|
||||||
|
description << "总缺陷数#{arr[0]},Fault数目#{arr[1]},Rule数目#{arr[2]},Question数目#{arr[3]},Safety数目#{arr[4]}。"
|
||||||
|
end
|
||||||
|
|
||||||
|
@share[:title] = projectName
|
||||||
|
@share[:url] = url
|
||||||
|
@share[:share_type] = share_type
|
||||||
|
@share[:description] = description
|
||||||
|
|
||||||
@share[:created_on] = params[:created_on]
|
|
||||||
@share[:title] = params[:title]
|
|
||||||
@share[:url] = params[:url]
|
|
||||||
@share[:share_type] = params[:share_type]
|
|
||||||
@share.save
|
|
||||||
#
|
|
||||||
|
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.html # new.html.erb
|
format.html # new.html.erb
|
||||||
|
@ -50,10 +68,14 @@ class SharesController < ApplicationController
|
||||||
# POST /shares.json
|
# POST /shares.json
|
||||||
def create
|
def create
|
||||||
@share = Share.new(params[:share])
|
@share = Share.new(params[:share])
|
||||||
|
if (@share.project_id.nil?)
|
||||||
|
flash[:notice] = l(:label_x_projects)
|
||||||
|
end
|
||||||
|
@share.user_id = User.current.id
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
if @share.save
|
if @share.save
|
||||||
format.html { redirect_to @share, notice: 'Share was successfully created.' }
|
#format.html { redirect_to @share, notice: 'Share was successfully created.' }
|
||||||
|
format.html { render "succ", notice: 'Share was successfully created.' }
|
||||||
format.json { render json: @share, status: :created, location: @share }
|
format.json { render json: @share, status: :created, location: @share }
|
||||||
else
|
else
|
||||||
format.html { render action: "new" }
|
format.html { render action: "new" }
|
||||||
|
@ -67,6 +89,8 @@ class SharesController < ApplicationController
|
||||||
def update
|
def update
|
||||||
@share = Share.find(params[:id])
|
@share = Share.find(params[:id])
|
||||||
|
|
||||||
|
@project = params[:project_id]
|
||||||
|
@share.user_id = User.current.id
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
if @share.update_attributes(params[:share])
|
if @share.update_attributes(params[:share])
|
||||||
format.html { redirect_to @share, notice: 'Share was successfully updated.' }
|
format.html { redirect_to @share, notice: 'Share was successfully updated.' }
|
||||||
|
|
|
@ -1,2 +1,16 @@
|
||||||
module SharesHelper
|
module SharesHelper
|
||||||
|
def options_from_select_project(user)
|
||||||
|
@membership = user.memberships.all(:conditions => Project.visible_condition(User.current))
|
||||||
|
@option = []
|
||||||
|
@membership.each do |membership|
|
||||||
|
unless(membership.project.project_type==1)
|
||||||
|
membership.member_roles.each{|role|
|
||||||
|
if(role.role_id == 3)
|
||||||
|
@option << membership.project
|
||||||
|
end
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
options_for_select(@option)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -58,6 +58,7 @@ class Project < ActiveRecord::Base
|
||||||
has_many :journals_for_messages, :as => :jour, :dependent => :destroy
|
has_many :journals_for_messages, :as => :jour, :dependent => :destroy
|
||||||
has_many :homework_for_courses, :dependent => :destroy
|
has_many :homework_for_courses, :dependent => :destroy
|
||||||
has_many :homeworks, :through => :homework_for_courses, :source => :bid, :dependent => :destroy
|
has_many :homeworks, :through => :homework_for_courses, :source => :bid, :dependent => :destroy
|
||||||
|
has_many :shares, :dependent => :destroy
|
||||||
# has_many :students_for_courses, :dependent => :destroy
|
# has_many :students_for_courses, :dependent => :destroy
|
||||||
has_many :student, :through => :students_for_courses, :source => :user
|
has_many :student, :through => :students_for_courses, :source => :user
|
||||||
# has_one :cour, :class_name => 'Course', :foreign_key => :extra, :dependent => :destroy
|
# has_one :cour, :class_name => 'Course', :foreign_key => :extra, :dependent => :destroy
|
||||||
|
|
|
@ -1,3 +1,18 @@
|
||||||
class Share < ActiveRecord::Base
|
class Share < ActiveRecord::Base
|
||||||
attr_accessible :created_on, :share_type, :title, :url
|
include Redmine::SafeAttributes
|
||||||
|
attr_accessible :created_on, :share_type, :title, :url,:project_id,:user_id, :description
|
||||||
|
|
||||||
|
validates_presence_of :project_id
|
||||||
|
|
||||||
|
belongs_to :project
|
||||||
|
belongs_to :user
|
||||||
|
|
||||||
|
safe_attributes 'project_id',
|
||||||
|
'user_id',
|
||||||
|
'url',
|
||||||
|
'title',
|
||||||
|
'share_type',
|
||||||
|
'crated_on',
|
||||||
|
'description'
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -131,10 +131,16 @@
|
||||||
<td align="left" width="190px" valign="left"><%=image_tag("/images/sidebar/tool_tag.png", weight:"15px", height:"15px") %>
|
<td align="left" width="190px" valign="left"><%=image_tag("/images/sidebar/tool_tag.png", weight:"15px", height:"15px") %>
|
||||||
<%= link_to l(:project_module_boards) ,project_boards_path(@project) %>
|
<%= link_to l(:project_module_boards) ,project_boards_path(@project) %>
|
||||||
</td>
|
</td>
|
||||||
|
<td align="left" width="190px" valign="left"><%=image_tag("/images/sidebar/tool_tag.png", weight:"15px", height:"15px") %>
|
||||||
|
<%= link_to l(:label_module_share) ,share_show_path(@project) %>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<% if @project.identifier == 'trustie' %>
|
<% if @project.identifier == 'trustie' %>
|
||||||
<td align="left" width="190px" valign="left"><%=image_tag("/images/sidebar/tool_tag.png", weight:"15px", height:"15px") %>
|
<td align="left" width="190px" valign="left"><%=image_tag("/images/sidebar/tool_tag.png", weight:"15px", height:"15px") %>
|
||||||
<%= link_to l(:label_project_tool_response) ,project_feedback_path(@project) %>
|
<%= link_to l(:label_project_tool_response) ,project_feedback_path(@project) %>
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
<% else %>
|
<% else %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
<!-- <h3>测试结果</h3> -->
|
||||||
|
|
||||||
|
<p id="stcloud">
|
||||||
|
<a href="http://www.trustie.net/webdts/" style="float:right" target="_blank">进入测试平台</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<% @shares.each do |share| %>
|
||||||
|
<div class="issue-note">
|
||||||
|
<table width="660px" border="0" align="center" style="font-size: 14px;">
|
||||||
|
<tr>
|
||||||
|
<td colspan="2" valign="top" width="50" ><%= image_tag(url_to_avatar(share.user), :class => "avatar")%></td>
|
||||||
|
<td>
|
||||||
|
<table width="580px" border="0">
|
||||||
|
<tr>
|
||||||
|
<td colspan="2" valign="top">
|
||||||
|
<strong> <%= h(share.project) if @project.nil? || @project.id != share.project.id %></strong>
|
||||||
|
<span class="font_lighter">
|
||||||
|
<%= link_to_user(share.user) %> <%= l(:label_new_activity) %>
|
||||||
|
</span> <%= share.title%>
|
||||||
|
<br/> <br/>
|
||||||
|
<%= share.description %><%= link_to "查看详情", share.url, {:target=>"_blank"} %>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colspan="2" width="580px" >
|
||||||
|
<p class="font_description">
|
||||||
|
<!-- modify by nyan -->
|
||||||
|
|
||||||
|
</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td align="left"><a class="font_lighter"> <%= h(share.created_on)%></a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
|
@ -23,7 +23,7 @@
|
||||||
<td colspan="2" width="580px" >
|
<td colspan="2" width="580px" >
|
||||||
<p class="font_description">
|
<p class="font_description">
|
||||||
<!-- modify by nyan -->
|
<!-- modify by nyan -->
|
||||||
<%= textilizable( truncate(e.event_description, length: 240 ) %>
|
<%= textilizable( stringCut240(e.event_description) ) %>
|
||||||
</p></td>
|
</p></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
@ -1,33 +1,23 @@
|
||||||
|
<div id="share_new" style = "width: 431px; center" >
|
||||||
<%= form_for(@share) do |f| %>
|
<%= form_for(@share) do |f| %>
|
||||||
<% if @share.errors.any? %>
|
<div>
|
||||||
<div id="error_explanation">
|
分享到项目:
|
||||||
<h2><%= pluralize(@share.errors.count, "error") %> prohibited this share from being saved:</h2>
|
<%= f.select 'project_id', options_from_collection_for_select(@ps, "id", "name") %></div>
|
||||||
|
<div class="field">
|
||||||
<ul>
|
<%= f.text_field :title, :style => 'width: 399px;display: none;' %>
|
||||||
<% @share.errors.full_messages.each do |msg| %>
|
|
||||||
<li><%= msg %></li>
|
|
||||||
<% end %>
|
|
||||||
</ul>
|
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<%= f.label :created_on %><br />
|
<%= f.text_area :description, :rows => 4, :style => 'width: 100%;resize: none;', :class => 'create-share' %>
|
||||||
<%= f.text_field :created_on %>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<%= f.label :url %><br />
|
<%= f.label "Website:" %><br/>
|
||||||
<%= f.text_field :url %>
|
<%= f.text_field :url, :style => 'width: 100%;', :class => 'create-share' %>
|
||||||
</div>
|
</div>
|
||||||
<div class="field">
|
|
||||||
<%= f.label :title %><br />
|
<div class="actions" style=" padding-top: 10px; float:right">
|
||||||
<%= f.text_field :title %>
|
<%= f.submit :value=>"分享"%>
|
||||||
</div>
|
|
||||||
<div class="field">
|
|
||||||
<%= f.label :share_type %><br />
|
|
||||||
<%= f.number_field :share_type %>
|
|
||||||
</div>
|
|
||||||
<div class="actions">
|
|
||||||
<%= f.submit %>
|
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
<br/>
|
||||||
|
</div>
|
||||||
|
|
|
@ -4,22 +4,24 @@
|
||||||
<tr>
|
<tr>
|
||||||
<th>Created On</th>
|
<th>Created On</th>
|
||||||
<th>Url</th>
|
<th>Url</th>
|
||||||
<th>Title</th>
|
<th>Project_Name</th>
|
||||||
<th>Share type</th>
|
<th>Share type</th>
|
||||||
<th></th>
|
<th>Edit</th>
|
||||||
<th></th>
|
<th>project_id</th>
|
||||||
<th></th>
|
<th>user_id</th>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<% @shares.each do |share| %>
|
<% @shares.each do |share| %>
|
||||||
<tr>
|
<tr>
|
||||||
<td><%= share.created_on %></td>
|
<th><%= share.created_on %></th>
|
||||||
<td><%= share.url %></td>
|
<th><%= share.url %></th>
|
||||||
<td><%= share.title %></td>
|
<th><%= share.title %></th>
|
||||||
<td><%= share.share_type %></td>
|
<th><%= share.share_type %></th>
|
||||||
<td><%= link_to 'Show', share %></td>
|
<th><%= link_to 'Show', share %>
|
||||||
<td><%= link_to 'Edit', edit_share_path(share) %></td>
|
<%= link_to 'Edit', edit_share_path(share) %>
|
||||||
<td><%= link_to 'Destroy', share, method: :delete, data: { confirm: 'Are you sure?' } %></td>
|
<%= link_to 'Destroy', share, method: :delete, data: { confirm: 'Are you sure?' } %></th>
|
||||||
|
<th><%= share.project_id %></th>
|
||||||
|
<th><%= share.user_id%></th>
|
||||||
</tr>
|
</tr>
|
||||||
<% end %>
|
<% end %>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<h1>New share</h1>
|
<h1>分享</h1>
|
||||||
|
|
||||||
<%= render 'form' %>
|
<%= render 'form' %>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
<p>
|
||||||
|
分享成功!
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<%= link_to "查看分享", share_show_path(Project.find_by_id(@share.project_id)) %>
|
||||||
|
</p>
|
|
@ -9,7 +9,7 @@ RedmineApp::Application.configure do
|
||||||
config.whiny_nils = true
|
config.whiny_nils = true
|
||||||
|
|
||||||
# Show full error reports and disable caching
|
# Show full error reports and disable caching
|
||||||
#config.action_controller.consider_all_requests_local = true
|
config.consider_all_requests_local = true
|
||||||
config.action_controller.perform_caching = false
|
config.action_controller.perform_caching = false
|
||||||
|
|
||||||
# Don't care if the mailer can't send
|
# Don't care if the mailer can't send
|
||||||
|
|
|
@ -1636,3 +1636,4 @@ zh:
|
||||||
label_in_course: 在课程中
|
label_in_course: 在课程中
|
||||||
label_assign_homework: 中布置了作业
|
label_assign_homework: 中布置了作业
|
||||||
label_noawards: 未评奖
|
label_noawards: 未评奖
|
||||||
|
label_module_share: dts测试工具
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
RedmineApp::Application.routes.draw do
|
RedmineApp::Application.routes.draw do
|
||||||
resources :shares
|
resources :shares, only: [:new, :create, :destroy]
|
||||||
|
|
||||||
#added by william
|
#added by william
|
||||||
get "tags/index"
|
get "tags/index"
|
||||||
|
@ -459,6 +459,8 @@ RedmineApp::Application.routes.draw do
|
||||||
match 'calls/:id/show_bid_project', :to => 'bids#show_bid_project', :as => 'show_bid_project'
|
match 'calls/:id/show_bid_project', :to => 'bids#show_bid_project', :as => 'show_bid_project'
|
||||||
match 'calls/:id/show_bid_user', :to => 'bids#show_bid_user', :as => 'show_bid_user'
|
match 'calls/:id/show_bid_user', :to => 'bids#show_bid_user', :as => 'show_bid_user'
|
||||||
|
|
||||||
|
match 'project/:id/share', :to => 'projects#share', :as => 'share_show' #share
|
||||||
|
|
||||||
post 'join_in/join', :to => 'courses#join', :as => 'join'
|
post 'join_in/join', :to => 'courses#join', :as => 'join'
|
||||||
delete 'join_in/join', :to => 'courses#unjoin'
|
delete 'join_in/join', :to => 'courses#unjoin'
|
||||||
delete 'attachment/:id', :to => 'attachments#delete_homework'
|
delete 'attachment/:id', :to => 'attachments#delete_homework'
|
||||||
|
|
|
@ -1878,3 +1878,10 @@ a.font-user-after-color{
|
||||||
line-height:23px;
|
line-height:23px;
|
||||||
}
|
}
|
||||||
/*end*/
|
/*end*/
|
||||||
|
|
||||||
|
.create-share{
|
||||||
|
border-radius: 5px;
|
||||||
|
padding-top: 3px;
|
||||||
|
margin-top: 5px;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue