Compare commits

...

7 Commits
master ... ntue

Author SHA1 Message Date
spen 41fc11e56a update default_widget field i18n 2014-05-12 11:19:08 +08:00
spen 528912ae3e fix widget reload_web_links 2014-05-08 14:13:21 +08:00
spen 543ec3a420 add backend form append note and fix show image 2014-05-08 10:45:12 +08:00
rulingcom 8f7df1cc35 fix search result page 2014-04-10 11:02:00 +08:00
spen 24ef9c848c Fix approval 2014-03-21 14:42:06 +08:00
spen d9dd08e678 add announcement widget field 2014-03-10 18:20:51 +08:00
Manson Wang bcb6a46a74 ntue 2014-02-19 11:14:25 +08:00
13 changed files with 452 additions and 30 deletions

View File

@ -1,3 +1,4 @@
# encoding: utf-8
class Panel::Announcement::BackEnd::ApprovalsController < OrbitBackendController class Panel::Announcement::BackEnd::ApprovalsController < OrbitBackendController
before_filter :authenticate_user! before_filter :authenticate_user!
before_filter :is_admin? before_filter :is_admin?
@ -6,6 +7,7 @@ class Panel::Announcement::BackEnd::ApprovalsController < OrbitBackendControlle
def preview_and_approve def preview_and_approve
email_group_data
@bulletin = Bulletin.find params[:bulletin_id] @bulletin = Bulletin.find params[:bulletin_id]
end end
@ -15,6 +17,14 @@ class Panel::Announcement::BackEnd::ApprovalsController < OrbitBackendControlle
@bulletin.proc_check(params[:bulletin][:is_checked],params[:bulletin][:not_checked_reason]) @bulletin.proc_check(params[:bulletin][:is_checked],params[:bulletin][:not_checked_reason])
@bulletin.de_pending @bulletin.de_pending
if @bulletin.save if @bulletin.save
if @bulletin.email_sent == true && @bulletin.is_checked == true && !@bulletin.is_rejected
send_email_data(@bulletin)
@bulletin.email_sent = false
@bulletin.save
end
notice = t('announcement.approve_bulletin_success') notice = t('announcement.approve_bulletin_success')
else else
notice = t('announcement.approve_bulletin_fail') notice = t('announcement.approve_bulletin_fail')
@ -62,4 +72,67 @@ class Panel::Announcement::BackEnd::ApprovalsController < OrbitBackendControlle
object_auth object_auth
end end
def send_email_data(bulletin)
@site = Site.first
@user = User.find(bulletin.create_user_id)
@host = request.host_with_port
email_group_data
@group_mail = Array.new
bulletin.email_group.each do |egroup|
if @email_group_data.include?(egroup) and (egroup == 'e_0' or egroup == 'e_1' or egroup == 'e_2' or egroup == 'e_3')
@group_mail << @email_group_data[egroup]["email"]
elsif @email_group_data.include?(egroup) and egroup == 'e_4'
@group_mail << bulletin.other_mailaddress
end
end
if !@group_mail.join.blank?
@mail_content = {
"host" => @host,
"site_title" => @site.title,
"title" => bulletin.title,
"template" => 'announcement_mailer/cron_mail',
"url" => "http://#{@host}#{panel_announcement_front_end_bulletin_path(bulletin, :category_id => bulletin.category.id)}"
}
@mail_cron = {
:mail_from_app => 'announcement',
:mail_from => @user.email,
:mail_reply_to => @user.email,
:mail_subject => "#{t("announcement.mail_subject",:site_title => @site.title)}#{bulletin.title}",
:mail_to => @group_mail.join(','),
:mail_content => @mail_content ,
# :mail_sentdate => bulletin.email_sentdate,
:mail_sentdate => DateTime.now,
:create_user_id => bulletin.create_user_id,
:update_user_id => bulletin.create_user_id
}
@mail_cron = MailCron.new(@mail_cron)
@mail_cron.save
MailCron.send_mail_now(@mail_cron.id)
end
end
def email_group_data
@email_group_data = Bulletin.email_group_data
end
end end

View File

@ -1,3 +1,5 @@
# encoding: utf-8
class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController
# include OrbitControllerLib::DivisionForDisable # include OrbitControllerLib::DivisionForDisable
@ -19,6 +21,8 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController
def index def index
email_group_data
@tags = get_tags @tags = get_tags
@categories = get_categories_for_index @categories = get_categories_for_index
@statuses = get_statuses @statuses = get_statuses
@ -47,6 +51,9 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController
# GET /bulletins/new # GET /bulletins/new
# GET /bulletins/new.xml # GET /bulletins/new.xml
def new def new
email_group_data
if(session[:in_validate_object].blank?) if(session[:in_validate_object].blank?)
@bulletin = Bulletin.new(:postdate => DateTime.now) @bulletin = Bulletin.new(:postdate => DateTime.now)
else else
@ -64,11 +71,14 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController
# GET /bulletins/1/edit # GET /bulletins/1/edit
def edit def edit
email_group_data
@bulletin = Bulletin.find(params[:id]) @bulletin = Bulletin.find(params[:id])
@tags = get_tags @tags = get_tags
is_authorized_sub_manager = @bulletin.category.auth_sub_manager.authorized_user_ids rescue nil is_authorized_sub_manager = @bulletin.category.auth_sub_manager.authorized_user_ids rescue nil
if !(is_manager? || is_admin? || is_authorized_sub_manager.include?(current_user.id)) if !(is_manager? || is_admin? || (is_authorized_sub_manager.include?(current_user.id) and @bulletin.create_user_id == current_user.id))
redirect_to :action => :index redirect_to :action => :index
else else
# @summary_variable = @bulletin.summary_variable # @summary_variable = @bulletin.summary_variable
@ -82,21 +92,31 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController
# POST /bulletins # POST /bulletins
# POST /bulletins.xml # POST /bulletins.xml
def create def create
email_group_data
@tags = get_tags @tags = get_tags
@bulletin = Bulletin.new(params[:bulletin]) @bulletin = Bulletin.new(params[:bulletin])
@bulletin.deadline = nil if (@bulletin.deadline < @bulletin.postdate rescue nil) @bulletin.deadline = nil if (@bulletin.deadline < @bulletin.postdate rescue nil)
@bulletin.create_user_id = current_user.id @bulletin.create_user_id = current_user.id
@bulletin.update_user_id = current_user.id @bulletin.update_user_id = current_user.id
# if(is_manager? || is_admin?) if(is_manager? || is_admin?)
# @bulletin.is_checked = true @bulletin.is_checked = true
# @bulletin.is_rejected = false @bulletin.is_rejected = false
# @bulletin.de_pending @bulletin.de_pending
# end end
respond_to do |format| respond_to do |format|
if @bulletin.save if @bulletin.save
if @bulletin.email_sent == true && @bulletin.is_checked == true && !@bulletin.is_rejected
send_email_data(@bulletin)
@bulletin.email_sent = false
@bulletin.save
end
format.html { redirect_to(panel_announcement_back_end_bulletins_url, :notice => t('announcement.create_bulletin_success')) } format.html { redirect_to(panel_announcement_back_end_bulletins_url, :notice => t('announcement.create_bulletin_success')) }
format.xml { render :xml => @bulletin, :status => :created, :location => @bulletin } format.xml { render :xml => @bulletin, :status => :created, :location => @bulletin }
# format.js # format.js
@ -121,11 +141,35 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController
# PUT /bulletins/1.xml # PUT /bulletins/1.xml
def update def update
email_group_data
@bulletin = Bulletin.find(params[:id]) @bulletin = Bulletin.find(params[:id])
params[:bulletin][:update_user_id] = current_user.id
delete_out_invalid_date_from_params delete_out_invalid_date_from_params
respond_to do |format| respond_to do |format|
if @bulletin.update_attributes(params[:bulletin]) if @bulletin.update_attributes(params[:bulletin])
if(is_manager? || is_admin?)
@bulletin.is_checked = true
@bulletin.is_rejected = false
@bulletin.de_pending!
format.html { redirect_to(panel_announcement_back_end_bulletins_url, :notice => t('bulletin.update_bulletin_success')) }
format.js { render 'toggle_enable' }
format.xml { head :ok }
else
@tags = get_tags
format.html { render :action => "edit" }
format.xml { render :xml => @bulletin.errors, :status => :unprocessable_entity }
end
if @bulletin.email_sent == true && @bulletin.is_checked == true && !@bulletin.is_rejected
send_email_data(@bulletin)
@bulletin.email_sent = false
@bulletin.save
end
format.html { redirect_to(panel_announcement_back_end_bulletins_url, :notice => t('bulletin.update_bulletin_success')) } format.html { redirect_to(panel_announcement_back_end_bulletins_url, :notice => t('bulletin.update_bulletin_success')) }
format.js { render 'toggle_enable' } format.js { render 'toggle_enable' }
@ -135,6 +179,7 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController
format.html { render :action => "edit" } format.html { render :action => "edit" }
format.xml { render :xml => @bulletin.errors, :status => :unprocessable_entity } format.xml { render :xml => @bulletin.errors, :status => :unprocessable_entity }
end end
end end
end end
@ -164,6 +209,70 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController
protected protected
def send_email_data(bulletin)
@site = Site.first
@user = User.find(bulletin.create_user_id)
@host = request.host_with_port
email_group_data
@group_mail = Array.new
bulletin.email_group.each do |egroup|
if @email_group_data.include?(egroup) and (egroup == 'e_0' or egroup == 'e_1' or egroup == 'e_2' or egroup == 'e_3')
@group_mail << @email_group_data[egroup]["email"]
elsif @email_group_data.include?(egroup) and egroup == 'e_4'
@group_mail << bulletin.other_mailaddress
end
end
if !@group_mail.join.blank?
@mail_content = {
"host" => @host,
"site_title" => @site.title,
"title" => bulletin.title,
"template" => 'announcement_mailer/cron_mail',
"url" => "http://#{@host}#{panel_announcement_front_end_bulletin_path(bulletin, :category_id => bulletin.category.id)}"
}
@mail_cron = {
:mail_from_app => 'announcement',
:mail_from => @user.email,
:mail_reply_to => @user.email,
:mail_subject => "#{t("announcement.mail_subject")}",
:mail_subject => "#{t("announcement.mail_subject",:site_title => @site.title)}#{bulletin.title}",
:mail_to => @group_mail.join(','),
:mail_content => @mail_content ,
# :mail_sentdate => bulletin.email_sentdate,
:mail_sentdate => DateTime.now,
:create_user_id => bulletin.create_user_id,
:update_user_id => bulletin.create_user_id
}
@mail_cron = MailCron.new(@mail_cron)
@mail_cron.save
MailCron.send_mail_now(@mail_cron.id)
end
end
def email_group_data
@email_group_data = Bulletin.email_group_data
end
def delete_out_invalid_date_from_params def delete_out_invalid_date_from_params
if((params[:bulletin]["deadline(1i)"] && params[:bulletin]["deadline(1i)"].blank?) or (params[:bulletin]["deadline(2i)"] && params[:bulletin]["deadline(2i)"].blank?) or (params[:bulletin]["deadline(3i)"] && params[:bulletin]["deadline(3i)"].blank?)) if((params[:bulletin]["deadline(1i)"] && params[:bulletin]["deadline(1i)"].blank?) or (params[:bulletin]["deadline(2i)"] && params[:bulletin]["deadline(2i)"].blank?) or (params[:bulletin]["deadline(3i)"] && params[:bulletin]["deadline(3i)"].blank?))
params[:bulletin].delete("deadline(1i)") params[:bulletin].delete("deadline(1i)")

View File

@ -146,7 +146,15 @@ class Panel::Announcement::Widget::BulletinsController < OrbitWidgetController
@selected_tag = Tag.find(params[:tag_id]).first @selected_tag = Tag.find(params[:tag_id]).first
@ModuleApp = ModuleApp.first(:conditions => {:key=>'web_resource'}) @ModuleApp = ModuleApp.first(:conditions => {:key=>'web_resource'})
@link_selected_tag = Tag.first(:conditions => {:name => @selected_tag.name, :module_tag_id => @ModuleApp.id}) @link_module_tag = ModuleTag.first(:conditions => {:name => @selected_tag.name, :module_app_id => @ModuleApp.id})
# @link_selected_tag = Tag.first(:conditions => {:name => @selected_tag.name, :tag_lease_id => @ModuleApp.id})
if !@link_module_tag.blank?
@link_selected_tag = Tag.first(:conditions => {:name => @selected_tag.name, :tag_lease_id => @link_module_tag.id})
else
@link_selected_tag = @link_module_tag
end
@web_links = WebLink.where(:tagged_ids => @link_selected_tag.id.to_s, :is_hidden => false).desc(:is_top,:created_at).available_for_lang(I18n.locale).page(params[:page]).per(@page_num) rescue nil @web_links = WebLink.where(:tagged_ids => @link_selected_tag.id.to_s, :is_hidden => false).desc(:is_top,:created_at).available_for_lang(I18n.locale).page(params[:page]).per(@page_num) rescue nil
end end

View File

@ -25,10 +25,26 @@ class Bulletin
field :create_user_id field :create_user_id
field :update_user_id, :class_name => "User" field :update_user_id, :class_name => "User"
field :is_top, :type => Boolean, :default => false
field :is_hot, :type => Boolean, :default => false
field :is_hidden, :type => Boolean, :default => false
field :is_checked, :type => Boolean, :default => false
field :is_pending, :type => Boolean, :default => true
field :is_rejected, :type => Boolean, :default => false
field :view_count, :type => Integer, :default => 0 field :view_count, :type => Integer, :default => 0
field :not_checked_reason
field :public, :type => Boolean, :default => true field :public, :type => Boolean, :default => true
field :email_sent, :type => Boolean, :default => false
field :email_sentdate , :type => DateTime
field :email_group, :type => Array
field :other_mailaddress
scope :can_display, where(is_checked: true, is_rejected: false, is_pending: false)
scope :available_for_lang, ->(locale){ where("available_for_#{locale}".to_sym => true) }
mount_uploader :image, ImageUploader mount_uploader :image, ImageUploader
has_many :bulletin_links, :autosave => true, :dependent => :destroy has_many :bulletin_links, :autosave => true, :dependent => :destroy
@ -62,6 +78,11 @@ class Bulletin
self.category.title self.category.title
end end
def bulletin_create_dept
unit_field = User.get_member_list_attribute_field("staff","Unit")
User.get_member_list_attribute_value(self.create_user_id,unit_field.id).get_value_by_locale(I18n.locale) rescue nil
end
def get_bulletin_category def get_bulletin_category
self.category self.category
end end
@ -109,6 +130,37 @@ class Bulletin
end end
def proc_check(check,not_pass_info = "")
self.is_checked = true
if check =="true"
self.is_rejected = false
elsif check == "false"
self.is_rejected = true
self.not_checked_reason = not_pass_info
end
end
def de_pending
self.is_pending = false
end
def de_pending!
de_pending
self.save!
end
def is_checked?
!self.is_pending && self.is_checked && (self.is_rejected == false)
end
def is_pending?
self.is_pending
end
def is_rejected?
!self.is_pending && self.is_rejected && (self.is_rejected == true)
end
def save_bulletin_links def save_bulletin_links
self.bulletin_links.each do |t| self.bulletin_links.each do |t|
@ -149,9 +201,47 @@ class Bulletin
preview_object preview_object
end end
def get_email_group_data(email_group_data)
group_mail = Array.new
self.email_group.each do |egroup|
if email_group_data.include?(egroup) and (egroup == 'e_0' or egroup == 'e_1' or egroup == 'e_2' or egroup == 'e_3')
group_mail << "#{email_group_data[egroup]["email"]}(#{email_group_data[egroup]["name"]})"
elsif email_group_data.include?(egroup) and egroup == 'e_4'
self.other_mailaddress.split(",").each do |otmail|
group_mail << "#{otmail}(#{email_group_data[egroup]["name"]})"
end
end
end
group_mail.join("<br />").html_safe
end
protected protected
def self.email_group_data
@email_group_data = {
'e_0'=> {"name"=>I18n.t('announcement.email_group_data_0'), "email"=>"alluser@tea.ntue.edu.tw"},
'e_1'=> {"name"=>I18n.t('announcement.email_group_data_1'), "email"=>"allstu@tea.ntue.edu.tw"},
'e_2'=> {"name"=>I18n.t('announcement.email_group_data_2'), "email"=>"allgrad@tea.ntue.edu.tw"},
'e_3'=> {"name"=>I18n.t('announcement.email_group_data_3'), "email"=>"allad@tea.ntue.edu.tw"},
'e_4'=> {"name"=>I18n.t('announcement.email_group_data_4')}
}
end
# def clean_values # def clean_values
# self.bulletin_links.each do |link| # self.bulletin_links.each do |link|
# link.delete if link.url.blank? && link.title.blank? # link.delete if link.url.blank? && link.title.blank?

View File

@ -0,0 +1,29 @@
<% # encoding: utf-8 %>
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
</head>
<body bgcolor="#FFFFFF">
<div style="text-ident:20px">
</div>
<%= t('announcement.mail_hi') %> <br /><br />
<%= t('announcement.mail_url_view') %> <br /><br />
<a href="<%= @data.mail_content["url"] %>" target="_blank"> <%= @data.mail_content["title"] %> </a> <br /><br />
</div>
<span style="color:#555">--<br />
<%= t('announcement.mail_source') %> <a href="http://<%= @data.mail_content["host"] %>" target="_blank"> <%= @data.mail_content["site_title"] %> </a><br />
<%= t('announcement.mail_time') %> <%= DateTime.now %>
</span>
</body>
</html>

View File

@ -5,9 +5,19 @@
<a class="close" data-dismiss="modal">×</a> <a class="close" data-dismiss="modal">×</a>
<h3><%= t(:preview) %></h3> <h3><%= t(:preview) %></h3>
</div> </div>
<div class="modal-body"> <div class="modal-body clearfix">
<div class="modal-left">
<% if !@bulletin.email_group.blank? %>
<%= label_tag 'group_mail' %>
<%= @bulletin.get_email_group_data(@email_group_data) %>
<% end %>
</div>
<div class="modal-right">
<iframe src=<%= panel_announcement_front_end_bulletin_path(bulletin, :category_id => bulletin.category.id ,:preview=>true) %>></iframe> <iframe src=<%= panel_announcement_front_end_bulletin_path(bulletin, :category_id => bulletin.category.id ,:preview=>true) %>></iframe>
</div> </div>
</div>
<div class="modal-footer"> <div class="modal-footer">
<%= form_for bulletin, :url => panel_announcement_back_end_bulletin_approve_path(bulletin),:method => :post, :html => {:class => 'form-horizontal'} do |f| %> <%= form_for bulletin, :url => panel_announcement_back_end_bulletin_approve_path(bulletin),:method => :post, :html => {:class => 'form-horizontal'} do |f| %>

View File

@ -32,7 +32,10 @@
<a href="#tag" data-toggle="tab"><%= t(:tags) %></a> <a href="#tag" data-toggle="tab"><%= t(:tags) %></a>
</li> </li>
<li> <li>
<a href="#imageupload" data-toggle="tab"><%= t(:image) %></a> <a href="#imageupload" data-toggle="tab"><%= t("announcement.image") %></a>
</li>
<li>
<a href="#mail-group" data-toggle="tab"><%= t('announcement.email_reminder')%></a>
</li> </li>
</ul> </ul>
@ -113,14 +116,14 @@
<!-- Images Upload --> <!-- Images Upload -->
<div class="control-group"> <div class="control-group">
<label class="control-label muted"><%= t(:image) %></label> <label class="control-label muted"><%= t("announcement.image") %></label>
<div class="controls"> <div class="controls">
<div class="fileupload fileupload-new clearfix <%= 'fileupload-edit' if @bulletin.image.file %>" data-provides="fileupload"> <div class="fileupload fileupload-new clearfix <%= 'fileupload-edit' if @bulletin.image.file %>" data-provides="fileupload">
<div class="fileupload-new thumbnail pull-left"> <div class="fileupload-new thumbnail pull-left">
<% if @bulletin.image.file %> <% if @bulletin.image.file %>
<%= image_tag @bulletin.image %> <%= image_tag @bulletin.image %>
<% else %> <% else %>
<img src="http://www.placehold.it/50x50/EFEFEF/AAAAAA" /> <img src="http://www.placehold.it/290x230/EFEFEF/AAAAAA" />
<% end %> <% end %>
</div> </div>
<div class="fileupload-preview fileupload-exists thumbnail pull-left"></div> <div class="fileupload-preview fileupload-exists thumbnail pull-left"></div>
@ -135,6 +138,52 @@
<%= f.check_box :remove_image %><%= t(:remove) %> <%= f.check_box :remove_image %><%= t(:remove) %>
</label> </label>
</div> </div>
<br />
<span>
<%= t("ad.widget_info_for_ad_image_size", :best_size=> "290px(w) x 230px(h)") %>
<br />
<%= t("announcement.image_upload_size_note", :image_upload_size =>'900kb') %>
<br />
<%= t("announcement.image_note")%>
</span>
</div>
</div>
</div>
</div>
<!-- Mail Group Module -->
<div class="tab-pane fade" id="mail-group">
<!-- Mail Group -->
<div class="control-group">
<label class="control-label muted"><%= t("announcement.email_group") %></label>
<div class="controls">
<label class="checkbox inline">
<%= check_box_tag('bulletin[email_sent]', '1', (!@bulletin.email_sent.blank? ? true : false), :id=>'remind-check') %><%= t('announcement.activate_email_eminder')%>
</label>
<div class="content-box">
<% @email_group_data.collect do |k,v| %>
<label class="checkbox inline">
<%= check_box_tag 'bulletin[email_group][]', k, (@bulletin.email_group.nil? ? false : @bulletin.email_group.include?(k)), :id => "field-#{k}" %> <%= v["name"] %>
<%= hidden_field_tag 'bulletin[email_group][]', '' %>
</label>
<% end if !@email_group_data.blank? %>
</div>
</div>
</div>
<div class="control-group">
<label class="control-label muted"></label>
<div class="controls">
<div class="content-box">
<span class="help-block"><%= "#{t("announcement.other_mailaddress")}(#{t("announcement.other_mailaddress_note")})"%> </span>
<%= f.text_area :other_mailaddress, :class=>"span12", :cols=>"25", :rows=>"10" %>
</div> </div>
</div> </div>
</div> </div>
@ -198,6 +247,10 @@
<% end %> <% end %>
<div class="control-group">
<div class="controls add-input"><%= t('announcement.append_note')%></div>
</div>
<!-- Link --> <!-- Link -->
<div class="control-group"> <div class="control-group">
<label class="control-label muted"><%= t(:link) %></label> <label class="control-label muted"><%= t(:link) %></label>
@ -302,6 +355,11 @@
$(this).parents('.start-line').hide(); $(this).parents('.start-line').hide();
} }
}); });
$('#remind-check').prop('checked') ? '':$('.content-box').addClass('hide')
$('#remind-check').on('change', function() {
$(this).prop('checked') ? $('.content-box').removeClass('hide'):$('.content-box').addClass('hide')
})
}); });
</script> </script>
<% end %> <% end %>

View File

@ -6,9 +6,9 @@
quick_edit_link type: 'delete', quick_edit_link type: 'delete',
link: 'panel_announcement_back_end_bulletin_path' link: 'panel_announcement_back_end_bulletin_path'
# can have: title, warning, cancel and submit values # can have: title, warning, cancel and submit values
# quick_edit_link type: 'approval', quick_edit_link type: 'approval',
# link: 'panel_announcement_back_end_bulletin_approval_preview_path' link: 'panel_announcement_back_end_bulletin_approval_preview_path'
# quick_edit_link type: 'reject_reason' quick_edit_link type: 'reject_reason'
field type: 'status', field type: 'status',
db_field: @statuses, db_field: @statuses,
translation: 'status', translation: 'status',

View File

@ -32,3 +32,4 @@
</table> </table>
<%= paginate( @bulletins, :param_name => :page_main, :params => {:inner => 'false'} ) rescue nil%>

View File

@ -4,14 +4,13 @@
<div class="info1"> <div class="info1">
<span class="pull-right"><%= dislpay_view_count(@bulletin) %></span> <span class="pull-right"><%= dislpay_view_count(@bulletin) %></span>
<span class="date"><%= display_date_time(@bulletin.postdate) %></span> <span class="date"><%= display_date_time(@bulletin.postdate) %></span>
<% unit = @bulletin.cache_dept[I18n.locale.to_s] rescue nil %> <%
<span><%= link_to unit,panel_announcement_front_end_index_bulletins_by_unit_path(:name=>unit) unless unit.blank? %></span> unit_field = User.get_member_list_attribute_field("staff","Unit")
unit = User.get_member_list_attribute_value(@bulletin.create_user_id,unit_field.id).get_value_by_locale(I18n.locale) rescue nil
%>
<span><%= t('announcement.default_widget.bulletin_create_dept') + ": " + unit unless unit.blank? %></span>
</div> </div>
</div> </div>
<div class="news_image">
<%#= image_tag(@bulletin.image.url, :size => "320x240") if @bulletin.image.file %>
<%= link_to image_tag(@bulletin.image.url, :size => "320x240"), @bulletin.image.url, {:target => '_blank', :title => @bulletin.image_identifier} if @bulletin.image.file %>
</div>
<div class="news_paragraph"> <div class="news_paragraph">
<%= @bulletin.text.html_safe rescue '' %> <%= @bulletin.text.html_safe rescue '' %>
</div> </div>

View File

@ -4,6 +4,7 @@ en:
add_new: Add New add_new: Add New
all_articles: All Articles all_articles: All Articles
announcement: Announcement announcement: Announcement
append_note: Suggest to input underside Link and File's annotation to show correct info in frontend
approval_setting: Approval Setting approval_setting: Approval Setting
approve_bulletin_fail: Approval Fail approve_bulletin_fail: Approval Fail
approve_bulletin_success: Approve Successfully approve_bulletin_success: Approve Successfully
@ -13,10 +14,11 @@ en:
create_bulletin_category_success: Create Category Successfully create_bulletin_category_success: Create Category Successfully
date: Announcement Date date: Announcement Date
default_widget: default_widget:
bulletin_category_with_title: Bulletin Category with Title bulletin_category_with_title: Category
postdate: Post Date postdate: Post Date
subtitle: Subtitle subtitle: Subtitle
title: Title title: Title
bulletin_create_dept: Unit
editing_announcement: Edit Announcement editing_announcement: Edit Announcement
editing_announcement_category: Edit Category editing_announcement_category: Edit Category
file: Attachment file: Attachment
@ -25,6 +27,8 @@ en:
frontend: frontend:
bulletins: Announcement front-end bulletins: Announcement front-end
search_result: Search result search_result: Search result
image: Cover image
image_note: The image will not show in content
link_name: Link Name link_name: Link Name
new_bulletin_category: New Bulletin Category new_bulletin_category: New Bulletin Category
picture: Cover Picture picture: Cover Picture
@ -36,3 +40,21 @@ en:
bulletins_and_web_links: Differential Nav. bulletins_and_web_links: Differential Nav.
index: Index index: Index
search: Search search: Search
email_reminder: Email Reminder
activate_email_eminder: Activate Email Reminder
email_sentdate: Email Time
email_group: Email Group
email_group_data_0: All Faculty
email_group_data_1: Undergraduates
email_group_data_2: Postgraduates
email_group_data_3: Continuing Ed. Postgraduates
email_group_data_4: Other
# mail_subject: this is an announcement reminder from【%{site_title}】
mail_subject: 【北教大公告提醒】
other_mailaddress: Other Email
other_mailaddress_note: Divide different email accounts with ","
mail_hi: Hi
mail_url_view: This email is the reminder of an announcement, please click the link for the details
mail_source: Source
mail_time: Time
image_upload_size_note: The following recommendations %{image_upload_size} upload size

View File

@ -4,6 +4,7 @@ zh_tw:
add_new: 新建 add_new: 新建
all_articles: 文章列表 all_articles: 文章列表
announcement: 公告 announcement: 公告
append_note: 以下之附加連結與檔案,為使前台顯示名稱,建議您輸入註解。
approval_setting: 審核設定 approval_setting: 審核設定
approve_bulletin_fail: 審核失敗 approve_bulletin_fail: 審核失敗
approve_bulletin_success: 審核成功 approve_bulletin_success: 審核成功
@ -13,10 +14,11 @@ zh_tw:
create_bulletin_category_success: 建立類別成功 create_bulletin_category_success: 建立類別成功
date: 起迄日期 date: 起迄日期
default_widget: default_widget:
bulletin_category_with_title: 公告類別及標題 bulletin_category_with_title: 類別
postdate: 張貼日期 postdate: 張貼日期
subtitle: 副標題 subtitle: 副標題
title: 標題 title: 標題
bulletin_create_dept: 單位
editing_announcement: 編輯類別 editing_announcement: 編輯類別
editing_announcement_category: 編輯類別 editing_announcement_category: 編輯類別
error: error:
@ -27,6 +29,8 @@ zh_tw:
frontend: frontend:
bulletins: 公告前台 bulletins: 公告前台
search_result: 搜尋結果頁 search_result: 搜尋結果頁
image: 封面圖片
image_note: 此處上傳的圖片不會在公告內文出現
link_name: 連結名稱 link_name: 連結名稱
new_bulletin_category: 新增公告類別 new_bulletin_category: 新增公告類別
picture: 刊頭圖片 picture: 刊頭圖片
@ -39,3 +43,21 @@ zh_tw:
index: 索引 index: 索引
search: 搜尋 search: 搜尋
more: 更多+ more: 更多+
email_reminder: 寄送提醒
activate_email_eminder: 開啟寄送提醒
email_sentdate: 寄送時間
email_group: 寄送群組
other_mailaddress: 其他Mail
other_mailaddress_note: 輸入多組mail時,請用","逗號隔開
email_group_data_0: 全校教職員
email_group_data_1: 大學部學生
email_group_data_2: 日間部研究生
email_group_data_3: 進修部研究生
email_group_data_4: 其他
# mail_subject: 來自【%{site_title}】的公告事件提醒
mail_subject: 【北教大公告提醒】
mail_hi: 您好
mail_url_view: 此封信件為公告事件提醒,請點選以下連結詳細觀看
mail_source: 來源
mail_time: 時間
image_upload_size_note: 建議檔案小於%{image_upload_size}

View File

@ -28,19 +28,20 @@ module Announcement
data_count 1..10 data_count 1..10
authorizable authorizable
# approvable approvable
categorizable categorizable
taggable taggable
widgets do widgets do
default_widget do default_widget do
query 'Bulletin' query 'Bulletin.can_display.available_for_lang(I18n.locale).any_of( {deadline: nil,:postdate.lte => Time.now} , {:deadline.gte => Time.now,:postdate.lte => Time.now} )'
enable ["typeA", "typeB_style3", "typeC"] enable ["typeA", "typeB_style3", "typeC"]
image :image image :image
field :postdate field :postdate
link_field :title,{:method => 'panel_announcement_front_end_bulletin_path',:args=>:self} link_field :title,{:method => 'panel_announcement_front_end_bulletin_path',:args=>:self}
link_field :bulletin_category_with_title,{:method => 'panel_announcement_front_end_bulletins_path',:args=>{:category_id => [:category,:id]}} link_field :bulletin_category_with_title,{:method => 'panel_announcement_front_end_bulletins_path',:args=>{:category_id => [:category,:id]}}
field :subtitle link_field :subtitle,{:method => 'panel_announcement_front_end_bulletin_path',:args=>:self,:preview=>true}
field :bulletin_create_dept
link_to_more 'panel_announcement_front_end_bulletins_path',:title_i18n=> 'more_plus' link_to_more 'panel_announcement_front_end_bulletins_path',:title_i18n=> 'more_plus'
end end