|  |  | class ApplyProjectMastersController < ApplicationController
 | 
						
						
						
							|  |  |   
 | 
						
						
						
							|  |  |   before_filter :require_login, :find_apply, :only => [:create, :delete]  
 | 
						
						
						
							|  |  |   
 | 
						
						
						
							|  |  |   # GET /apply_project_masters
 | 
						
						
						
							|  |  |   # GET /apply_project_masters.json
 | 
						
						
						
							|  |  |   def index
 | 
						
						
						
							|  |  |     @apply_project_masters = ApplyProjectMaster.all
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     respond_to do |format|
 | 
						
						
						
							|  |  |       format.html # index.html.erb
 | 
						
						
						
							|  |  |       format.json { render json: @apply_project_masters }
 | 
						
						
						
							|  |  |     end
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   # GET /apply_project_masters/1
 | 
						
						
						
							|  |  |   # GET /apply_project_masters/1.json
 | 
						
						
						
							|  |  |   def show
 | 
						
						
						
							|  |  |     @apply_project_master = ApplyProjectMaster.find(params[:id])
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     respond_to do |format|
 | 
						
						
						
							|  |  |       format.html # show.html.erb
 | 
						
						
						
							|  |  |       format.json { render json: @apply_project_master }
 | 
						
						
						
							|  |  |     end
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   # GET /apply_project_masters/new
 | 
						
						
						
							|  |  |   # GET /apply_project_masters/new.json
 | 
						
						
						
							|  |  |   def new
 | 
						
						
						
							|  |  |     @apply_project_master = ApplyProjectMaster.new
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     respond_to do |format|
 | 
						
						
						
							|  |  |       format.html # new.html.erb
 | 
						
						
						
							|  |  |       format.json { render json: @apply_project_master }
 | 
						
						
						
							|  |  |     end
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   # GET /apply_project_masters/1/edit
 | 
						
						
						
							|  |  |   def edit
 | 
						
						
						
							|  |  |     @apply_project_master = ApplyProjectMaster.find(params[:id])
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   # POST /apply_project_masters
 | 
						
						
						
							|  |  |   # POST /apply_project_masters.json
 | 
						
						
						
							|  |  |   def create
 | 
						
						
						
							|  |  |     # @apply_project_master = ApplyProjectMaster.new(params[:apply_project_master])
 | 
						
						
						
							|  |  | # 
 | 
						
						
						
							|  |  |     # respond_to do |format|
 | 
						
						
						
							|  |  |       # if @apply_project_master.save
 | 
						
						
						
							|  |  |         # format.html { redirect_to @apply_project_master, notice: 'Apply project master was successfully created.' }
 | 
						
						
						
							|  |  |         # format.json { render json: @apply_project_master, status: :created, location: @apply_project_master }
 | 
						
						
						
							|  |  |       # else
 | 
						
						
						
							|  |  |         # format.html { render action: "new" }
 | 
						
						
						
							|  |  |         # format.json { render json: @apply_project_master.errors, status: :unprocessable_entity }
 | 
						
						
						
							|  |  |       # end
 | 
						
						
						
							|  |  |     # end
 | 
						
						
						
							|  |  |     
 | 
						
						
						
							|  |  |     set_apply(@apply, User.current, true)
 | 
						
						
						
							|  |  |     
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   # PUT /apply_project_masters/1
 | 
						
						
						
							|  |  |   # PUT /apply_project_masters/1.json
 | 
						
						
						
							|  |  |   def update
 | 
						
						
						
							|  |  |     @apply_project_master = ApplyProjectMaster.find(params[:id])
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     respond_to do |format|
 | 
						
						
						
							|  |  |       if @apply_project_master.update_attributes(params[:apply_project_master])
 | 
						
						
						
							|  |  |         format.html { redirect_to @apply_project_master, notice: 'Apply project master was successfully updated.' }
 | 
						
						
						
							|  |  |         format.json { head :no_content }
 | 
						
						
						
							|  |  |       else
 | 
						
						
						
							|  |  |         format.html { render action: "edit" }
 | 
						
						
						
							|  |  |         format.json { render json: @apply_project_master.errors, status: :unprocessable_entity }
 | 
						
						
						
							|  |  |       end
 | 
						
						
						
							|  |  |     end
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   # DELETE /apply_project_masters/1
 | 
						
						
						
							|  |  |   # DELETE /apply_project_masters/1.json
 | 
						
						
						
							|  |  |   def destroy
 | 
						
						
						
							|  |  |     @apply_project_master = ApplyProjectMaster.find(params[:id])
 | 
						
						
						
							|  |  |     @apply_project_master.destroy
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     respond_to do |format|
 | 
						
						
						
							|  |  |       format.html { redirect_to apply_project_masters_url }
 | 
						
						
						
							|  |  |       format.json { head :no_content }
 | 
						
						
						
							|  |  |     end
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  |   
 | 
						
						
						
							|  |  |   def delete
 | 
						
						
						
							|  |  |     set_apply(@apply, User.current, false)
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  |   
 | 
						
						
						
							|  |  |   private
 | 
						
						
						
							|  |  |   
 | 
						
						
						
							|  |  |   def find_apply
 | 
						
						
						
							|  |  |     klass = Object.const_get(params[:object_type].camelcase) rescue nil
 | 
						
						
						
							|  |  |     if klass && klass.respond_to?('applied_by')
 | 
						
						
						
							|  |  |       @apply = klass.find_all_by_id(Array.wrap(params[:object_id]))
 | 
						
						
						
							|  |  |     end
 | 
						
						
						
							|  |  |     render_404 unless @apply.present?
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   #flag标注功能,为1时设置‘申请版主’,为0时设置取消
 | 
						
						
						
							|  |  |   def set_apply(objects, user, flag)
 | 
						
						
						
							|  |  |     objects.each do |object|
 | 
						
						
						
							|  |  |       object.set_apply(user, flag)
 | 
						
						
						
							|  |  |     end
 | 
						
						
						
							|  |  |     respond_to do |format|
 | 
						
						
						
							|  |  |       format.html { redirect_to_referer_or {render :text => (watching ? 'Watcher added.' : 'Watcher removed.'), :layout => true}}
 | 
						
						
						
							|  |  |       format.js { render :partial => 'set_apply', :locals => {:user => user, :objects => objects} }
 | 
						
						
						
							|  |  |     end
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  | end
 |