From bd7518093f192e6f98728518faa68b8442ada83d Mon Sep 17 00:00:00 2001 From: Rueshyna Date: Wed, 14 Nov 2012 16:20:32 +0800 Subject: [PATCH] about route url link bug --- .../back_end/bulletin_categorys_controller.rb | 69 +++++++++++++++---- .../back_end/bulletins_controller.rb | 44 +----------- .../announcement/config/routes.rb | 10 ++- 3 files changed, 64 insertions(+), 59 deletions(-) diff --git a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletin_categorys_controller.rb b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletin_categorys_controller.rb index c0ae8244..9f4ddf72 100644 --- a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletin_categorys_controller.rb +++ b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletin_categorys_controller.rb @@ -1,13 +1,13 @@ class Panel::Announcement::BackEnd::BulletinCategorysController < OrbitBackendController include OrbitControllerLib::DivisionForDisable before_filter :for_app_manager,:except => [:index] - + def index @bulletin_categorys = get_categories_for_index("BulletinCategory") #TODO 需要做 manager ,admin 才可以 all. 其他 available就好 @bulletin_category = BulletinCategory.new(:display => 'List') - @url = panel_announcement_back_end_bulletin_categorys_path - + @url = panel_announcement_back_end_bulletin_categorys_path + respond_to do |format| format.html # index.html.erb # format.xml { render :xml => @bulletins } @@ -15,6 +15,47 @@ class Panel::Announcement::BackEnd::BulletinCategorysController < OrbitBackendCo end end + def get_categorys_json + categorys = BulletinCategory.all + data = Array.new + + categorys.each do |c| + data << { + category: c.title, + # link: get_bulletin_json(c) + } + end + + #render :json => @data.to_json + #to print readable json + render :json => JSON.pretty_generate(data) + end + + def get_bulletins_json + bulletin = Bulletin.where(params[:category_id]) + data = Array.new + + bulletin.each do |b| + deadline = b.deadline + + if not deadline.nil? + deadline = display_date_time(deadline) + else + deadline = I18n.t("no_deadline") + end + + data << { + title: b.title, + link: panel_announcement_front_end_bulletin_path(bulletin, :category_id => b.bulletin_category.id), + postdate: display_date_time(b.postdate), + deadline: deadline, + tag: b.sorted_tags.to_a, + } + end + + render :json => JSON.pretty_generate(data) + end + # GET /bulletins/1 # GET /bulletins/1.xml def show @@ -40,23 +81,23 @@ class Panel::Announcement::BackEnd::BulletinCategorysController < OrbitBackendCo end def quick_edit - # debugger - + # debugger + @bulletin_category = BulletinCategory.find(params[:bulletin_category_id]) - - @url = panel_announcement_back_end_bulletin_category_path(@bulletin_category) - + + @url = panel_announcement_back_end_bulletin_category_path(@bulletin_category) + respond_to do |format| format.js end - + end - + # GET /bulletins/1/edit def edit @bulletin_category = BulletinCategory.find(params[:id]) - - @url = panel_announcement_back_end_bulletin_category_path(@bulletin_category) + + @url = panel_announcement_back_end_bulletin_category_path(@bulletin_category) respond_to do |format| format.html @@ -87,8 +128,8 @@ class Panel::Announcement::BackEnd::BulletinCategorysController < OrbitBackendCo # PUT /bulletins/1.xml def update @bulletin_category = BulletinCategory.find(params[:id]) - - @url = panel_announcement_back_end_bulletin_category_path(@bulletin_category) + + @url = panel_announcement_back_end_bulletin_category_path(@bulletin_category) respond_to do |format| if @bulletin_category.update_attributes(params[:bulletin_category]) 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 c06892a1..e8b69d73 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 @@ -7,8 +7,8 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController # 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,:get_bulletins_json] - before_filter :for_app_sub_manager,:except => [:index,:show,:get_sorted_and_filtered_bulletins,:get_bulletins_json] + before_filter :force_order_for_user,:except => [:index,:show,:get_sorted_and_filtered_bulletins,:get_bulletins_json,:get_bulletin_json] + before_filter :for_app_sub_manager,:except => [:index,:show,:get_sorted_and_filtered_bulletins,:get_bulletins_json,:get_bulletin_json] before_filter :only => [ :new,:create,:edit,:update,:create] do |controller| controller.get_categorys('BulletinCategory') @@ -22,46 +22,6 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController render '/shared/preview/preview.html.erb',:layout=>false end - def get_bulletins_json - categorys = BulletinCategory.all - data = Array.new - - categorys.each do |c| - data << { - category: c.title - link: path_get_bulletin_json(c) - } - end - - #render :json => @data.to_json - #to print readable json - render :json => JSON.pretty_generate(@data) - end - - def get_bulletin_json - bulletin = Bulletin.find(params[:category_id]) - data = Array.new - - bulletin.each do |b| - deadline = b.deadline - - if not deadline.nil? - deadline = display_date_time(deadline) - else - deadline = I18n.t("no_deadline") - end - - data << { - title: b.title, - link: panel_announcement_front_end_bulletin_path(bulletin, :category_id => b.bulletin_category.id) - postdate: display_date_time(b.postdate), - deadline: deadline, - tag: b.sorted_tags.to_a, - } - end - - render :json => JSON.pretty_generate(data) - end def index # @bulletins = Bulletin.all diff --git a/vendor/built_in_modules/announcement/config/routes.rb b/vendor/built_in_modules/announcement/config/routes.rb index 5b9dd6a4..675d71f0 100644 --- a/vendor/built_in_modules/announcement/config/routes.rb +++ b/vendor/built_in_modules/announcement/config/routes.rb @@ -12,7 +12,7 @@ Rails.application.routes.draw do match "approve/:bulletin_id" => "approvals#approve",:as => :approve,:via => :post match "link_quick_add/:bulletin_id" => "bulletins#link_quick_add" ,:as => :link_quick_add match "link_quick_edit/:bulletin_id" => "bulletins#link_quick_edit" ,:as => :link_quick_edit - match 'get_bulletin_json/:category_id' => "bulletins#get_bulletin_json", :as => :get_bulletin_json + member do get 'load_quick_edit' end @@ -20,13 +20,17 @@ 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_categorys do + collection do + get 'get_categorys_json' + end + match "get_bulletins_json/" => "bulletin_categorys#get_bulletins_json", :as => :get_bulletins_json + end resources :bulletin_links, :controller => 'bulletin_links' do match "link_quick_edit/:bulletin_link_id" => "bulletin_links#link_quick_edit" ,:as => :link_quick_edit