seminar2/app/helpers/admin/seminars_helper.rb

121 lines
4.8 KiB
Ruby

module Admin::SeminarsHelper
data = File.open(File.join(File.dirname(__FILE__), '../../../config', 'list.yml')).read
$seminar_list = YAML::load(ERB.new(data).result(binding)).symbolize_keys
def display_format_string(num, str_length)
return format("%0#{str_length}d", num % (10^str_length))
end
def page_for_seminar(seminar)
ann_page = nil
pages = Page.where(:module=>'seminar')
pages.each do |page|
if page.categories.count ==1
if page.categories.include?(seminar.category.id.to_s)
ann_page = page
end
end
break if !ann_page.nil?
end
if ann_page.nil?
pages.each do |page|
if page.categories.include?(seminar.category.id.to_s)
ann_page = page
end
break if !ann_page.nil?
end
end
ann_page = pages.first if ann_page.nil?
request.protocol+(request.host_with_port+ann_page.url+'/'+seminar.to_param).gsub('//','/') rescue "/"
end
def can_see_seminar_signup(seminar)
if can_edit_or_delete?(seminar)
return true
elsif (seminar.organizer_id == current_user.member_profile_id rescue false)
return true
else
return seminar.reviewer_ids.to_a.include?(current_user.member_profile_id.to_s)
end
end
def admin_for_seminar(seminar)
return can_edit_or_delete?(seminar) || (seminar.organizer_id == current_user.member_profile_id rescue false)
end
def page_for_seminar_url
if @seminar_main_url
return @seminar_main_url
else
page = Page.where(:module => 'seminar').first
return request.protocol+(request.host_with_port+"/#{I18n.locale}#{(page.get_url rescue page.url)}").gsub('//','/') rescue "/"
end
# return "/#{I18n.locale}#{page.url}/#{seminar.to_param}"
end
def send_mail(field_name,email,seminar_id,extra_text="")
email_set = @seminar.seminar_email_sets.select{|v| v.field_name == field_name}
if email_set.length==0
mail = Email.create(mail_to:[email],
module_app_key:"seminar",
template:"email/#{field_name}_email.html.erb",
mail_sentdate:Time.current,
mail_subject: t("seminar.email_#{field_name}_success"),
template_data:{'seminar_id'=>seminar_id,'locale'=>I18n.locale,'extra_text'=> extra_text})
elsif !(email_set[0].disabled)
mail = Email.create(mail_to:[email],
module_app_key:"seminar",
template:"email/#{field_name}_email.html.erb",
mail_sentdate:Time.current,
mail_subject: email_set[0].title[I18n.locale],
template_data:{'seminar_id'=>seminar_id,'locale'=>I18n.locale,'extra_text'=> extra_text})
end
end
module MultiLang
extend self
extend ActionView::Helpers::FormTagHelper
extend ActionView::Helpers::FormOptionsHelper
extend ActionView::Helpers::DateHelper
extend ActionView::Helpers::TagHelper
extend ActionView::Helpers::RenderingHelper
extend ActionView::Context
extend OrbitBasis::RenderAnywhere
extend ActionView::Helpers::UrlHelper
extend OrbitFormHelper
extend Ckeditor::Helpers::FormHelper
def get_input_name()
'seminar_main'
end
def create_lang_panel(field)
tmp2 = content_tag(:div,:class => 'btn-group', :data=>{:toggle=>"buttons-radio"}) do
I18n.available_locales.collect do |key|
link_entry_ary = ["##{field}","_#{key}"]
link_entry = link_entry_ary.join
link_to(I18n.t(key),link_entry,:data=>{:toggle=>"tab"},:class=>"btn #{(key == I18n.locale ? "active" : nil)}",:for=>key)
end.join.html_safe
end
end
def multiple_lang_tag(index1,type_of_tag,field,value=nil,custom_options={},combine_element='',exteral_options={},panel_on_top=false)
content_tag(:div,{:class => "tab-content"}.merge(exteral_options)) do
if !index1.nil?
all_field = (get_input_name + "[#{index1}][#{field}][parant]").gsub(/\[/,'_').gsub(/\]/,'')
else
all_field = (get_input_name + "[#{field}][parant]").gsub(/\[/,'_').gsub(/\]/,'')
end
tmp = I18n.available_locales.collect do |locale|
active_flag = ((locale == I18n.locale) ? ' active in' : '')
content_tag(:div,:class => "tab-pane fade#{active_flag}",:id=>"#{all_field}_#{locale}") do
value_locale = value[locale.to_s] rescue nil
if !index1.nil?
self.__send__("#{type_of_tag}_tag","#{get_input_name}[#{index1}][#{field}][#{locale}]",value_locale,custom_options)
else
self.__send__("#{type_of_tag}_tag","#{get_input_name}[#{field}][#{locale}]",value_locale,custom_options)
end
end
end.join
if panel_on_top
create_lang_panel(all_field).html_safe + tmp.html_safe + combine_element
else
(tmp + create_lang_panel(all_field)).html_safe + combine_element
end
end
end
end
end