- <%= f.text_field :link, :class => 'span4', :placeholder => 'RSS URL', :id => "inputURL"%>
+
+
+
+ <%= f.text_field :link, :class => 'span4', :placeholder => 'RSS URL', :id => "inputURL" %>
+
-
-
- <%= f.submit t("submit"), :class => "btn btn-primary" %>
+
+
+
+ <%= f.select(:category, options_for_select([["#{t('feed.all')}", "all"]] +
+ @categories.all.collect {|c| [ c.title, c.title ] })) %>
+
+
+
+
+
+ <%= f.submit t("submit"), :class => "btn btn-primary" %>
+
-
\ No newline at end of file
diff --git a/vendor/built_in_modules/feed/config/locales/en.yml b/vendor/built_in_modules/feed/config/locales/en.yml
index 0d840eb35..31caf914a 100644
--- a/vendor/built_in_modules/feed/config/locales/en.yml
+++ b/vendor/built_in_modules/feed/config/locales/en.yml
@@ -1,6 +1,8 @@
en:
feed:
- feed: Rss
+ all: All
+ choose: Choose a Category
+ feed: RSS
channel: Announcement Rss
new: New
edit: Edit
diff --git a/vendor/built_in_modules/feed/config/locales/zh_tw.yml b/vendor/built_in_modules/feed/config/locales/zh_tw.yml
index 42492cd6e..2117306d3 100644
--- a/vendor/built_in_modules/feed/config/locales/zh_tw.yml
+++ b/vendor/built_in_modules/feed/config/locales/zh_tw.yml
@@ -1,6 +1,8 @@
zh_tw:
feed:
- feed: Rss
+ all: 全部
+ choose: 選擇訂閱類別
+ feed: RSS
channel: 公告RSS訂閱
new: 新增
edit: 編輯
diff --git a/vendor/built_in_modules/feed/lib/rss_dynamic.rb b/vendor/built_in_modules/feed/lib/rss_dynamic.rb
index c36cabca0..51eda6e33 100644
--- a/vendor/built_in_modules/feed/lib/rss_dynamic.rb
+++ b/vendor/built_in_modules/feed/lib/rss_dynamic.rb
@@ -2,20 +2,20 @@
require 'rss'
require 'mongo'
-
# Change this according to local DB
-DB_BASE_NAME = "production_0"
+DB_NAME = "production_0"
# Create a hash rss site list from mongodb
-db = Mongo::Connection.new("localhost", 27017).db("#{DB_BASE_NAME}")
+db = Mongo::Connection.new("localhost", 27017).db("#{DB_NAME}")
SITES = Hash[ db["announcement_feeds"].find().entries.collect {|f| [ f["name"], f["link"] ]} ]
+CATEGORIES = db["announcement_feeds"].find().entries.map {|f| f["category"] }
yesterday = Time.now - 86400
two_weeks_ago = Time.new - 60 * 60 * 24 * 14
recent_feed = {}
-SITES.each do |name, url|
+SITES.each_with_index do |(name, url), i|
open("http://#{url}/panel/announcement/front_end/bulletins.rss?inner=true") do |rss|
# Giving 'false' parameter is for skipping irregular format of the RSS
@@ -24,7 +24,7 @@ SITES.each do |name, url|
feed.items.each do |item|
category = item.category.to_s.gsub(/\<(\/)*category\>/, '')
- if item.pubDate > two_weeks_ago
+ if item.pubDate > yesterday && (CATEGORIES[i] == category || CATEGORIES[i] == "all")
recent_feed[item.title.strip] = { date: item.pubDate, description: item.description.gsub("\r\n", '
').strip,
link: item.link, category: category, source: name }
end
@@ -51,7 +51,7 @@ def get_category_id(category, categories, coll_cat)
end
def get_mongo_and_categories
- db = Mongo::Connection.new("localhost", 27017).db("#{DB_BASE_NAME}")
+ db = Mongo::Connection.new("localhost", 27017).db("#{DB_NAME}")
coll_bulletin = db["bulletins"]
coll_cat = db["bulletin_categories"]