diff --git a/vendor/built_in_modules/announcement/announcement.json b/vendor/built_in_modules/announcement/announcement.json
index 77026d91a..605c912e6 100644
--- a/vendor/built_in_modules/announcement/announcement.json
+++ b/vendor/built_in_modules/announcement/announcement.json
@@ -7,6 +7,6 @@
"update_info": "Some info",
"create_date": "11-11-2011",
"app_pages": ["bulletins"],
- "widgets": ["bulletins","bulletins_list"],
+ "widgets": ["bulletins","bulletins_list", "bulletins_and_web_links"],
"enable_frontend": true
}
diff --git a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/widget/bulletins_controller.rb b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/widget/bulletins_controller.rb
index 41319bf15..a8ca336ec 100644
--- a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/widget/bulletins_controller.rb
+++ b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/widget/bulletins_controller.rb
@@ -30,6 +30,23 @@ class Panel::Announcement::Widget::BulletinsController < ObitWidgetController
end
+ def bulletins_and_web_links
+ @tags = AnnouncementTag.all
+ @selected_tag = AnnouncementTag.find(params[:id]) rescue @tags[0]
+ @bulletins = @selected_tag.get_visible_bulletins.page(params[:page]).per(1) rescue nil
+ @web_links = WebResourceTag.first(:conditions => {:en => @selected_tag[:en]}).get_visible_links.page(params[:page]).per(1) rescue nil
+ end
+
+ def reload_bulletins
+ @selected_tag = AnnouncementTag.find(params[:tag_id])
+ @bulletins = @selected_tag.get_visible_bulletins.page(params[:page]).per(1) rescue nil
+ end
+
+ def reload_web_links
+ @selected_tag = AnnouncementTag.find(params[:tag_id])
+ @web_links = WebResourceTag.first(:conditions => {:en => @selected_tag[:en]}).get_visible_links.page(params[:page]).per(1) rescue nil
+ end
+
protected
diff --git a/vendor/built_in_modules/announcement/app/models/announcement_tag.rb b/vendor/built_in_modules/announcement/app/models/announcement_tag.rb
index 2eac01025..b40ace36b 100644
--- a/vendor/built_in_modules/announcement/app/models/announcement_tag.rb
+++ b/vendor/built_in_modules/announcement/app/models/announcement_tag.rb
@@ -2,4 +2,9 @@ class AnnouncementTag < Tag
has_and_belongs_to_many :bulletins
+
+ def get_visible_bulletins(sort = :name)
+ self.bulletins.where(:is_hidden => false).desc(:is_top, sort)
+ end
+
end
\ No newline at end of file
diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/_bulletins.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/_bulletins.html.erb
new file mode 100644
index 000000000..29fce0b13
--- /dev/null
+++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/_bulletins.html.erb
@@ -0,0 +1,7 @@
+<% @bulletins.each do |bulletin| %>
+
+ <%= bulletin.title[I18n.locale] %>
+
+<% end %>
+
+<%= paginate @bulletins, :params => {:controller => 'widget/bulletins', :action => 'reload_bulletins', :tag_id => @selected_tag.id}, :remote => true %>
\ No newline at end of file
diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/_tag.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/_tag.html.erb
new file mode 100644
index 000000000..c6940bd59
--- /dev/null
+++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/_tag.html.erb
@@ -0,0 +1,4 @@
+
+ <%= link_to tag[I18n.locale], panel_announcement_widget_bulletins_and_web_links_path(:id => tag.id), :remote => true %>
+ <%= '-' if tag.eql?(@selected_tag) %>
+
\ No newline at end of file
diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/_web_links.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/_web_links.html.erb
new file mode 100644
index 000000000..87038c1a6
--- /dev/null
+++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/_web_links.html.erb
@@ -0,0 +1,7 @@
+<% @web_links.each do |web_link| %>
+
+ <%= web_link.name[I18n.locale] %>
+
+<% end %>
+
+<%= paginate @web_links, :params => {:controller => 'widget/bulletins', :action => 'reload_web_links', :tag_id => @selected_tag.id}, :remote => true %>
\ No newline at end of file
diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/bulletins_and_web_links.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/bulletins_and_web_links.html.erb
new file mode 100644
index 000000000..0d1bc0472
--- /dev/null
+++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/bulletins_and_web_links.html.erb
@@ -0,0 +1,17 @@
+
+
+
+
+ <%= render 'bulletins' %>
+
+
+
+
+
+ <%= render 'web_links' %>
+
+
\ No newline at end of file
diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/bulletins_and_web_links.js.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/bulletins_and_web_links.js.erb
new file mode 100644
index 000000000..017bb1fad
--- /dev/null
+++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/bulletins_and_web_links.js.erb
@@ -0,0 +1,3 @@
+$('#bulletins_web_links_tags').html("<%= j render :partial => 'tag', :collection => @tags %>")
+$('#bulletins_web_links_bulletins').html("<%= j render 'bulletins' %>")
+$('#bulletins_web_links_web_links').html("<%= j render 'web_links' %>")
\ No newline at end of file
diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/reload_bulletins.js.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/reload_bulletins.js.erb
new file mode 100644
index 000000000..ec1197152
--- /dev/null
+++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/reload_bulletins.js.erb
@@ -0,0 +1 @@
+$('#bulletins_web_links_bulletins').html("<%= j render 'bulletins' %>")
\ No newline at end of file
diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/reload_web_links.js.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/reload_web_links.js.erb
new file mode 100644
index 000000000..d1abb2d75
--- /dev/null
+++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/reload_web_links.js.erb
@@ -0,0 +1 @@
+$('#bulletins_web_links_web_links').html("<%= j render 'web_links' %>")
\ No newline at end of file
diff --git a/vendor/built_in_modules/announcement/config/routes.rb b/vendor/built_in_modules/announcement/config/routes.rb
index 6e65320f2..4a25ad349 100644
--- a/vendor/built_in_modules/announcement/config/routes.rb
+++ b/vendor/built_in_modules/announcement/config/routes.rb
@@ -16,6 +16,9 @@ Rails.application.routes.draw do
namespace :widget do
match "bulletins" => "bulletins#index"
match "bulletins_list" => "bulletins#bulletins_list"
+ match "bulletins_and_web_links" => "bulletins#bulletins_and_web_links"
+ match "reload_bulletins" => "bulletins#reload_bulletins"
+ match "reload_web_links" => "bulletins#reload_web_links"
end
end
end
diff --git a/vendor/built_in_modules/web_resource/app/models/web_resource_tag.rb b/vendor/built_in_modules/web_resource/app/models/web_resource_tag.rb
index 2355cb5e9..bb97b3517 100644
--- a/vendor/built_in_modules/web_resource/app/models/web_resource_tag.rb
+++ b/vendor/built_in_modules/web_resource/app/models/web_resource_tag.rb
@@ -4,7 +4,7 @@ class WebResourceTag < Tag
def get_visible_links(sort = :name)
- self.web_links.where(:is_hidden => false).desc(:is_top, sort)
+ self.web_links.where(:is_hidden => false).desc(:is_top, sort)
end
end
\ No newline at end of file