Add list widgets for announcement, news and links with categories and tags

This commit is contained in:
Christophe Vilayphiou committed 2012-05-10 00:25:30 +08:00
1 parent 9a6b66c57d
commit 13587306bc
21 files changed
+199 -180

No files matched your search

@@ -9,20 +9,18 @@ class Panel::News::Widget::NewsBulletinsController < OrbitWidgetController
# GET /news_bulletins.xml
def index
# deadline
# @news_bulletin_categorys = NewsBulletinCategory.first;
# @news_bulletins = NewsBulletin.widget_datas(@news_bulletin_categorys.id).limit(9)
date_now = Time.now
if !params[:category_id].blank?
@news_bulletins = NewsBulletin.can_display.where(:news_bulletin_category_id => params[:category_id]).widget_datas.limit(9)
@news_bulletins = NewsBulletin.can_display.where(:news_bulletin_category_id => params[:category_id]).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page]).per(10)
@current_category = NewsBulletinCategory.from_id(params[:category_id]) rescue nil
elsif !params[:tag_id].blank?
@news_bulletins = NewsTag.find(params[:tag_id]).news_bulletins.can_display.widget_datas.limit(9) rescue nil
@tag = NewsTag.find(params[:tag_id]) rescue nil
@tag = NewsTag.where(key: params[:tag_id])[0] unless @tag
@news_bulletins = @tag.news_bulletins.can_display.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page]).per(10) rescue nil
else
@news_bulletins = NewsBulletin.can_display.widget_datas.limit(9)
@news_bulletins = NewsBulletin.can_display.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page]).per(10)
end
get_categorys
end
def news_bulletins_and_web_links
@@ -47,6 +45,18 @@ class Panel::News::Widget::NewsBulletinsController < OrbitWidgetController
@tags = NewsTag.all
get_categorys
end
def home_banner
if !params[:category_id].blank?
@news_bulletins = NewsBulletin.can_display.where(:news_bulletin_category_id => params[:category_id]).widget_datas.limit(9)
elsif !params[:tag_id].blank?
@news_bulletins = NewsTag.find(params[:tag_id]).news_bulletins.can_display.widget_datas.limit(9) rescue nil
else
@news_bulletins = NewsBulletin.can_display.widget_datas.limit(9)
end
get_categorys
end
protected
@@ -0,0 +1,28 @@
<% if @news_bulletins and !@news_bulletins.nil? %>
<h2 class="topic_title"><%= t('news.campus_news')%></h2>
<%#= link_to t('news.more'),panel_news_front_end_news_bulletins_path(), :class => "topic_note" %>
<div class="btn-group topic_note">
<a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
<%= t('news.more') %>
<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<% @news_bulletin_categorys.each do |category| %>
<li>
<%= link_to category.i18n_variable[I18n.locale], panel_news_front_end_news_bulletins_path(:category_id => category.id) %>
</li>
<% end %>
</ul>
</div>
<div class="topic_prev">previous page</div>
<div class="topic_next">next page</div>
<ul id="topic_list">
<% @news_bulletins.each do |post| %>
<li>
<div class="news_img"><%= image_tag(post.image.url, :size => "290x130") if post.image.file %></div>
<h3 class="h3 news_title"><%= link_to post.title[I18n.locale], panel_news_front_end_news_bulletin_path(post, :category_id => post.news_bulletin_category_id) %></h3>
<p class="news_wrap"><%= post.subtitle[I18n.locale].html_safe %></p>
</li>
<% end %>
</ul>
<% end %>
@@ -1,33 +1,33 @@
<% # encoding: utf-8 %>
<% if @news_bulletins and !@news_bulletins.nil? %>
<h2 class="topic_title"><%= t('news.campus_news')%></h2>
<%#= link_to t('news.more'),panel_news_front_end_news_bulletins_path(), :class => "topic_note" %>
<div class="btn-group topic_note">
<a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
<%= t('news.more') %>
<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<% @news_bulletin_categorys.each do |category| %>
<li>
<%= link_to category.i18n_variable[I18n.locale], panel_news_front_end_news_bulletins_path(:category_id => category.id) %>
</li>
<% end %>
</ul>
</div>
<div class="topic_prev">previous page</div>
<div class="topic_next">next page</div>
<ul id="topic_list">
<% @news_bulletins.each do |post| %>
<li>
<div class="news_img"><%= image_tag(post.image.url, :size => "290x130") if post.image.file %></div>
<h3 class="h3 news_title"><%= link_to post.title[I18n.locale], panel_news_front_end_news_bulletin_path(post, :category_id => post.news_bulletin_category_id) %></h3>
<p class="news_wrap"><%= post.subtitle[I18n.locale].html_safe %></p>
</li>
<% end %>
</ul>
<%= flash_messages %>
<% if @current_category %>
<h1 class="h1"><%= @current_category.i18n_variable[I18n.locale] + t('news.news_bulletin.list_lower') %></h1>
<% elsif @tag %>
<h1 class="h1"><%= @tag[I18n.locale] + t('news.news_bulletin.list_lower') %></h1>
<% else %>
<h1 class="h1"><%= t('news.list_news') %></h1>
<% end %>
<table class="table table-bordered">
<tbody>
<tr>
<th class="span2"><%= t('news.news_bulletin.image') %></th>
<th><%= t('news.news_bulletin.title') %></th>
<th class="span2 pagination-right"><%= t('news.news_bulletin.postdate') %></th>
</tr>
<% @news_bulletins.each do |post| %>
<tr>
<td><%= image_tag post.image %></td>
<td>
<%= link_to post.title[I18n.locale], panel_news_front_end_news_bulletin_path(post), :class => 'news_title' %>
<%= post.subtitle[I18n.locale].html_safe %>
</td>
<td><%= post.postdate %></td>
</tr>
<% end %>
</tbody>
</table>
<%= paginate @news_bulletins, :params => {:inner => 'false'} %>
+1
View File
@@ -43,6 +43,7 @@ Rails.application.routes.draw do
end
namespace :widget do
match "news_bulletins" => "news_bulletins#index"
match "home_banner" => "news_bulletins#home_banner"
match "news_bulletins_and_web_links" => "news_bulletins#news_bulletins_and_web_links"
match "reload_news_bulletins" => "news_bulletins#reload_news_bulletins"
match "reload_web_links" => "news_bulletins#reload_web_links"
+1 -1
View File
@@ -7,6 +7,6 @@
"update_info": "Some info",
"create_date": "11-11-2011",
"app_pages": ["news_bulletins"],
"widgets": ["news_bulletins", "news_bulletins_and_web_links"],
"widgets": ["news_bulletins", "news_bulletins_and_web_links", "home_banner"],
"enable_frontend": true
}