diff --git a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletins_controller.rb b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletins_controller.rb index b6c0703d1..c4c4606f4 100644 --- a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletins_controller.rb +++ b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletins_controller.rb @@ -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 diff --git a/vendor/built_in_modules/announcement/config/routes.rb b/vendor/built_in_modules/announcement/config/routes.rb index 9de003d3b..857a4ac6e 100644 --- a/vendor/built_in_modules/announcement/config/routes.rb +++ b/vendor/built_in_modules/announcement/config/routes.rb @@ -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