add get_bulletins_json function
This commit is contained in:
		
							parent
							
								
									e6a9555dd8
								
							
						
					
					
						commit
						800279ea69
					
				|  | @ -4,11 +4,11 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController | |||
| 
 | ||||
|   before_filter :clean_values, :only => [:create, :update] | ||||
| 
 | ||||
| #  before_filter :for_admin_only,:only => [:] | ||||
| #  before_filter :for_app_manager,:only => [:index,:show,]  | ||||
|   #  before_filter :for_admin_only,:only => [:] | ||||
|   #  before_filter :for_app_manager,:only => [:index,:show,]  | ||||
|   before_filter :force_order_for_visitor,:only=>[:index,:show,:get_sorted_and_filtered_bulletins] | ||||
|   before_filter :force_order_for_user,:except => [:index,:show,:get_sorted_and_filtered_bulletins] | ||||
|   before_filter :for_app_sub_manager,:except => [:index,:show,:get_sorted_and_filtered_bulletins] | ||||
|   before_filter :force_order_for_user,:except => [:index,:show,:get_sorted_and_filtered_bulletins,:get_bulletins_json] | ||||
|   before_filter :for_app_sub_manager,:except => [:index,:show,:get_sorted_and_filtered_bulletins,:get_bulletins_json] | ||||
| 
 | ||||
|   before_filter :only => [ :new,:create,:edit,:update,:create] do |controller| | ||||
|     controller.get_categorys('BulletinCategory') | ||||
|  | @ -22,6 +22,28 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController | |||
|     render '/shared/preview/preview.html.erb',:layout=>false | ||||
|   end | ||||
| 
 | ||||
|   def get_bulletins_json | ||||
|     @bulletins = Bulletin.all | ||||
|     @data = Hash.new | ||||
|     @data[I18n.t("category")] = Hash.new | ||||
| 
 | ||||
|     @bulletins.each do |b| | ||||
|       deadline = b.deadline | ||||
| 
 | ||||
|       if not deadline.nil? | ||||
|         deadline = display_date_time(deadline) | ||||
|       else | ||||
|         deadline = I18n.t("no_deadline") | ||||
|       end | ||||
|       @data[I18n.t("category")][b.bulletin_category.title] = { title: b.title, | ||||
|                                            postdate: display_date_time(b.postdate), | ||||
|                                            deadline: deadline, | ||||
|                                            tag: b.sorted_tags.to_a, | ||||
|       } | ||||
|     end | ||||
|     render :json => @data.to_json | ||||
|   end | ||||
| 
 | ||||
|   def index | ||||
|     # @bulletins = Bulletin.all | ||||
|     # @bulletins = Bulletin.desc("postdate desc") | ||||
|  | @ -52,10 +74,10 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController | |||
| 
 | ||||
|     @bulletin_link = BulletinLink.new | ||||
|     @link_url = panel_announcement_back_end_bulletins_path | ||||
| 	 | ||||
| 
 | ||||
|     @bulletin_file = BulletinFile.new | ||||
|     @file_url = panel_announcement_back_end_bulletins_path | ||||
|      | ||||
| 
 | ||||
|     respond_to do |format| | ||||
|       format.html # index.html.erb | ||||
|       format.js { } | ||||
|  | @ -84,13 +106,13 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController | |||
|       @bulletin = session[:in_validate_object] | ||||
|       session[:in_validate_object] = {} | ||||
|     end | ||||
|      | ||||
| 
 | ||||
|     @link_url = panel_announcement_back_end_bulletins_path | ||||
|     get_tags | ||||
|     respond_to do |format| | ||||
|         format.html # new.html.erb | ||||
|         format.xml  { render :xml => @bulletin } | ||||
|   	end | ||||
|       format.html # new.html.erb | ||||
|       format.xml  { render :xml => @bulletin } | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   # GET /bulletins/1/edit | ||||
|  | @ -100,85 +122,82 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController | |||
|       redirect_to :action => :index | ||||
|     else | ||||
|       # @summary_variable = @bulletin.summary_variable | ||||
|   	 | ||||
|     	@link_url = panel_announcement_back_end_bulletin_path(@bulletin) | ||||
|     	 | ||||
|     	get_tags | ||||
| 
 | ||||
|       @link_url = panel_announcement_back_end_bulletin_path(@bulletin) | ||||
| 
 | ||||
|       get_tags | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   # POST /bulletins | ||||
|   # POST /bulletins.xml | ||||
|   def create | ||||
| 	get_tags | ||||
| 	if params[:bulletin_link] | ||||
|    | ||||
| 		@bulletin_link = BulletinLink.new(params[:bulletin_link]) | ||||
|     get_tags | ||||
|     if params[:bulletin_link] | ||||
| 
 | ||||
| 		respond_to do |format| | ||||
| 		  if @bulletin_link.save | ||||
| 			format.js { render 'create_bulletin_link' } | ||||
| 		  end | ||||
| 		end | ||||
| 	 | ||||
| 	elsif params[:bulletin_file] | ||||
|    | ||||
| 		@bulletin_file = BulletinFile.new(params[:bulletin_file]) | ||||
|       @bulletin_link = BulletinLink.new(params[:bulletin_link]) | ||||
| 
 | ||||
| 		respond_to do |format| | ||||
| 		  if @bulletin_file.save | ||||
|         format.js { render 'create_bulletin_file' } | ||||
| 		  end | ||||
| 		end | ||||
| 	 | ||||
| 	else   | ||||
|    | ||||
| 		@bulletin = Bulletin.new(params[:bulletin]) | ||||
|             @bulletin.deadline = nil if (@bulletin.deadline < @bulletin.postdate rescue nil) | ||||
| 		 | ||||
| 		@bulletin.create_user_id = current_user.id | ||||
| 		@bulletin.update_user_id = current_user.id | ||||
|             if(is_manager? || is_admin?) | ||||
|                     @bulletin.is_checked = true | ||||
|                     @bulletin.is_rejected = false | ||||
|                     @bulletin.de_pending | ||||
|             end | ||||
|       respond_to do |format| | ||||
|         if @bulletin_link.save | ||||
|           format.js { render 'create_bulletin_link' } | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
| 		respond_to do |format| | ||||
| 		  if @bulletin.save | ||||
|                    | ||||
| 			format.html { redirect_to(panel_announcement_back_end_bulletins_url, :notice => t('announcement.create_bulletin_success')) } | ||||
| 			format.xml  { render :xml => @bulletin, :status => :created, :location => @bulletin } | ||||
| 			# format.js | ||||
|                   format.js {  | ||||
|                     @info = {"success"=>"true","redirect_url"=>panel_announcement_back_end_bulletins_url} | ||||
|                     flash[:notice] = t('bulletin.create_bulletin_success') | ||||
|                     render "/shared/preview/after_create.js.erb" | ||||
|                   } | ||||
| 		  else | ||||
| 			format.html { render :action => "new" } | ||||
| 			format.xml  { render :xml => @bulletin.errors, :status => :unprocessable_entity } | ||||
|                   format.js {  | ||||
|                     @info = {"success"=>"false","redirect_url"=>new_panel_announcement_back_end_bulletin_url(:bulletin => @bulletin)} | ||||
|                     session[:in_validate_object] = @bulletin | ||||
|                     render "/shared/preview/after_create.js.erb" | ||||
|                   } | ||||
| 		  end | ||||
| 		end | ||||
| 		 | ||||
| 	end | ||||
| 	 | ||||
|     elsif params[:bulletin_file] | ||||
| 
 | ||||
|       @bulletin_file = BulletinFile.new(params[:bulletin_file]) | ||||
| 
 | ||||
|       respond_to do |format| | ||||
|         if @bulletin_file.save | ||||
|           format.js { render 'create_bulletin_file' } | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
|     else | ||||
| 
 | ||||
|       @bulletin = Bulletin.new(params[:bulletin]) | ||||
|       @bulletin.deadline = nil if (@bulletin.deadline < @bulletin.postdate rescue nil) | ||||
| 
 | ||||
|       @bulletin.create_user_id = current_user.id | ||||
|       @bulletin.update_user_id = current_user.id | ||||
|       if(is_manager? || is_admin?) | ||||
|         @bulletin.is_checked = true | ||||
|         @bulletin.is_rejected = false | ||||
|         @bulletin.de_pending | ||||
|       end | ||||
| 
 | ||||
|       respond_to do |format| | ||||
|         if @bulletin.save | ||||
| 
 | ||||
|           format.html { redirect_to(panel_announcement_back_end_bulletins_url, :notice => t('announcement.create_bulletin_success')) } | ||||
|           format.xml  { render :xml => @bulletin, :status => :created, :location => @bulletin } | ||||
|           # format.js | ||||
|           format.js {  | ||||
|             @info = {"success"=>"true","redirect_url"=>panel_announcement_back_end_bulletins_url} | ||||
|             flash[:notice] = t('bulletin.create_bulletin_success') | ||||
|             render "/shared/preview/after_create.js.erb" | ||||
|           } | ||||
|         else | ||||
|           format.html { render :action => "new" } | ||||
|           format.xml  { render :xml => @bulletin.errors, :status => :unprocessable_entity } | ||||
|           format.js {  | ||||
|             @info = {"success"=>"false","redirect_url"=>new_panel_announcement_back_end_bulletin_url(:bulletin => @bulletin)} | ||||
|             session[:in_validate_object] = @bulletin | ||||
|             render "/shared/preview/after_create.js.erb" | ||||
|           } | ||||
|         end | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   def link_quick_add     | ||||
|   def link_quick_add | ||||
|     @bulletin_link = BulletinLink.new | ||||
|     @link_url = panel_announcement_back_end_bulletins_path | ||||
|     @bulletin_link.bulletin_id = params[:bulletin_id] | ||||
| 	 | ||||
| 
 | ||||
|     respond_to do |format| | ||||
|       format.js | ||||
|     end | ||||
| 	 | ||||
|   end | ||||
| 
 | ||||
|   def link_quick_edit | ||||
|  | @ -189,14 +208,13 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController | |||
|     end | ||||
|   end | ||||
| 
 | ||||
|   def file_quick_add     | ||||
|   def file_quick_add | ||||
|     @bulletin_file = BulletinFile.new | ||||
|     @file_url = panel_announcement_back_end_bulletins_path | ||||
|     @bulletin_file.bulletin_id = params[:bulletin_id] | ||||
|     respond_to do |format| | ||||
|       format.js | ||||
|     end | ||||
| 	 | ||||
|   end | ||||
| 
 | ||||
|   def file_quick_edit | ||||
|  | @ -211,75 +229,71 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController | |||
|   # PUT /bulletins/1.xml | ||||
| 
 | ||||
|   def update | ||||
|     	if params[:bulletin_link] | ||||
|   	 | ||||
|   		@bulletin_link = BulletinLink.find(params[:id]) | ||||
|     if params[:bulletin_link] | ||||
| 
 | ||||
|   		@link_url = panel_announcement_back_end_bulletin_path(@bulletin_link) | ||||
|       @bulletin_link = BulletinLink.find(params[:id]) | ||||
|       @link_url = panel_announcement_back_end_bulletin_path(@bulletin_link) | ||||
| 
 | ||||
|   		respond_to do |format| | ||||
|              | ||||
|   		  if @bulletin_link.update_attributes(params[:bulletin_link]) | ||||
|   			# format.html { redirect_to(panel_announcement_back_end_bulletins_url) } | ||||
|   			format.js { render 'update_bulletin_link' } | ||||
|   		  end | ||||
|   		end | ||||
|   	 | ||||
|   	elsif params[:bulletin_file] | ||||
|   	 | ||||
|   		@bulletin_file = BulletinFile.find(params[:id]) | ||||
|   		 | ||||
|   		@file_url = panel_announcement_back_end_bulletin_path(@bulletin_file) | ||||
|       respond_to do |format| | ||||
|         if @bulletin_link.update_attributes(params[:bulletin_link]) | ||||
|           # format.html { redirect_to(panel_announcement_back_end_bulletins_url) } | ||||
|           format.js { render 'update_bulletin_link' } | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
|   		respond_to do |format| | ||||
|              | ||||
|   		  if @bulletin_file.update_attributes(params[:bulletin_file]) | ||||
|   			# format.html { redirect_to(panel_announcement_back_end_bulletins_url) } | ||||
|   			format.js { render 'update_bulletin_file' } | ||||
|   		  end | ||||
|   		end | ||||
|   	 | ||||
|   	else | ||||
|      | ||||
|   		@bulletin = Bulletin.find(params[:id]) | ||||
|   		 | ||||
|   		# @bulletin.image.clear if params[:bulletin][:image_del] == '1' | ||||
|   		# if params[:bulletin][:image_del] == '1'  | ||||
|   			# @bulletin.remove_image! | ||||
|   			# @bulletin.image_del = nil | ||||
|   			# params[:bulletin][:image_del] = nil | ||||
|   		# end | ||||
|     elsif params[:bulletin_file] | ||||
| 
 | ||||
|       @bulletin_file = BulletinFile.find(params[:id]) | ||||
|       @file_url = panel_announcement_back_end_bulletin_path(@bulletin_file) | ||||
|       respond_to do |format| | ||||
| 
 | ||||
|         if @bulletin_file.update_attributes(params[:bulletin_file]) | ||||
|           # format.html { redirect_to(panel_announcement_back_end_bulletins_url) } | ||||
|           format.js { render 'update_bulletin_file' } | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
|     else | ||||
| 
 | ||||
|       @bulletin = Bulletin.find(params[:id]) | ||||
| 
 | ||||
|       # @bulletin.image.clear if params[:bulletin][:image_del] == '1' | ||||
|       # if params[:bulletin][:image_del] == '1'  | ||||
|       # @bulletin.remove_image! | ||||
|       # @bulletin.image_del = nil | ||||
|       # params[:bulletin][:image_del] = nil | ||||
|       # end | ||||
| 
 | ||||
| 
 | ||||
|             delete_out_invalid_date_from_params | ||||
|   		respond_to do |format| | ||||
|              | ||||
|   		  if @bulletin.update_attributes(params[:bulletin]) | ||||
|                  if(is_manager? || is_admin?) | ||||
|                   @bulletin.is_checked = true | ||||
|                   @bulletin.is_rejected = false | ||||
|                   @bulletin.de_pending! | ||||
|                  end | ||||
|                 # if (params[:bulletin][:is_checked] == "false") | ||||
|                 #   @bulletin.is_rejected = true | ||||
|                 #   @bulletin.save! | ||||
|                 # end | ||||
|                    # if (@bulletin.deadline < @bulletin.postdate rescue nil) | ||||
|                    #    @bulletin.deadline = nil | ||||
|                    #    @bulletin.update_user_id = current_user.id | ||||
|                    #    @bulletin.save! | ||||
|                    #  end | ||||
|   			# format.html { redirect_to(panel_announcement_back_end_bulletin_url(@bulletin), :notice => t('bulletin.update_bulletin_success')) } | ||||
|   			format.html { redirect_to(panel_announcement_back_end_bulletins_url, :notice => t('bulletin.update_bulletin_success')) } | ||||
|   			format.js  { render 'toggle_enable' } | ||||
|   			format.xml  { head :ok } | ||||
|   		  else | ||||
|                   get_tags | ||||
|   			format.html { render :action => "edit" } | ||||
|   			format.xml  { render :xml => @bulletin.errors, :status => :unprocessable_entity } | ||||
|   		  end | ||||
|   		end | ||||
| 		 | ||||
|       delete_out_invalid_date_from_params | ||||
|       respond_to do |format| | ||||
| 
 | ||||
|         if @bulletin.update_attributes(params[:bulletin]) | ||||
|           if(is_manager? || is_admin?) | ||||
|             @bulletin.is_checked = true | ||||
|             @bulletin.is_rejected = false | ||||
|             @bulletin.de_pending! | ||||
|           end | ||||
|           # if (params[:bulletin][:is_checked] == "false") | ||||
|           #   @bulletin.is_rejected = true | ||||
|           #   @bulletin.save! | ||||
|           # end | ||||
|           # if (@bulletin.deadline < @bulletin.postdate rescue nil) | ||||
|           #    @bulletin.deadline = nil | ||||
|           #    @bulletin.update_user_id = current_user.id | ||||
|           #    @bulletin.save! | ||||
|           #  end | ||||
|           # format.html { redirect_to(panel_announcement_back_end_bulletin_url(@bulletin), :notice => t('bulletin.update_bulletin_success')) } | ||||
|           format.html { redirect_to(panel_announcement_back_end_bulletins_url, :notice => t('bulletin.update_bulletin_success')) } | ||||
|           format.js  { render 'toggle_enable' } | ||||
|           format.xml  { head :ok } | ||||
|         else | ||||
|           get_tags | ||||
|           format.html { render :action => "edit" } | ||||
|           format.xml  { render :xml => @bulletin.errors, :status => :unprocessable_entity } | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|  | @ -291,7 +305,7 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController | |||
|     @bulletin.destroy | ||||
| 
 | ||||
|     respond_to do |format| | ||||
|       | ||||
| 
 | ||||
|       format.html { redirect_to(panel_announcement_back_end_bulletins_url) } | ||||
|       # format.xml  { head :ok } | ||||
|       format.js | ||||
|  | @ -299,21 +313,21 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController | |||
|   end | ||||
| 
 | ||||
|   # def top_edit | ||||
| 	 | ||||
| 	# Bulletin.where(id: params[:id]).update_all( is_top: true ) | ||||
|     # respond_to do |format| | ||||
|       # format.html { redirect_to(panel_announcement_back_end_bulletins_url) } | ||||
|       # format.xml  { head :ok } | ||||
|     # end | ||||
| 	 | ||||
| 
 | ||||
|   # Bulletin.where(id: params[:id]).update_all( is_top: true ) | ||||
|   # respond_to do |format| | ||||
|   # format.html { redirect_to(panel_announcement_back_end_bulletins_url) } | ||||
|   # format.xml  { head :ok } | ||||
|   # end | ||||
|    | ||||
| 
 | ||||
|   # end | ||||
| 
 | ||||
| 
 | ||||
|   def load_quick_edit | ||||
|     @bulletin = Bulletin.find(params[:id]) | ||||
|     @type = params[:type] | ||||
|     @bulletin_categories = BulletinCategory.all | ||||
|      #TODO 需要做 manager ,admin 才可以 all.  其他 available就好 | ||||
|     #TODO 需要做 manager ,admin 才可以 all.  其他 available就好 | ||||
| 
 | ||||
|     get_tags | ||||
|   end | ||||
|  | @ -325,9 +339,9 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController | |||
|     redirect_to panel_announcement_back_end_bulletins_url(:filter => params[:filter], :direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options]) | ||||
|   end | ||||
| 
 | ||||
|    | ||||
| 
 | ||||
|   protected | ||||
|    | ||||
| 
 | ||||
|   def delete_out_invalid_date_from_params | ||||
|     if((params[:bulletin]["deadline(1i)"] && params[:bulletin]["deadline(1i)"].blank?) or (params[:bulletin]["deadline(2i)"] && params[:bulletin]["deadline(2i)"].blank?) or (params[:bulletin]["deadline(3i)"] && params[:bulletin]["deadline(3i)"].blank?))  | ||||
|       params[:bulletin].delete("deadline(1i)") | ||||
|  | @ -361,10 +375,10 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController | |||
|   #       redirect_to :action => :index | ||||
|   #   end | ||||
|   # end | ||||
|    | ||||
| 
 | ||||
|   def get_tags | ||||
|   	module_app = ModuleApp.first(:conditions => {:key => 'announcement'}) | ||||
|   	@tags = Tag.all(:conditions => {:module_app_id => module_app.id}).order_by(I18n.locale, :asc) rescue [] | ||||
|     module_app = ModuleApp.first(:conditions => {:key => 'announcement'}) | ||||
|     @tags = Tag.all(:conditions => {:module_app_id => module_app.id}).order_by(I18n.locale, :asc) rescue [] | ||||
|   end | ||||
| 
 | ||||
|   def clean_values | ||||
|  | @ -377,5 +391,4 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController | |||
|       end rescue nil | ||||
|     end | ||||
|   end | ||||
|    | ||||
| end | ||||
|  |  | |||
|  | @ -6,6 +6,7 @@ Rails.application.routes.draw do | |||
|         match 'approval_setting' => "approvals#setting" ,:as => :approval_setting,:via => :get | ||||
|         match 'approval_setting' => "approvals#update_setting" ,:as => :approval_setting,:via => :post | ||||
|         match 'approval_setting' => "approvals#user_list" ,:as => :approval_user_list,:via => :put | ||||
|         #match 'get_bulletins_json' => "bulletins#get_bulletins_json" ,:as => :bulletins_json_list,:via => :get | ||||
|         resources :bulletins do | ||||
|           match "approve/:bulletin_id"  => "approvals#preview_and_approve",:as => :approval_preview,:via => :put | ||||
|           match "approve/:bulletin_id"  => "approvals#approve",:as => :approve,:via => :post | ||||
|  | @ -18,21 +19,22 @@ Rails.application.routes.draw do | |||
|             post "preview" | ||||
|             put "preview" | ||||
|             get 'delete' | ||||
|             get 'get_bulletins_json' | ||||
|           end | ||||
|           match "file_quick_add/:bulletin_id" => "bulletins#file_quick_add" ,:as => :file_quick_add | ||||
|           match "file_quick_edit/:bulletin_id" => "bulletins#file_quick_edit" ,:as => :file_quick_edit | ||||
|         end | ||||
| 		 | ||||
| 
 | ||||
|         resources :bulletin_categorys  | ||||
| 		 | ||||
| 		resources :bulletin_links, :controller => 'bulletin_links' do | ||||
| 
 | ||||
|         resources :bulletin_links, :controller => 'bulletin_links' do | ||||
|           match "link_quick_edit/:bulletin_link_id" => "bulletin_links#link_quick_edit" ,:as => :link_quick_edit | ||||
|         end | ||||
| 		 | ||||
| 		resources :bulletin_files, :controller => 'bulletin_files' do | ||||
| 
 | ||||
|         resources :bulletin_files, :controller => 'bulletin_files' do | ||||
|           match "file_quick_edit/:bulletin_file_id" => "bulletin_files#file_quick_edit" ,:as => :file_quick_edit | ||||
|         end | ||||
| 		 | ||||
| 
 | ||||
|         resources :tags | ||||
|       end | ||||
|       namespace :front_end do | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue