7 Commits
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
17 changed files with 187 additions and 172 deletions

No files matched your search

-3
View File
@@ -1,3 +0,0 @@
Orbit Announcement
Version 0.0.3
-2
View File
@@ -1,5 +1,3 @@
= Announcement = Announcement
This project rocks and uses MIT-LICENSE. This project rocks and uses MIT-LICENSE.
* Tagging
* Categories
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

@@ -1,83 +0,0 @@
# API for Announcement Module
#
# Simple access control
# params[:access_token] = Site ID
# ex: /panel/announcement/api/bulletins.json?access_token=5301d8be45d5f42f4f000001
#
# Set Language
# Language can be "zh_tw" or "en"
# ex: /panel/announcement/api/bulletins.json?lang=en&access_token=5301d8be45d5f42f4f000001
#
# Get Categories and Tags
# ex: /panel/announcement/api/categories_tags.json&access_token=5301d8be45d5f42f4f000001
#
# Query Bulletins
# Set page number use params[:page_num]
# Set number of results per page use params[:per_page]
# ex: /panel/announcement/api/bulletins.json?page_num=3&per_page=15&access_token=5301d8be45d5f42f4f000001
#
# Filter bulletins with categories use params[:categories]
# ex: /panel/announcement/api/bulletins.json?categories[]=53046e4045d5f462a2000006&access_token=5301d8be45d5f42f4f000001
#
# Filter bulletins with tags use params[:tags]
# ex: /panel/announcement/api/bulletins.json?tags[]=5318e58d45d5f41127000007&access_token=5301d8be45d5f42f4f000001
#
# Filter bulletins with "is_hot" use params[:is_hot]
# ex: /panel/announcement/api/bulletins.json?is_hot=1&access_token=5301d8be45d5f42f4f000001
#
# Search bulletin title, subtitle, text with params[:keyword]
# ex: /panel/announcement/api/bulletins.json?keyword=大學&access_token=5301d8be45d5f42f4f000001
class Panel::Announcement::Api::BulletinsController < OrbitWidgetController
before_filter :set_I18n, :check_site_id
def get_categories_tags
module_id = ModuleApp.where(:key=>"announcement").first.id
categories = Category.where(:module_app_id => module_id).collect{|c| {"id"=>c.id, "title"=>c.title_translations}}
module_tags = ModuleTag.where(:module_app_id => module_id).collect{|t| t.id}
tags = Tag.any_of({:tag_lease_id.in => module_tags}).collect{|t| {"id"=>t.id, "title"=>t.name_translations}}
render :json => {
"categories" => categories,
"tags" => tags
}
end
def get_bulletins
page_num = params[:page_num].blank? ? 0 : params[:page_num].to_i
per_page = params[:per_page].blank? ? 10 : params[:per_page].to_i
per_page = per_page > 0 ? per_page : 10
if !params[:keyword].blank?
keyword = Regexp.new(".*"+params[:keyword]+".*")
bulletins = Bulletin.any_of({:title=>keyword},{:subtitle=>keyword},{:text=>keyword}).available_for_lang(I18n.locale)
else
bulletins = Bulletin.available_for_lang(I18n.locale)
end
bulletins = bulletins.where(:is_hot => params[:is_hot]) if !params[:is_hot].blank?
bulletins = bulletins.where(:category_id.in => params[:categories]) if !params[:categories].blank?
bulletins = bulletins.where(:tagged_ids.in => params[:tags]) if !params[:tags].blank?
bulletins = bulletins.desc( :is_top, :postdate).page(page_num).per(per_page)
total_pages = (bulletins.count / per_page) + 1
render :json => {
"bulletins" => bulletins,
"bulletins_count" => bulletins.count,
"page_num" => page_num,
"total_pages" => total_pages,
"lang"=>I18n.locale
}
end
protected
def set_I18n
I18n.locale = params[:lang] if params[:lang].present?
end
def check_site_id
raise ActionController::RoutingError.new('Not Found') if Site.first.id.to_s != params['access_token']
end
end
@@ -7,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
@@ -77,13 +78,28 @@ class Panel::Announcement::BackEnd::ApprovalsController < OrbitBackendControlle
@user = User.find(bulletin.create_user_id) @user = User.find(bulletin.create_user_id)
@host = request.host_with_port @host = request.host_with_port
@group_mail = MailCron.get_send_group_mail( bulletin.email_user_ids , bulletin.other_mailaddress ) 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? if !@group_mail.join.blank?
@mail_content = { @mail_content = {
"host" => @host, "host" => @host,
"lang" => I18n.locale,
"site_title" => @site.title, "site_title" => @site.title,
"title" => bulletin.title, "title" => bulletin.title,
"template" => 'announcement_mailer/cron_mail', "template" => 'announcement_mailer/cron_mail',
@@ -92,12 +108,13 @@ class Panel::Announcement::BackEnd::ApprovalsController < OrbitBackendControlle
@mail_cron = { @mail_cron = {
:mail_from_app => 'announcement', :mail_from_app => 'announcement',
# :mail_from => @user.email, :mail_from => @user.email,
# :mail_reply_to => @user.email, :mail_reply_to => @user.email,
:mail_subject => "#{t("announcement.mail_subject",:site_title => @site.title)}:#{bulletin.title}", :mail_subject => "#{t("announcement.mail_subject",:site_title => @site.title)}:#{bulletin.title}",
:mail_to => @group_mail.join(','), :mail_to => @group_mail.join(','),
:mail_content => @mail_content , :mail_content => @mail_content ,
:mail_sentdate => bulletin.email_sentdate, # :mail_sentdate => bulletin.email_sentdate,
:mail_sentdate => DateTime.now,
:create_user_id => bulletin.create_user_id, :create_user_id => bulletin.create_user_id,
:update_user_id => bulletin.create_user_id :update_user_id => bulletin.create_user_id
} }
@@ -106,7 +123,15 @@ class Panel::Announcement::BackEnd::ApprovalsController < OrbitBackendControlle
@mail_cron.save @mail_cron.save
MailCron.send_mail_now(@mail_cron.id)
end end
end
def email_group_data
@email_group_data = Bulletin.email_group_data
end end
@@ -1,4 +1,5 @@
# encoding: utf-8 # encoding: utf-8
class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController
# include OrbitControllerLib::DivisionForDisable # include OrbitControllerLib::DivisionForDisable
@@ -20,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
@@ -48,8 +51,11 @@ 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, :email_sentdate => DateTime.now) @bulletin = Bulletin.new(:postdate => DateTime.now)
else else
@bulletin = session[:in_validate_object] @bulletin = session[:in_validate_object]
session[:in_validate_object] = {} session[:in_validate_object] = {}
@@ -65,12 +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])
@email_users = @bulletin.get_email_users
@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
@@ -84,17 +92,15 @@ 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
params[:bulletin][:email_user_ids] = params[:bulletin][:email_user_ids].uniq
params[:bulletin][:email_user_ids].delete('')
@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
@@ -135,23 +141,27 @@ 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][:tag_ids] = (params[:bulletin][:tag_ids] ? params[:bulletin][:tag_ids] : [])
params[:bulletin][:email_user_ids] = params[:bulletin][:email_user_ids].uniq
params[:bulletin][:email_user_ids].delete('')
params[:bulletin][:update_user_id] = current_user.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?) 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!
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 end
if @bulletin.email_sent == true && @bulletin.is_checked == true && !@bulletin.is_rejected if @bulletin.email_sent == true && @bulletin.is_checked == true && !@bulletin.is_rejected
@@ -169,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
@@ -204,13 +215,28 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController
@user = User.find(bulletin.create_user_id) @user = User.find(bulletin.create_user_id)
@host = request.host_with_port @host = request.host_with_port
@group_mail = MailCron.get_send_group_mail( bulletin.email_user_ids , bulletin.other_mailaddress ) 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? if !@group_mail.join.blank?
@mail_content = { @mail_content = {
"host" => @host, "host" => @host,
"lang" => I18n.locale,
"site_title" => @site.title, "site_title" => @site.title,
"title" => bulletin.title, "title" => bulletin.title,
"template" => 'announcement_mailer/cron_mail', "template" => 'announcement_mailer/cron_mail',
@@ -219,12 +245,14 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController
@mail_cron = { @mail_cron = {
:mail_from_app => 'announcement', :mail_from_app => 'announcement',
# :mail_from => @user.email, :mail_from => @user.email,
# :mail_reply_to => @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_subject => "#{t("announcement.mail_subject",:site_title => @site.title)}:#{bulletin.title}",
:mail_to => @group_mail.join(','), :mail_to => @group_mail.join(','),
:mail_content => @mail_content , :mail_content => @mail_content ,
:mail_sentdate => bulletin.email_sentdate, # :mail_sentdate => bulletin.email_sentdate,
:mail_sentdate => DateTime.now,
:create_user_id => bulletin.create_user_id, :create_user_id => bulletin.create_user_id,
:update_user_id => bulletin.create_user_id :update_user_id => bulletin.create_user_id
} }
@@ -233,10 +261,18 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController
@mail_cron.save @mail_cron.save
MailCron.send_mail_now(@mail_cron.id)
end end
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)")
@@ -12,13 +12,8 @@ class Panel::Announcement::FrontEnd::BulletinsController < OrbitWidgetController
if params[:search_query] == "" if params[:search_query] == ""
@bulletins = get_bulletins_for_index @bulletins = get_bulletins_for_index
else else
key_string = params[:search_query] @search = Bulletin.tire.search "#{params[:search_query]}"
keywords = key_string.split(/\s+(?=(?:[^"]*"[^"]*")*[^"]*$)/) search_result = @search.collect{|result| result.id}
regex = Regexp.union(keywords.map{|word| Regexp.new(".*"+word+".*", "i")})
query = ["title","subtitle","text"].map{|f| {f.to_sym => regex} }
res = Bulletin.any_of(query)
search_result = res.collect{|result| result.id}
@bulletins = Bulletin.all.available_for_lang(I18n.locale).can_display.any_in(_id:search_result).page( params[:page_main]).per(@page_num) @bulletins = Bulletin.all.available_for_lang(I18n.locale).can_display.any_in(_id:search_result).page( params[:page_main]).per(@page_num)
end end
+48 -11
View File
@@ -13,10 +13,10 @@ class Bulletin
include OrbitModel::TimeFrame include OrbitModel::TimeFrame
include OrbitTag::Taggable include OrbitTag::Taggable
# include Tire::Model::Search include Tire::Model::Search
# include Tire::Model::Callbacks include Tire::Model::Callbacks
is_impressionable is_impressionable :counter_cache => { :column_name => :view_count }
field :title, localize: true field :title, localize: true
field :subtitle, localize: true field :subtitle, localize: true
@@ -39,7 +39,7 @@ class Bulletin
field :email_sent, :type => Boolean, :default => false field :email_sent, :type => Boolean, :default => false
field :email_sentdate , :type => DateTime field :email_sentdate , :type => DateTime
field :email_user_ids field :email_group, :type => Array
field :other_mailaddress field :other_mailaddress
scope :can_display, where(is_checked: true, is_rejected: false, is_pending: false) scope :can_display, where(is_checked: true, is_rejected: false, is_pending: false)
@@ -55,9 +55,9 @@ class Bulletin
validates :title, :at_least_one => true validates :title, :at_least_one => true
# def to_indexed_json def to_indexed_json
# self.to_json self.to_json
# end end
# search_in :title, :subtitle, :text # search_in :title, :subtitle, :text
@@ -78,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
@@ -156,6 +161,7 @@ class Bulletin
!self.is_pending && self.is_rejected && (self.is_rejected == true) !self.is_pending && self.is_rejected && (self.is_rejected == true)
end end
def save_bulletin_links def save_bulletin_links
self.bulletin_links.each do |t| self.bulletin_links.each do |t|
if t.should_destroy if t.should_destroy
@@ -195,16 +201,47 @@ class Bulletin
preview_object preview_object
end end
def get_email_users def get_email_group_data(email_group_data)
User.find(self.email_user_ids) rescue []
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
def view_count
Impression.where(:impressionable_id=>self.id).count
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?
@@ -1,7 +1,4 @@
<% # encoding: utf-8 %> <% # encoding: utf-8 %>
<% I18n.locale = @data.mail_content["lang"] %>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
@@ -7,10 +7,10 @@
</div> </div>
<div class="modal-body clearfix"> <div class="modal-body clearfix">
<div class="modal-left"> <div class="modal-left">
<%= label_tag t('announcement.email_to') %>
<% if @bulletin.email_sent == true and ( !@bulletin.email_user_ids.blank? || !@bulletin.other_mailaddress.blank? ) %>
<%= MailCron.get_send_group_mail(@bulletin.email_user_ids , @bulletin.other_mailaddress).join("<br />").html_safe %> <% if !@bulletin.email_group.blank? %>
<%= label_tag 'group_mail' %>
<%= @bulletin.get_email_group_data(@email_group_data) %>
<% end %> <% end %>
</div> </div>
@@ -10,7 +10,6 @@
<%= javascript_include_tag "lib/modal-preview" %> <%= javascript_include_tag "lib/modal-preview" %>
<%= javascript_include_tag "lib/file-type" %> <%= javascript_include_tag "lib/file-type" %>
<%= javascript_include_tag "lib/module-area" %> <%= javascript_include_tag "lib/module-area" %>
<%= javascript_include_tag "member-selection" %>
<% end %> <% end %>
<%= f.error_messages %> <%= f.error_messages %>
@@ -104,6 +103,7 @@
<% @tags.each do |tag| %> <% @tags.each do |tag| %>
<label class="checkbox inline btn <%= 'active' if @bulletin.tag_ids.include?(tag.id) %>"> <label class="checkbox inline btn <%= 'active' if @bulletin.tag_ids.include?(tag.id) %>">
<%= check_box_tag 'bulletin[tag_ids][]', tag.id, @bulletin.tag_ids.include?(tag.id) %> <%= tag.name %> <%= check_box_tag 'bulletin[tag_ids][]', tag.id, @bulletin.tag_ids.include?(tag.id) %> <%= tag.name %>
<%= hidden_field_tag 'bulletin[tag_ids][]', '' %>
</label> </label>
<% end %> <% end %>
</div> </div>
@@ -123,7 +123,7 @@
<% 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>
@@ -138,8 +138,15 @@
<%= 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 class="image_note"><%= t("announcement.image_note")%></div>
</div> </div>
</div> </div>
@@ -150,17 +157,24 @@
<!-- Mail Group --> <!-- Mail Group -->
<div class="control-group"> <div class="control-group">
<label class="control-label muted"><%= t("announcement.email_to") %></label> <label class="control-label muted"><%= t("announcement.email_group") %></label>
<div class="controls"> <div class="controls">
<label class="checkbox inline"> <label class="checkbox inline">
<%= check_box_tag('bulletin[email_sent]', '1', (!@bulletin.email_sent.blank? ? true : false), :id=>'remind-check') %><%= t('announcement.activate_email_reminder')%> <%= check_box_tag('bulletin[email_sent]', '1', (!@bulletin.email_sent.blank? ? true : false), :id=>'remind-check') %><%= t('announcement.activate_email_eminder')%>
</label> </label>
<div class="content-box"> <div class="content-box">
<p>
<%= render partial: 'admin/member_selects/email_selection_box', locals: {field: 'bulletin[email_user_ids][]', users: @email_users} %> <% @email_group_data.collect do |k,v| %>
</p>
<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>
</div> </div>
@@ -174,15 +188,6 @@
</div> </div>
</div> </div>
<div class="content-box">
<div class="control-group">
<label class="control-label muted"><%= t("announcement.email_sentdate") %></label>
<div class="controls">
<%= f.datetime_picker :email_sentdate, :no_label => true %>
</div>
</div>
</div>
</div> </div>
</div> </div>
@@ -355,7 +360,6 @@
$('#remind-check').on('change', function() { $('#remind-check').on('change', function() {
$(this).prop('checked') ? $('.content-box').removeClass('hide'):$('.content-box').addClass('hide') $(this).prop('checked') ? $('.content-box').removeClass('hide'):$('.content-box').addClass('hide')
}) })
}); });
</script> </script>
<% end %> <% end %>
@@ -37,11 +37,6 @@
field type: 'tags', field type: 'tags',
hide: 'all', hide: 'all',
sort: 'tags' sort: 'tags'
field db_field: 'email_user_ids',
hide: 'all',
translation: 'announcement.email_to',
display_option: '"<br />#{MailCron.get_send_group_mail(object.email_user_ids , object.other_mailaddress).join(", ").html_safe}"',
sort: 'email_user_ids'
field type: 'id', field type: 'id',
db_field: 'update_user_id', db_field: 'update_user_id',
model: User, model: User,
@@ -4,8 +4,11 @@
<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_paragraph"> <div class="news_paragraph">
+10 -3
View File
@@ -18,6 +18,7 @@ en:
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
@@ -40,10 +41,16 @@ en:
index: Index index: Index
search: Search search: Search
email_reminder: Email Reminder email_reminder: Email Reminder
activate_email_reminder: Activate Email Reminder activate_email_eminder: Activate Email Reminder
email_sentdate: Email Time email_sentdate: Email Time
email_to: Email To email_group: Email Group
mail_subject: this is an announcement reminder from【%{site_title}】 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: Other Email
other_mailaddress_note: Divide different email accounts with "," other_mailaddress_note: Divide different email accounts with ","
mail_hi: Hi mail_hi: Hi
+10 -3
View File
@@ -18,6 +18,7 @@ zh_tw:
postdate: 張貼日期 postdate: 張貼日期
subtitle: 副標題 subtitle: 副標題
title: 標題 title: 標題
bulletin_create_dept: 單位
editing_announcement: 編輯類別 editing_announcement: 編輯類別
editing_announcement_category: 編輯類別 editing_announcement_category: 編輯類別
error: error:
@@ -43,12 +44,18 @@ zh_tw:
search: 搜尋 search: 搜尋
more: 更多+ more: 更多+
email_reminder: 寄送提醒 email_reminder: 寄送提醒
activate_email_reminder: 開啟寄送提醒 activate_email_eminder: 開啟寄送提醒
email_sentdate: 寄送時間 email_sentdate: 寄送時間
email_to: 寄送對象 email_group: 寄送群組
other_mailaddress: 其他Mail other_mailaddress: 其他Mail
other_mailaddress_note: 輸入多組mail時,請用","逗號隔開 other_mailaddress_note: 輸入多組mail時,請用","逗號隔開
mail_subject: 來自【%{site_title}】的公告事件提醒 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_hi: 您好
mail_url_view: 此封信件為公告事件提醒,請點選以下連結詳細觀看 mail_url_view: 此封信件為公告事件提醒,請點選以下連結詳細觀看
mail_source: 來源 mail_source: 來源
-4
View File
@@ -41,10 +41,6 @@ Rails.application.routes.draw do
match "bulletins_side_bar" => "bulletins#bulletins_side_bar" match "bulletins_side_bar" => "bulletins#bulletins_side_bar"
match "bulletins_search_block" => "bulletins#bulletins_search_block" match "bulletins_search_block" => "bulletins#bulletins_search_block"
end end
namespace :api do
get "categories_tags.json" => "bulletins#get_categories_tags"
get "bulletins.json" => "bulletins#get_bulletins"
end
end end
end end
end end
+2 -1
View File
@@ -40,7 +40,8 @@ module Announcement
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