|  |  | # encoding: utf-8
 | 
						
						
						
							|  |  | class SharesController < ApplicationController
 | 
						
						
						
							|  |  |   before_filter :require_login, :except => [:index]
 | 
						
						
						
							|  |  |   before_filter :require_admin, :only => [:index]
 | 
						
						
						
							|  |  |   # GET /shares
 | 
						
						
						
							|  |  |   # GET /shares.json
 | 
						
						
						
							|  |  |   def index
 | 
						
						
						
							|  |  |     @shares = Share.all
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     respond_to do |format|
 | 
						
						
						
							|  |  |       format.html # index.html.erb
 | 
						
						
						
							|  |  |       format.json { render json: @shares }
 | 
						
						
						
							|  |  |     end
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   # GET /shares/1
 | 
						
						
						
							|  |  |   # GET /shares/1.json
 | 
						
						
						
							|  |  |   def show
 | 
						
						
						
							|  |  |     @share = Share.find(params[:id])
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     respond_to do |format|
 | 
						
						
						
							|  |  |       format.html # show.html.erb
 | 
						
						
						
							|  |  |       format.json { render json: @share }
 | 
						
						
						
							|  |  |     end
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   # GET /shares/new
 | 
						
						
						
							|  |  |   # GET /shares/new.json
 | 
						
						
						
							|  |  |   def new
 | 
						
						
						
							|  |  |     @share = Share.new
 | 
						
						
						
							|  |  |     @user = User.current
 | 
						
						
						
							|  |  |     @ps = @user.projects.all
 | 
						
						
						
							|  |  |     
 | 
						
						
						
							|  |  |     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
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     respond_to do |format|
 | 
						
						
						
							|  |  |       format.html # new.html.erb
 | 
						
						
						
							|  |  |       format.json { render json: @share }
 | 
						
						
						
							|  |  |     end
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   # GET /shares/1/edit
 | 
						
						
						
							|  |  |   def edit
 | 
						
						
						
							|  |  |     @share = Share.find(params[:id])
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   # POST /shares
 | 
						
						
						
							|  |  |   # POST /shares.json
 | 
						
						
						
							|  |  |   def create
 | 
						
						
						
							|  |  |     @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|
 | 
						
						
						
							|  |  |       if @share.save
 | 
						
						
						
							|  |  |         #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 }
 | 
						
						
						
							|  |  |       else
 | 
						
						
						
							|  |  |         format.html { render action: "new" }
 | 
						
						
						
							|  |  |         format.json { render json: @share.errors, status: :unprocessable_entity }
 | 
						
						
						
							|  |  |       end
 | 
						
						
						
							|  |  |     end
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   # PUT /shares/1
 | 
						
						
						
							|  |  |   # PUT /shares/1.json
 | 
						
						
						
							|  |  |   def update
 | 
						
						
						
							|  |  |     @share = Share.find(params[:id])
 | 
						
						
						
							|  |  |     
 | 
						
						
						
							|  |  |     @project = params[:project_id]
 | 
						
						
						
							|  |  |     @share.user_id = User.current.id
 | 
						
						
						
							|  |  |     respond_to do |format|
 | 
						
						
						
							|  |  |       if @share.update_attributes(params[:share])
 | 
						
						
						
							|  |  |         format.html { redirect_to @share, notice: 'Share was successfully updated.' }
 | 
						
						
						
							|  |  |         format.json { head :no_content }
 | 
						
						
						
							|  |  |       else
 | 
						
						
						
							|  |  |         format.html { render action: "edit" }
 | 
						
						
						
							|  |  |         format.json { render json: @share.errors, status: :unprocessable_entity }
 | 
						
						
						
							|  |  |       end
 | 
						
						
						
							|  |  |     end
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   # DELETE /shares/1
 | 
						
						
						
							|  |  |   # DELETE /shares/1.json
 | 
						
						
						
							|  |  |   def destroy
 | 
						
						
						
							|  |  |     @share = Share.find(params[:id])
 | 
						
						
						
							|  |  |     @share.destroy
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     respond_to do |format|
 | 
						
						
						
							|  |  |       format.html { redirect_to shares_url }
 | 
						
						
						
							|  |  |       format.json { head :no_content }
 | 
						
						
						
							|  |  |     end
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  | end
 |