Widget for announcement and web_link with ajax reload and pagination

This commit is contained in:
Christophe Vilayphiou committed 2012-02-20 08:34:36 +08:00
1 parent 2989366fa4
commit 7d57b50e46
12 files changed
+67 -2

No files matched your search

+1 -1
View File
@@ -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
}
@@ -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
@@ -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
@@ -0,0 +1,7 @@
<% @bulletins.each do |bulletin| %>
<li>
<%= bulletin.title[I18n.locale] %>
</li>
<% end %>
<%= paginate @bulletins, :params => {:controller => 'widget/bulletins', :action => 'reload_bulletins', :tag_id => @selected_tag.id}, :remote => true %>
@@ -0,0 +1,4 @@
<li>
<%= link_to tag[I18n.locale], panel_announcement_widget_bulletins_and_web_links_path(:id => tag.id), :remote => true %>
<%= '-' if tag.eql?(@selected_tag) %>
</li>
@@ -0,0 +1,7 @@
<% @web_links.each do |web_link| %>
<li>
<%= web_link.name[I18n.locale] %>
</li>
<% end %>
<%= paginate @web_links, :params => {:controller => 'widget/bulletins', :action => 'reload_web_links', :tag_id => @selected_tag.id}, :remote => true %>
@@ -0,0 +1,17 @@
<div>
<ul id='bulletins_web_links_tags'>
<%= render :partial => 'tag', :collection => @tags %>
</ul>
</div>
<div>
<ul id='bulletins_web_links_bulletins'>
<%= render 'bulletins' %>
</ul>
</div>
<div>
<ul id='bulletins_web_links_web_links'>
<%= render 'web_links' %>
</ul>
</div>
@@ -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' %>")
@@ -0,0 +1 @@
$('#bulletins_web_links_bulletins').html("<%= j render 'bulletins' %>")
@@ -0,0 +1 @@
$('#bulletins_web_links_web_links').html("<%= j render 'web_links' %>")
+3
View File
@@ -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
@@ -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