demo site widget

This commit is contained in:
unknown 2012-07-26 16:39:29 +08:00
parent f223e4bb1e
commit c0cac812c5
19 changed files with 312 additions and 593 deletions

View File

@ -0,0 +1,6 @@
var pic = $(".app-pic").length,w,h;
for(i=0; i<pic; i=i+1) {
w = $(".app-pic").eq(i).width();
h = $(".app-pic").eq(i).height();
$(".app-pic").eq(i).find('img').muImageResize({width: w, height: h});
}

View File

@ -0,0 +1,147 @@
(function( $ ) {
$.fn.muImageResize = function( params ) {
var _defaultSettings = {
width:300,
height:300,
wrap_fix:true // Let image display like in-line.
};
var _set = $.extend(_defaultSettings, params);
var isIE7 = $.browser.msie && (7 == ~~ $.browser.version);
//var anyDynamicSource = $(this).attr("src");
//$(this).attr("src",anyDynamicSource+ "?" + new Date().getTime());
// Just bind load event once per element.
return this.one('load', function() {
// Remove all attributes and CSS rules.
this.removeAttribute( "width" );
this.removeAttribute( "height" );
this.style.width = this.style.height = "";
var ow, oh;
//[workaround] - msie need get width early
if ($.browser.msie)
{
// Get original size for calcutation.
ow = this.width;
oh = this.height;
}
if (_set.wrap_fix) {
$(this).wrap(function(){
return '<div style="width:'+_set.width+'px; height:'+_set.height+'px; display:inline-block;" />';
});
}
if (!$.browser.msie)
{
// Get original size for calcutation.
ow = this.width;
oh = this.height;
}
// if cannot get width or height.
if (0==ow || 0==oh){
$(this).width(_set.width);
$(this).height(_set.height);
}else{
// Merge position settings
var sh_margin_type='';
// if original image's width > height.
if (ow > oh) {
p = oh / _set.height;
oh = _set.height;
ow = ow / p;
// original image width smaller than settings.
if (ow < _set.width){
// need to resize again,
// because new image size range must can cover settings' range, than we can crop it correctly.
p = ow / _set.width;
ow = _set.width;
oh = oh / p;
// the crop range would be in the center of new image size.
sh = (oh-_set.height)/2;
t=sh+'px';
r=_set.width+'px';
b=(_set.height+sh)+'px';
l='0px';
// need to be adjust top position latter.
sh_margin_type = 'margin-top';
// original image width bigger than settings.
}else{
// new image range can cover settings' range.
sh = (ow-_set.width)/2;
t='0px';
r=(_set.width+sh)+'px';
b=_set.height+'px';
l=sh+'px';
// need to be adjust left position latter.
sh_margin_type = 'margin-left';
}
// ref above, change width to height then do same things.
}else{
p = ow / _set.width;
ow = _set.width;
oh = oh / p;
if (oh < _set.height) {
p = oh / _set.height;
oh = _set.height;
ow = ow / p;
sh = (ow-_set.width)/2;
t='0px';
r=(_set.width+sh)+'px';
b=_set.height+'px';
l=sh+'px';
sh_margin_type = 'margin-left';
}else{
sh = (oh-_set.height)/2;
t=sh+'px';
r=_set.width+'px';
b=(_set.height+sh)+'px';
l='0px';
sh_margin_type = 'margin-top';
}
}
// Resize img.
$(this).width(ow);
$(this).height(oh);
// Crop img by set clip style.
$(this).css('clip','rect('+t+' '+r+' '+b+' '+l+')');
var osh = 0;
if('auto' != $(this).css(sh_margin_type)){
osh = parseInt($(this).css(sh_margin_type));
}
if (0 < sh) {sh*=-1;}
sh += osh;
$(this).css(sh_margin_type, sh+'px');
$(this).css('position','absolute');
}
$(this).fadeIn('slow');
})
.one( "error", function() {
//$(this).hide();
})
.each(function() {
$(this).hide();
// Trigger load event (for Gecko and MSIE)
if ( this.complete || $.browser.msie ) {
$( this ).trigger( "load" ).trigger( "error" );
}
});
};
})( jQuery );

View File

@ -24,6 +24,10 @@ $("#module_app_list select").live('change', function() {
$.getScript($(this).attr('rel') + '/' + $(this).val() + '/reload_widgets');
});
$("#widget_list select").live('change', function() {
$.getScript($(this).attr('rel') + '/' + $(this).val() + '/reload_widget_styles?module_app_id=' + $("#module_app_list select").val());
});
$("#tag_list select").live('change', function() {
$.getScript($(this).attr('rel') + '/' + $(this).val() + '/reload_r_tag_options');
});

View File

@ -26,6 +26,10 @@ class Admin::PagePartsController < ApplicationController
@module_app = @part.module_app ? @part.module_app : @module_apps[0]
@r_tag = @part.public_r_tag.blank? ? LIST[:public_r_tags][0] : @part.public_r_tag
@tag_objects = @r_tag.classify.constantize.all rescue nil
@widget_path = @part.widget_path ? @part.widget_path : @module_app.widgets.keys[0]
@widget_style = @module_app.widgets[@widget_path]
case @module_app.key
when 'announcement'
@categories = BulletinCategory.all
@ -69,8 +73,12 @@ class Admin::PagePartsController < ApplicationController
def reload_widgets
@module_app = ModuleApp.find(params[:id])
@widget_path = @module_app.widgets.keys[0]
@widget_style = @module_app.widgets[@widget_path]
case @module_app.key
when 'announcement'
# @widget_style = @module_app.widgets['index']
@categories = BulletinCategory.all
@tags = AnnouncementTag.all
when 'news'
@ -85,6 +93,16 @@ class Admin::PagePartsController < ApplicationController
end
end
def reload_widget_styles
@module_app = ModuleApp.find(params[:module_app_id])
@widget_style = @module_app.widgets[params[:id]]
respond_to do |format|
format.js {}
end
end
def reload_r_tag_options
@r_tag = (ModuleApp.find(params[:id]) rescue nil) || params[:id]
@tag_objects = @r_tag.classify.constantize.all rescue nil

View File

@ -16,6 +16,7 @@ class ModuleApp
field :app_pages ,type: Array
# field :widgets ,type: Array
field :widgets ,type: Hash
field :widget_fields ,type: Array
has_many :managers,as: :managing_app ,:class_name => "AppManager" #,:dependent => :destroy,:foreign_key => "managing_app_id",:inverse_of => :managing_app
has_many :sub_managers,as: :sub_managing_app ,:class_name => "AppManager"#, :dependent => :destroy,:foreign_key => "sub_managing_app_id",:inverse_of => :sub_managing_app

View File

@ -11,6 +11,7 @@ class PagePart
field :public_r_tag_option, :default => nil
field :widget_path
field :widget_style
field :widget_field , :type => Array
field :widget_data_count
has_one :i18n_variable, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy

View File

@ -18,6 +18,8 @@ class Site
field :school
field :department
mount_uploader :default_image, ImageUploader
has_one :title, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
has_one :footer, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
has_one :sub_menu, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy

View File

@ -30,6 +30,9 @@ class ImageUploader < CarrierWave::Uploader::Base
# def default_url
# "/images/fallback/" + [version_name, "default.png"].compact.join('_')
# end
def default_url
Site.first.default_image.url rescue "-sign-in-logo.png"
end
# Process files as they are uploaded:
# process :scale => [200, 300]

View File

@ -14,13 +14,13 @@
</span>
<span id='widget_list'>
<%= f.select :widget_path, @module_app.widgets.collect{|widget| [widget.humanize, widget]}, :selected => @part.widget_path %>
<%#= f.select :widget_path, @module_app.widgets.collect{|k,v| k}, :selected => @part.widget_path %>
<%#= f.select :widget_path, @module_app.widgets.collect{|widget| [widget.humanize, widget]}, :selected => @part.widget_path %>
<%= f.select :widget_path, @module_app.widgets.collect{|k,v| [k.humanize, k]}, {}, { :selected => @part.widget_path, :rel => admin_page_parts_path } %>
</span>
<span id='widget_style_list'>
<%= @module_app.widget_indexs.collect { |k,v| v } %>
<%= f.select :widget_style, @module_app.widget_styles.each, :selected => @part.widget_style, :include_blank => 'None' %>
<%= f.select :widget_style, @widget_style, :selected => @part.widget_style %>
<%#= render 'widget_styles' %>
</span>
:
@ -33,6 +33,19 @@
<%= render 'widget_tags' %>
</span>
<span id='widget_field'>
<%= f.label :widget_field %>
<% @module_app.widget_fields.each_with_index do |widget_field, i| %>
<%= i+1 %>
<%= select_tag "page_part[widget_field][]", options_for_select(@module_app.widget_fields.collect{|widget_field| [widget_field.humanize, widget_field]}, (@part.widget_field ? @part.widget_field[i] : nil) ), :include_blank => true %> <br />
<% end %>
<%#= select_tag "page_part[widget_field][]", options_for_select(@module_app.widget_fields.collect{|widget_field| [widget_field.humanize, widget_field]}, @part.widget_field.collect{|widget_field| widget_field}), {:multiple => :multiple, :size => 6} %>
</span>
<div id="widget_data_count">
<%= f.label :widget_data_count %>
<%= f.text_field :widget_data_count %>

View File

@ -0,0 +1 @@
<%= select 'page_part', 'widget_style', @widget_style, :selected => (@part ? @part[:widget_style] : nil), :include_blank => true if @widget_style && @widget_style.size > 0 %>

View File

@ -0,0 +1 @@
$('#widget_style_list select').html("<%= j options_for_select(@module_app.widgets[params[:id]]) %>")

View File

@ -1,3 +1,4 @@
$('#widget_list select').html("<%= j options_for_select(@module_app.widgets.collect{|k,v| k}) %>")
$('#widget_style_list select').html("<%= j options_for_select(@module_app.widgets[@widget_path]) %>")
$('#widget_category').html("<%= j render 'widget_categories' %>")
$('#widget_tag').html("<%= j render 'widget_tags' %>")

View File

@ -1,3 +1,5 @@
<% # encoding: utf-8 %>
<% content_for :side_bar do %>
<%= render 'side_bar' %>
<% end %>
@ -70,6 +72,24 @@
<% end %>
</div>
</div>
<div class="control-group">
<label class="control-label"><%= t 'admin.default_image' %></label>
<div class="controls">
<%= f.file_field :default_image, :id => "input-upload", :class => 'upload', :onchange => "document.getElementById('fu').innerHTML = this.form.fu.value = this.value;" %>
<span id='fu' class="file-name"></span>
<!--請程式務必將圖片尺寸加入到行內裡-->
<% if @site.default_image %>
<%= image_tag( @site.default_image, :size=>"120x120") rescue ''%>
<% else %>
<img class="pull-left upload-picture" src="/assets/default-img.png" />
<% end %>
<br>
<% if @site.default_image.file %>
<%= f.check_box :remove_default_image %>
<%= t('刪除已上傳檔案') %>
<% end %>
</div>
</div>
<% end %>
<% end %>
</div>

View File

@ -97,6 +97,7 @@ Orbit::Application.routes.draw do
resources :page_parts do
member do
get 'reload_widgets'
get 'reload_widget_styles'
get 'reload_r_tag_options'
end
end

View File

@ -187,7 +187,7 @@ module ParserCommon
ret << part.i18n_variable[I18n.locale] rescue ''
when 'module_widget'
url = "/panel/#{part.module_app.key}/widget/#{part.widget_path}?inner=true"
options = "&category_id=#{!part[:category].blank? ? part[:category].blank? : category}&tag_id=#{!part[:tag].blank? ? part[:tag] : tag}&page=#{params[:page]}&part_title=#{Rack::Utils.escape(part_title).gsub("+", "%20") rescue nil}&widget_style=#{part.widget_style}&widget_data_count=#{part[:widget_data_count]}"
options = "&category_id=#{!part[:category].blank? ? part[:category] : category}&tag_id=#{!part[:tag].blank? ? part[:tag] : tag}&page=#{params[:page]}&part_title=#{Rack::Utils.escape(part_title).gsub("+", "%20") rescue nil}&part_id=#{part.id}"
ret << "<div class='dymanic_load' path='#{url + options}'></div>"
when 'public_r_tag'
ret << "<r:#{part.public_r_tag} id='#{part.public_r_tag_object_id}'/>"

View File

@ -8,8 +8,9 @@
"create_date": "11-11-2011",
"app_pages": ["bulletins"],
"widgets": {
"index":["1","2","3","4","5","6","7","8","9",,"10","11","12","13","14","15","16","17","18","19"],
"index":["1","2"],
"bulletins_and_web_links":[]
},
"widget_fields":["title","subtitle","date","image","status"],
"enable_frontend": true
}

View File

@ -10,220 +10,30 @@ class Panel::Announcement::Widget::BulletinsController < OrbitWidgetController
def index
if params[:widget_data_count]
@page_num = params[:widget_data_count];
@part = PagePart.find(params[:part_id])
if @part.widget_data_count
@page_num = @part.widget_data_count
else
@page_num = 4;
@page_num = 4
end
if @part.widget_field
@widget_fields = @part.widget_field
else
@widget_fields = []
end
@title = params[:part_title]
@widget_style = params[:widget_style]
@widget_style = @part.widget_style
@category_id = @part.category
date_now = Time.now
if !params[:category_id].blank?
@bulletins = Bulletin.can_display.where(: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(5)
@current_category = BulletinCategory.from_id(params[:category_id]) rescue nil
elsif !params[:tag_id].blank?
@tag = AnnouncementTag.find(params[:tag_id]) rescue nil
@tag = AnnouncementTag.where(key: params[:tag_id])[0] unless @tag
@bulletins = @tag.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(@page_num)
else
@bulletins = Bulletin.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(@page_num)
end
get_categorys
end
def bulletins_list_2
if params[:widget_data_count]
@page_num = params[:widget_data_count];
else
@page_num = 4;
end
@title = params[:part_title]
date_now = Time.now
if !params[:category_id].blank?
@bulletins = Bulletin.can_display.where(: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(5)
@current_category = BulletinCategory.from_id(params[:category_id]) rescue nil
elsif !params[:tag_id].blank?
@tag = AnnouncementTag.find(params[:tag_id]) rescue nil
@tag = AnnouncementTag.where(key: params[:tag_id])[0] unless @tag
@bulletins = @tag.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(@page_num)
else
@bulletins = Bulletin.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(@page_num)
end
get_categorys
end
def bulletins_list_3
if params[:widget_data_count]
@page_num = params[:widget_data_count];
else
@page_num = 4;
end
@title = params[:part_title]
date_now = Time.now
if !params[:category_id].blank?
@bulletins = Bulletin.can_display.where(: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(5)
@current_category = BulletinCategory.from_id(params[:category_id]) rescue nil
elsif !params[:tag_id].blank?
@tag = AnnouncementTag.find(params[:tag_id]) rescue nil
@tag = AnnouncementTag.where(key: params[:tag_id])[0] unless @tag
@bulletins = @tag.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(@page_num)
else
@bulletins = Bulletin.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(@page_num)
end
get_categorys
end
def bulletins_list_4
if params[:widget_data_count]
@page_num = params[:widget_data_count];
else
@page_num = 4;
end
@title = params[:part_title]
date_now = Time.now
if !params[:category_id].blank?
@bulletins = Bulletin.can_display.where(: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(5)
@current_category = BulletinCategory.from_id(params[:category_id]) rescue nil
elsif !params[:tag_id].blank?
@tag = AnnouncementTag.find(params[:tag_id]) rescue nil
@tag = AnnouncementTag.where(key: params[:tag_id])[0] unless @tag
@bulletins = @tag.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(@page_num)
else
@bulletins = Bulletin.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(@page_num)
end
get_categorys
end
def bulletins_list_5
if params[:widget_data_count]
@page_num = params[:widget_data_count];
else
@page_num = 4;
end
@title = params[:part_title]
date_now = Time.now
if !params[:category_id].blank?
@bulletins = Bulletin.can_display.where(: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(5)
@current_category = BulletinCategory.from_id(params[:category_id]) rescue nil
elsif !params[:tag_id].blank?
@tag = AnnouncementTag.find(params[:tag_id]) rescue nil
@tag = AnnouncementTag.where(key: params[:tag_id])[0] unless @tag
@bulletins = @tag.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(@page_num)
else
@bulletins = Bulletin.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(@page_num)
end
get_categorys
end
def bulletins_list_6
if params[:widget_data_count]
@page_num = params[:widget_data_count];
else
@page_num = 4;
end
@title = params[:part_title]
date_now = Time.now
if !params[:category_id].blank?
@bulletins = Bulletin.can_display.where(: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(5)
@current_category = BulletinCategory.from_id(params[:category_id]) rescue nil
elsif !params[:tag_id].blank?
@tag = AnnouncementTag.find(params[:tag_id]) rescue nil
@tag = AnnouncementTag.where(key: params[:tag_id])[0] unless @tag
@bulletins = @tag.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(@page_num)
else
@bulletins = Bulletin.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(@page_num)
end
get_categorys
end
def bulletins_list_7
if params[:widget_data_count]
@page_num = params[:widget_data_count];
else
@page_num = 4;
end
@title = params[:part_title]
date_now = Time.now
if !params[:category_id].blank?
@bulletins = Bulletin.can_display.where(: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(5)
@current_category = BulletinCategory.from_id(params[:category_id]) rescue nil
elsif !params[:tag_id].blank?
@tag = AnnouncementTag.find(params[:tag_id]) rescue nil
@tag = AnnouncementTag.where(key: params[:tag_id])[0] unless @tag
@bulletins = @tag.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(@page_num)
else
@bulletins = Bulletin.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(@page_num)
end
get_categorys
end
def bulletins_list_8
if params[:widget_data_count]
@page_num = params[:widget_data_count];
else
@page_num = 4;
end
@title = params[:part_title]
date_now = Time.now
if !params[:category_id].blank?
@bulletins = Bulletin.can_display.where(: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(5)
@current_category = BulletinCategory.from_id(params[:category_id]) rescue nil
elsif !params[:tag_id].blank?
@tag = AnnouncementTag.find(params[:tag_id]) rescue nil
@tag = AnnouncementTag.where(key: params[:tag_id])[0] unless @tag
@bulletins = @tag.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(@page_num)
else
@bulletins = Bulletin.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(@page_num)
end
get_categorys
end
def bulletins_list_9
if params[:widget_data_count]
@page_num = params[:widget_data_count];
else
@page_num = 4;
end
@title = params[:part_title]
date_now = Time.now
if !params[:category_id].blank?
@bulletins = Bulletin.can_display.where(: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(5)
@current_category = BulletinCategory.from_id(params[:category_id]) rescue nil
if !@category_id.blank?
@bulletins = Bulletin.can_display.where(:bulletin_category_id => @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(@page_num)
@current_category = BulletinCategory.from_id(@category_id) rescue nil
elsif !params[:tag_id].blank?
@tag = AnnouncementTag.find(params[:tag_id]) rescue nil
@tag = AnnouncementTag.where(key: params[:tag_id])[0] unless @tag

View File

@ -5,403 +5,88 @@
<% if @widget_style == '1' %>
<p> ========== 1狀態(置頂 熱門等) 日期 標題 ========== </p>
<p> ========== 1 ========== </p>
<div class="news news1">
<ul class="newslist">
<% @bulletins.each do |post| %>
<% @bulletins.each_with_index do |post, i| %>
<li <%= ( (i+1) % 2 ) == 0 ? "class='odd'" : '' %> >
<% @widget_fields.each do |wf| %>
<% if wf == 'title' %>
<%= link_to post.title[I18n.locale], panel_announcement_front_end_bulletin_path(post, :category_id => post.bulletin_category_id), :class=>"newstitle" %>
<% elsif wf == 'date' %>
<span class="date"><%= display_date(post.postdate) %></span>
<% elsif wf == 'status' %>
<% if post.is_top? %>
<span class="top"><%= t(:top) %></span>
<% end %>
<% if post.is_hot? %>
<span class="hot"><%= t(:hot) %></span>
<% end %>
<% elsif wf == 'subtitle' %>
<span class="newsintro"><%= post.subtitle[I18n.locale].html_safe %></span>
<% elsif wf == 'image' %>
<div class="newsimg app-pic"><%#= image_tag(post.image.url, :size => "90x90") if post.image.file %><%= image_tag(post.image.url) %></div>
<% end %>
<li>
<% if post.is_top? %>
<span class="top"><%= t(:top) %></span>
<% end %>
<% if post.is_hot? %>
<span class="hot"><%= t(:hot) %></span>
<% end %>
<span class="date"><%= display_date(post.postdate) %></span>
<%= link_to post.title[I18n.locale], panel_announcement_front_end_bulletin_path(post, :category_id => post.bulletin_category_id), :class=>"newstitle" %>
</li>
<% end %>
</ul>
<div class="more">more</div>
<% if !@category_id.blank? %>
<div class="more"><%= link_to t('more'), panel_announcement_front_end_bulletins_path( :category_id => @category_id ) %></div>
<% else %>
<div class="more"><%= link_to t('more'), panel_announcement_front_end_bulletins_path() %></div>
<% end %>
</div>
<% elsif @widget_style == '2' %>
<p> ========== 2日期 標題 ========== </p>
<p> ========== 2 ========== </p>
<div class="news news2">
<div class="newsimg app-pic"><%= image_tag(@bulletins.first.image.url) %></div>
<ul class="newslist">
<% @bulletins.each do |post| %>
<li>
<span class="date"><%= display_date(post.postdate) %></span>
<%= link_to post.title[I18n.locale], panel_announcement_front_end_bulletin_path(post, :category_id => post.bulletin_category_id), :class=>"newstitle" %>
<% @bulletins.each_with_index do |post, i| %>
<li <%= ( (i+1) % 2 ) == 0 ? "class='odd'" : '' %> >
<% @widget_fields.each do |wf| %>
<% if wf == 'title' %>
<%= link_to post.title[I18n.locale], panel_announcement_front_end_bulletin_path(post, :category_id => post.bulletin_category_id), :class=>"newstitle" %>
<% elsif wf == 'date' %>
<span class="date"><%= display_date(post.postdate) %></span>
<% elsif wf == 'status' %>
<% if post.is_top? %>
<span class="top"><%= t(:top) %></span>
<% end %>
<% if post.is_hot? %>
<span class="hot"><%= t(:hot) %></span>
<% end %>
<% elsif wf == 'subtitle' %>
<span class="newsintro"><%= post.subtitle[I18n.locale].html_safe %></span>
<% end %>
<% end %>
</li>
<% end %>
</ul>
<div class="more">more</div>
<% if !@category_id.blank? %>
<div class="more"><%= link_to t('more'), panel_announcement_front_end_bulletins_path( :category_id => @category_id ) %></div>
<% else %>
<div class="more"><%= link_to t('more'), panel_announcement_front_end_bulletins_path() %></div>
<% end %>
</div>
<% elsif @widget_style == '3' %>
<p> ========== 3狀態(置頂 熱門等) 標題 ========== </p>
<div class="news news3">
<ul class="newslist">
<% @bulletins.each do |post| %>
<li>
<% if post.is_top? %>
<span class="top"><%= t(:top) %></span>
<% end %>
<% if post.is_hot? %>
<span class="hot"><%= t(:hot) %></span>
<% end %>
<%= link_to post.title[I18n.locale], panel_announcement_front_end_bulletin_path(post, :category_id => post.bulletin_category_id), :class=>"newstitle" %>
</li>
<% end %>
</ul>
<div class="more">more</div>
</div>
<% elsif @widget_style == '4' %>
<p> ========== 4狀態(置頂 熱門等) 類別 日期 標題 ========== </p>
<div class="news news4">
<ul class="newslist">
<% @bulletins.each do |post| %>
<li>
<% if post.is_top? %>
<span class="top"><%= t(:top) %></span>
<% end %>
<% if post.is_hot? %>
<span class="hot"><%= t(:hot) %></span>
<% end %>
<span class="date"><%= display_date(post.postdate) %></span>
<span class="category"><%= post.bulletin_category.i18n_variable[I18n.locale] rescue nil %></span>
<%= link_to post.title[I18n.locale], panel_announcement_front_end_bulletin_path(post, :category_id => post.bulletin_category_id), :class=>"newstitle" %>
</li>
<% end %>
</ul>
<div class="more">more</div>
</div>
<% elsif @widget_style == '5' %>
<p> ========== 5日期 類別 標題 ========== </p>
<div class="news news5">
<ul class="newslist">
<% @bulletins.each do |post| %>
<li>
<span class="date"><%= display_date(post.postdate) %></span>
<span class="category"><%= post.bulletin_category.i18n_variable[I18n.locale] rescue nil %></span>
<%= link_to post.title[I18n.locale], panel_announcement_front_end_bulletin_path(post, :category_id => post.bulletin_category_id), :class=>"newstitle" %>
</li>
<% end %>
</ul>
<div class="more">more</div>
</div>
<% elsif @widget_style == '6' %>
<p> ========== 6狀態(置頂 熱門等) 類別 標題 ========== </p>
<div class="news news6">
<ul class="newslist">
<% @bulletins.each do |post| %>
<li>
<% if post.is_top? %>
<span class="top"><%= t(:top) %></span>
<% end %>
<% if post.is_hot? %>
<span class="hot"><%= t(:hot) %></span>
<% end %>
<span class="category"><%= post.bulletin_category.i18n_variable[I18n.locale] rescue nil %></span>
<%= link_to post.title[I18n.locale], panel_announcement_front_end_bulletin_path(post, :category_id => post.bulletin_category_id), :class=>"newstitle" %>
</li>
<% end %>
</ul>
<div class="more">more</div>
</div>
<% elsif @widget_style == '7' %>
<p> ========== 7上架日期 標題 契子 ========== </p>
<div class="news news7">
<ul class="newslist">
<% @bulletins.each do |post| %>
<li>
<span class="date"><%= display_date(post.postdate) %></span>
<%= link_to post.title[I18n.locale], panel_announcement_front_end_bulletin_path(post, :category_id => post.bulletin_category_id), :class=>"newstitle" %>
<span class="newsintro"><%= post.subtitle[I18n.locale].html_safe %></span>
</li>
<% end %>
</ul>
<div class="more">more</div>
</div>
<% elsif @widget_style == '8' %>
<p> ========== 8上架日期 標題 契子 狀態 ========== </p>
<div class="news news8">
<ul class="newslist">
<% @bulletins.each do |post| %>
<li>
<% if post.is_top? %>
<span class="top"><%= t(:top) %></span>
<% end %>
<% if post.is_hot? %>
<span class="hot"><%= t(:hot) %></span>
<% end %>
<span class="date"><%= display_date(post.postdate) %></span>
<%= link_to post.title[I18n.locale], panel_announcement_front_end_bulletin_path(post, :category_id => post.bulletin_category_id), :class=>"newstitle" %>
<span class="newsintro"><%= post.subtitle[I18n.locale].html_safe %></span>
</li>
<% end %>
</ul>
<div class="more">more</div>
</div>
<% elsif @widget_style == '9' %>
<p> ========== 9上架日期 標題 瀏覽人次 ========== </p>
<div class="news news9">
<ul class="newslist">
<% @bulletins.each do |post| %>
<li>
<span class="date"><%= display_date(post.postdate) %></span>
<%= link_to post.title[I18n.locale], panel_announcement_front_end_bulletin_path(post, :category_id => post.bulletin_category_id), :class=>"newstitle" %>
<span class="newscounter"><%= post.view_count %></span>
</li>
<% end %>
</ul>
<div class="more">more</div>
</div>
<% elsif @widget_style == '10' %>
<p> ========== 10圖 標題 ========== </p>
<div class="news news10">
<ul class="newslist">
<% @bulletins.each do |post| %>
<li>
<div class="newsimg"><%= image_tag(post.image.url, :size => "90x90") if post.image.file %></div>
<%= link_to post.title[I18n.locale], panel_announcement_front_end_bulletin_path(post, :category_id => post.bulletin_category_id), :class=>"newstitle" %>
</li>
<% end %>
</ul>
<div class="more">more</div>
</div>
<% elsif @widget_style == '11' %>
<p> ========== 11圖 日期 標題 ========== </p>
<div class="news news11">
<ul class="newslist">
<% @bulletins.each do |post| %>
<li>
<div class="newsimg"><%= image_tag(post.image.url, :size => "90x90") if post.image.file %></div>
<span class="date"><%= display_date(post.postdate) %></span>
<%= link_to post.title[I18n.locale], panel_announcement_front_end_bulletin_path(post, :category_id => post.bulletin_category_id), :class=>"newstitle" %>
</li>
<% end %>
</ul>
<div class="more">more</div>
</div>
<% elsif @widget_style == '12' %>
<p> ========== 12圖 標題 狀態 ========== </p>
<div class="news news12">
<ul class="newslist">
<% @bulletins.each do |post| %>
<li>
<div class="newsimg"><%= image_tag(post.image.url, :size => "90x90") if post.image.file %></div>
<%= link_to post.title[I18n.locale], panel_announcement_front_end_bulletin_path(post, :category_id => post.bulletin_category_id), :class=>"newstitle" %>
<% if post.is_top? %>
<span class="top"><%= t(:top) %></span>
<% end %>
<% if post.is_hot? %>
<span class="hot"><%= t(:hot) %></span>
<% end %>
</li>
<% end %>
</ul>
<div class="more">more</div>
</div>
<% elsif @widget_style == '13' %>
<p> ========== 13圖 日期 標題 狀態 ========== </p>
<div class="news news13">
<ul class="newslist">
<% @bulletins.each do |post| %>
<li>
<div class="newsimg"><%= image_tag(post.image.url, :size => "90x90") if post.image.file %></div>
<% if post.is_top? %>
<span class="top"><%= t(:top) %></span>
<% end %>
<% if post.is_hot? %>
<span class="hot"><%= t(:hot) %></span>
<% end %>
<span class="date"><%= display_date(post.postdate) %></span>
<%= link_to post.title[I18n.locale], panel_announcement_front_end_bulletin_path(post, :category_id => post.bulletin_category_id), :class=>"newstitle" %>
</li>
<% end %>
</ul>
<div class="more">more</div>
</div>
<% elsif @widget_style == '14' %>
<p> ========== 14圖 標題 契子 ========== </p>
<div class="news news14">
<ul class="newslist">
<% @bulletins.each do |post| %>
<li>
<div class="newsimg"><%= image_tag(post.image.url, :size => "90x90") if post.image.file %></div>
<%= link_to post.title[I18n.locale], panel_announcement_front_end_bulletin_path(post, :category_id => post.bulletin_category_id), :class=>"newstitle" %>
<span class="newsintro"><%= post.subtitle[I18n.locale].html_safe %></span>
</li>
<% end %>
</ul>
<div class="more">more</div>
</div>
<% elsif @widget_style == '15' %>
<p> ========== 15圖 標題 契子 狀態 ========== </p>
<div class="news news15">
<ul class="newslist">
<% @bulletins.each do |post| %>
<li>
<div class="newsimg"><%= image_tag(post.image.url, :size => "90x90") if post.image.file %></div>
<%= link_to post.title[I18n.locale], panel_announcement_front_end_bulletin_path(post, :category_id => post.bulletin_category_id), :class=>"newstitle" %>
<% if post.is_top? %>
<span class="top"><%= t(:top) %></span>
<% end %>
<% if post.is_hot? %>
<span class="hot"><%= t(:hot) %></span>
<% end %>
<span class="newsintro"><%= post.subtitle[I18n.locale].html_safe %></span>
</li>
<% end %>
</ul>
<div class="more">more</div>
</div>
<% elsif @widget_style == '16' %>
<p> ========== 16 圖 日期 標題 契子 ========== </p>
<div class="news news16">
<ul class="newslist">
<% @bulletins.each do |post| %>
<li>
<div class="newsimg"><%= image_tag(post.image.url, :size => "90x90") if post.image.file %></div>
<span class="date"><%= display_date(post.postdate) %></span>
<%= link_to post.title[I18n.locale], panel_announcement_front_end_bulletin_path(post, :category_id => post.bulletin_category_id), :class=>"newstitle" %>
<span class="newsintro"><%= post.subtitle[I18n.locale].html_safe %></span>
</li>
<% end %>
</ul>
<div class="more">more</div>
</div>
<% elsif @widget_style == '17' %>
<p> ========== 17圖 日期 標題 契子 狀態 ========== </p>
<div class="news news17">
<ul class="newslist">
<% @bulletins.each do |post| %>
<li>
<div class="newsimg"><%= image_tag(post.image.url, :size => "90x90") if post.image.file %></div>
<span class="date"><%= display_date(post.postdate) %></span>
<%= link_to post.title[I18n.locale], panel_announcement_front_end_bulletin_path(post, :category_id => post.bulletin_category_id), :class=>"newstitle" %>
<% if post.is_top? %>
<span class="top"><%= t(:top) %></span>
<% end %>
<% if post.is_hot? %>
<span class="hot"><%= t(:hot) %></span>
<% end %>
<span class="newsintro"><%= post.subtitle[I18n.locale].html_safe %></span>
</li>
<% end %>
</ul>
<div class="more">more</div>
</div>
<% elsif @widget_style == '18' %>
<p> ========== 18圖一張 日期 多標題 ========== </p>
<div class="news news18">
<ul class="newslist">
<div class="newsbanner"><img src="/assets/default.jpg" alt="default" /></div>
<% @bulletins.each do |post| %>
<li>
<span class="date"><%= display_date(post.postdate) %></span>
<%= link_to post.title[I18n.locale], panel_announcement_front_end_bulletin_path(post, :category_id => post.bulletin_category_id), :class=>"newstitle" %>
</li>
<% end %>
</ul>
<div class="more">more</div>
</div>
<% elsif @widget_style == '19' %>
<p> ========== 19圖一張 日期 多標題 ========== </p>
<div class="news news19">
<ul class="newslist">
<div class="newsbanner"><img src="/assets/default.jpg" alt="default" /></div>
<% @bulletins.each do |post| %>
<li>
<span class="date"><%= display_date(post.postdate) %></span>
<%= link_to post.title[I18n.locale], panel_announcement_front_end_bulletin_path(post, :category_id => post.bulletin_category_id), :class=>"newstitle" %>
<% if post.is_top? %>
<span class="top"><%= t(:top) %></span>
<% end %>
<% if post.is_hot? %>
<span class="hot"><%= t(:hot) %></span>
<% end %>
</li>
<% end %>
</ul>
<div class="more">more</div>
</div>
<% end %>

View File

@ -1,3 +1,7 @@
<script type='text/javascript' src='/assets/jquery.mu.image.resize.js'></script>
<script type='text/javascript' src='/assets/jquery.mu.image.resize.degsin.js'></script>
<div id="bulletin_widget">
<%= render 'index' %>
</div>