Changes for ntue (mail app)
This commit is contained in:
		
							parent
							
								
									ecc3581106
								
							
						
					
					
						commit
						dda603c27c
					
				
							
								
								
									
										2
									
								
								Gemfile
								
								
								
								
							
							
						
						
									
										2
									
								
								Gemfile
								
								
								
								
							|  | @ -1,6 +1,8 @@ | |||
| source 'http://rubygems.org' | ||||
| gem 'rails', "~> 3.2.9" | ||||
| 
 | ||||
| gem 'savon', '~> 2.2.0' | ||||
| 
 | ||||
| gem "brakeman" | ||||
| gem 'mime-types' | ||||
| 
 | ||||
|  |  | |||
|  | @ -0,0 +1,35 @@ | |||
| # encoding: utf-8 | ||||
| 
 | ||||
| class SessionsController < Devise::SessionsController | ||||
| 	prepend_before_filter :require_no_authentication, :only => [ :new, :create ] | ||||
| 
 | ||||
|   require 'savon' | ||||
| 
 | ||||
|   def create  | ||||
| 
 | ||||
|     @sys_id = params["sys_id"] | ||||
| 
 | ||||
|     client = Savon.client(wsdl: 'http://sso.ntue.edu.tw/soap/soapserver.php?wsdl') | ||||
| 
 | ||||
|     client.operations | ||||
| 
 | ||||
|     response = client.call(:chkidno, message: { sys_id: @sys_id }) | ||||
| 
 | ||||
|     @id = response.body[:chkidno_response][:return][:id] | ||||
| 
 | ||||
|     login_uid = @id | ||||
| 
 | ||||
|   	resource = User.first(conditions:{user_id: login_uid}) | ||||
| 
 | ||||
|     if !resource.blank? | ||||
|       resource_name = resource.class.to_s.downcase | ||||
|   	  sign_in(resource_name, resource) | ||||
|   	  redirect_to after_sign_in_path_for(resource) | ||||
|   	else | ||||
|   	  flash[:error] = "很抱歉,您無此權限或帳號登入本站,請洽本站管理員<br />Sorry, you don't have the account or authority to login. Please contact the website administrator." | ||||
|   	  redirect_to :root | ||||
|     end | ||||
| 
 | ||||
|   end | ||||
| 
 | ||||
| end | ||||
|  | @ -34,15 +34,15 @@ Orbit::Application.configure do | |||
|   #   :sender_address => %{"notifier" <redmine@rulingcom.com>}, | ||||
|   #   :exception_recipients => %w{chris@rulingcom.com} | ||||
| 
 | ||||
|   config.action_mailer.delivery_method = :smtp | ||||
|   config.action_mailer.smtp_settings = { | ||||
|     :enable_starttls_auto => true, | ||||
|     :address => "smtp.gmail.com", | ||||
|     :port => '587', | ||||
|     :domain => "smtp.gmail.com", | ||||
|     :authentication => "plain", | ||||
|     :user_name => "redmine@rulingcom.com", | ||||
|     :password => "rulingredmine" } | ||||
|   # config.action_mailer.delivery_method = :smtp | ||||
|   # config.action_mailer.smtp_settings = { | ||||
|   #   :enable_starttls_auto => true, | ||||
|   #   :address => "smtp.gmail.com", | ||||
|   #   :port => '587', | ||||
|   #   :domain => "smtp.gmail.com", | ||||
|   #   :authentication => "plain", | ||||
|   #   :user_name => "redmine@rulingcom.com", | ||||
|   #   :password => "rulingredmine" } | ||||
| 
 | ||||
| end | ||||
| 
 | ||||
|  |  | |||
|  | @ -7,6 +7,11 @@ Orbit::Application.routes.draw do | |||
|     match "/users_passwd" => "desktop/registrations#update", :as => :users_passwd, :via => :put | ||||
|   end | ||||
| 
 | ||||
|   devise_scope :user do | ||||
|     get 'soap_login' => 'sessions#create' | ||||
|   end | ||||
| 
 | ||||
| 
 | ||||
|   mount Resque::Server, :at => "/admin/resque" | ||||
|   mount Rack::GridFS::Endpoint.new(:db => Mongoid.database,:lookup=>:path), :at => "gridfs" | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,3 +1,4 @@ | |||
| # encoding: utf-8 | ||||
| class Panel::Announcement::BackEnd::ApprovalsController  < OrbitBackendController | ||||
|   before_filter :authenticate_user! | ||||
|   before_filter :is_admin? | ||||
|  | @ -6,6 +7,7 @@ class Panel::Announcement::BackEnd::ApprovalsController  < OrbitBackendControlle | |||
| 
 | ||||
|    | ||||
|   def preview_and_approve | ||||
|     email_group_data | ||||
|     @bulletin = Bulletin.find params[:bulletin_id] | ||||
|   end | ||||
|    | ||||
|  | @ -15,6 +17,14 @@ class Panel::Announcement::BackEnd::ApprovalsController  < OrbitBackendControlle | |||
|     @bulletin.proc_check(params[:bulletin][:is_checked],params[:bulletin][:not_checked_reason]) | ||||
|     @bulletin.de_pending | ||||
|      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') | ||||
|      else | ||||
|         notice = t('announcement.approve_bulletin_fail') | ||||
|  | @ -62,6 +72,69 @@ class Panel::Announcement::BackEnd::ApprovalsController  < OrbitBackendControlle | |||
|     object_auth | ||||
|   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 == '0' or egroup == '1' or egroup == '2' or egroup == '3') | ||||
| 
 | ||||
|         @group_mail << @email_group_data[egroup]["email"] | ||||
| 
 | ||||
|       elsif @email_group_data.include?(egroup) and egroup == '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.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 | ||||
|    | ||||
|   # def get_categorys(id = nil) | ||||
|   #   @bulletin_categorys = [] | ||||
|   #   if(is_manager? || is_admin?) | ||||
|  |  | |||
|  | @ -1,3 +1,4 @@ | |||
| # encoding: utf-8 | ||||
| class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController | ||||
|   include OrbitControllerLib::DivisionForDisable | ||||
| 
 | ||||
|  | @ -77,6 +78,9 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController | |||
|   # GET /bulletins/new | ||||
|   # GET /bulletins/new.xml | ||||
|   def new | ||||
| 
 | ||||
|     email_group_data | ||||
| 
 | ||||
|     if(session[:in_validate_object].blank?) | ||||
|       @bulletin = Bulletin.new(:postdate => DateTime.now) | ||||
|     else | ||||
|  | @ -94,6 +98,9 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController | |||
| 
 | ||||
|   # GET /bulletins/1/edit | ||||
|   def edit | ||||
| 
 | ||||
|     email_group_data | ||||
| 
 | ||||
|     @bulletin = Bulletin.find(params[:id]) | ||||
|     if !current_user.admin? && (@bulletin.is_rejected? || @bulletin.is_checked?) | ||||
|       redirect_to :action => :index | ||||
|  | @ -146,6 +153,13 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController | |||
|       respond_to do |format| | ||||
|         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.xml  { render :xml => @bulletin, :status => :created, :location => @bulletin } | ||||
|           # format.js | ||||
|  | @ -226,6 +240,14 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController | |||
|             @bulletin.is_rejected = false | ||||
|             @bulletin.de_pending! | ||||
|           end | ||||
| 
 | ||||
|           # if @bulletin.email_sent == true && @bulletin.is_checked == true && !@bulletin.is_rejected | ||||
|           #   send_email_data(@bulletin) | ||||
| 
 | ||||
|           #   @bulletin.email_sent = false | ||||
|           #   @bulletin.save | ||||
|           # end | ||||
| 
 | ||||
|           # if (params[:bulletin][:is_checked] == "false") | ||||
|           #   @bulletin.is_rejected = true | ||||
|           #   @bulletin.save! | ||||
|  | @ -293,6 +315,69 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController | |||
| 
 | ||||
|   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 == '0' or egroup == '1' or egroup == '2' or egroup == '3') | ||||
| 
 | ||||
|         @group_mail << @email_group_data[egroup]["email"] | ||||
| 
 | ||||
|       elsif @email_group_data.include?(egroup) and egroup == '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.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 | ||||
| 
 | ||||
|   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?))  | ||||
|       params[:bulletin].delete("deadline(1i)") | ||||
|  |  | |||
|  | @ -41,6 +41,12 @@ class Bulletin | |||
|    | ||||
|   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) } | ||||
| 
 | ||||
|  | @ -215,9 +221,47 @@ class Bulletin | |||
|     preview_object | ||||
|   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 == '0' or egroup == '1' or egroup == '2' or egroup == '3') | ||||
| 
 | ||||
|         group_mail << "#{email_group_data[egroup]["email"]}(#{email_group_data[egroup]["name"]})" | ||||
| 
 | ||||
|       elsif email_group_data.include?(egroup) and egroup == '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 | ||||
| 
 | ||||
|   def self.email_group_data | ||||
| 
 | ||||
|     @email_group_data = {  | ||||
|       '0'=> {"name"=>I18n.t('announcement.email_group_data_0'), "email"=>"alluser@tea.ntue.edu.tw"},  | ||||
|       '1'=> {"name"=>I18n.t('announcement.email_group_data_1'), "email"=>"allstu@tea.ntue.edu.tw"},  | ||||
|       '2'=> {"name"=>I18n.t('announcement.email_group_data_2'), "email"=>"allgrad@tea.ntue.edu.tw"},  | ||||
|       '3'=> {"name"=>I18n.t('announcement.email_group_data_3'), "email"=>"allad@tea.ntue.edu.tw"},  | ||||
|       '4'=> {"name"=>I18n.t('announcement.email_group_data_4')} | ||||
|     } | ||||
|      | ||||
|   end | ||||
|    | ||||
|   def check_deadline | ||||
|     if(!self.deadline.nil? and (self.deadline < self.postdate )) | ||||
|       self.deadline = nil | ||||
|  |  | |||
							
								
								
									
										29
									
								
								vendor/built_in_modules/announcement/app/views/announcement_mailer/cron_mail.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										29
									
								
								vendor/built_in_modules/announcement/app/views/announcement_mailer/cron_mail.html.erb
								
								
								
									vendored
								
								
									Normal 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> | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   | ||||
|  | @ -14,6 +14,12 @@ | |||
| 			<%# preview_block_ad_images_helper(bulletin).each do |ad_image| -%> | ||||
| 				<%#= image_tag ad_image.file,:alt => (ad_image.title[locale] || " "),:time_to_next => bulletin.transition_msec,:link_open=> ad_image.link_open, :link_url =>((ad_image.out_link || bulletin.context || " ")) %> | ||||
| 			<%# end -%> | ||||
| 
 | ||||
| 			<% if !@bulletin.email_group.blank? %> | ||||
| 				<%= label_tag 'group_mail' %> | ||||
| 				<%= @bulletin.get_email_group_data(@email_group_data) %> | ||||
| 			<% end %> | ||||
| 
 | ||||
|     </p> | ||||
|   </div> | ||||
|   <div class="modal-footer"> | ||||
|  |  | |||
|  | @ -265,6 +265,50 @@ | |||
| 					 | ||||
| 					</div> | ||||
| 				</div> | ||||
| 
 | ||||
| 
 | ||||
|         <div id="widget" class="widget-box"> | ||||
|             <div class="widget-action clear"> | ||||
|                 <a class="action"><i title="Added to the file" class="icon-exclamation-sign icon-white tip"></i></a> | ||||
|             </div> | ||||
|             <h3 class="widget-title"><i class="icons-bell"></i><%= t('announcement.email_eminder')%></h3> | ||||
|             <div class="widget-content"> | ||||
|                 <div class="controls"> | ||||
|                     <label class="checkbox inline"><input id="remind-check" type="checkbox" value="1" name="bulletin[email_sent]"><%= t('announcement.activate_email_eminder')%></label> | ||||
|                     <div id="content-box"> | ||||
|                         <hr /> | ||||
| 
 | ||||
| 												<%#= f.datetime_picker :email_sentdate, :picker_type => 'separated', :label => t("announcement.email_sentdate") %> | ||||
| 												 | ||||
| 												<br />  | ||||
| 
 | ||||
| 				                <%= f.label :email_group ,t("announcement.email_group")%> | ||||
| 				                <div class="form-inline"> | ||||
| 				                    <ul class="nav nav-pills"> | ||||
| 														<% @email_group_data.collect do |k,v| %> | ||||
| 															<li class="pull-left"> | ||||
| 															<%= check_box_tag 'bulletin[email_group][]', k, (@bulletin.email_group.nil? ?  false : @bulletin.email_group.include?(k)), :id => "field-#{k}" %> | ||||
| 															<label for="field-<%= k %>"><%= v["name"] %></label> | ||||
| 															<%= hidden_field_tag 'bulletin[email_group][]', '' %> | ||||
| 															</li> | ||||
| 														<% end %> | ||||
| 				                    </ul> | ||||
| 				                </div> | ||||
| 
 | ||||
| 
 | ||||
| 										    <%= f.label :other_mailaddress ,"#{t("announcement.other_mailaddress")}(#{t("announcement.other_mailaddress_note")})"%> | ||||
| 												<%= f.text_area :other_mailaddress, :class=>"span12", :cols=>"25", :rows=>"10" %> | ||||
| 
 | ||||
|                     </div> | ||||
| 
 | ||||
| 
 | ||||
|                      | ||||
| 
 | ||||
|                 </div> | ||||
|             </div> | ||||
|         </div> | ||||
| 
 | ||||
| 
 | ||||
| 			</div>		 | ||||
| 	 | ||||
| 		</div> | ||||
|  | @ -300,6 +344,11 @@ | |||
| 			$(this).parents('table').append(("<%= escape_javascript(add_attribute 'form_bulletin_file', f, :bulletin_files) %>").replace(old_id, new_id)); | ||||
| 		}); | ||||
| 		$('.for_preview').popover({ html : true }); | ||||
| 	 | ||||
|     $('#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> | ||||
| <% end %> | ||||
|  |  | |||
|  | @ -38,3 +38,20 @@ en: | |||
|       bulletins_and_web_links: Differential Nav. | ||||
|       index: Index | ||||
|       search: Search | ||||
|     email_eminder: 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}】 | ||||
|     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 | ||||
| 
 | ||||
|  |  | |||
|  | @ -38,3 +38,21 @@ zh_tw: | |||
|       bulletins_and_web_links: 分眾頁籤 | ||||
|       index: 索引 | ||||
|       search: 搜尋 | ||||
|     email_eminder: 寄送提醒 | ||||
|     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_hi: 您好 | ||||
|     mail_url_view: 此封信件為公告事件提醒,請點選以下連結詳細觀看 | ||||
|     mail_source: 來源 | ||||
|     mail_time: 時間 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -0,0 +1,7 @@ | |||
| .bundle/ | ||||
| log/*.log | ||||
| pkg/ | ||||
| test/dummy/db/*.sqlite3 | ||||
| test/dummy/log/*.log | ||||
| test/dummy/tmp/ | ||||
| test/dummy/.sass-cache | ||||
|  | @ -0,0 +1,17 @@ | |||
| source "http://rubygems.org" | ||||
| 
 | ||||
| # Declare your gem's dependencies in er_email.gemspec. | ||||
| # Bundler will treat runtime dependencies like base dependencies, and | ||||
| # development dependencies will be added by default to the :development group. | ||||
| gemspec | ||||
| 
 | ||||
| # jquery-rails is used by the dummy application | ||||
| gem "jquery-rails" | ||||
| 
 | ||||
| # Declare any dependencies that are still in development here instead of in | ||||
| # your gemspec. These might include edge Rails or gems from your path or | ||||
| # Git. Remember to move these dependencies to your gemspec before releasing | ||||
| # your gem to rubygems.org. | ||||
| 
 | ||||
| # To use debugger | ||||
| # gem 'debugger' | ||||
|  | @ -0,0 +1,20 @@ | |||
| Copyright 2013 YOURNAME | ||||
| 
 | ||||
| Permission is hereby granted, free of charge, to any person obtaining | ||||
| a copy of this software and associated documentation files (the | ||||
| "Software"), to deal in the Software without restriction, including | ||||
| without limitation the rights to use, copy, modify, merge, publish, | ||||
| distribute, sublicense, and/or sell copies of the Software, and to | ||||
| permit persons to whom the Software is furnished to do so, subject to | ||||
| the following conditions: | ||||
| 
 | ||||
| The above copyright notice and this permission notice shall be | ||||
| included in all copies or substantial portions of the Software. | ||||
| 
 | ||||
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||||
| EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||||
| MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||||
| NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE | ||||
| LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION | ||||
| OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | ||||
| WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||||
|  | @ -0,0 +1,3 @@ | |||
| = ErEmail | ||||
| 
 | ||||
| This project rocks and uses MIT-LICENSE. | ||||
|  | @ -0,0 +1,40 @@ | |||
| #!/usr/bin/env rake | ||||
| begin | ||||
|   require 'bundler/setup' | ||||
| rescue LoadError | ||||
|   puts 'You must `gem install bundler` and `bundle install` to run rake tasks' | ||||
| end | ||||
| begin | ||||
|   require 'rdoc/task' | ||||
| rescue LoadError | ||||
|   require 'rdoc/rdoc' | ||||
|   require 'rake/rdoctask' | ||||
|   RDoc::Task = Rake::RDocTask | ||||
| end | ||||
| 
 | ||||
| RDoc::Task.new(:rdoc) do |rdoc| | ||||
|   rdoc.rdoc_dir = 'rdoc' | ||||
|   rdoc.title    = 'ErEmail' | ||||
|   rdoc.options << '--line-numbers' | ||||
|   rdoc.rdoc_files.include('README.rdoc') | ||||
|   rdoc.rdoc_files.include('lib/**/*.rb') | ||||
| end | ||||
| 
 | ||||
| APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__) | ||||
| load 'rails/tasks/engine.rake' | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Bundler::GemHelper.install_tasks | ||||
| 
 | ||||
| require 'rake/testtask' | ||||
| 
 | ||||
| Rake::TestTask.new(:test) do |t| | ||||
|   t.libs << 'lib' | ||||
|   t.libs << 'test' | ||||
|   t.pattern = 'test/**/*_test.rb' | ||||
|   t.verbose = false | ||||
| end | ||||
| 
 | ||||
| 
 | ||||
| task :default => :test | ||||
|  | @ -0,0 +1,23 @@ | |||
| class ApplicationController < ActionController::Base | ||||
|   protect_from_forgery | ||||
|   before_filter :set_locale | ||||
|    | ||||
|   # Set I18n.locale | ||||
|   def set_locale | ||||
|     # update session if passed | ||||
|     session[:locale] = params[:locale] if params[:locale] | ||||
| 
 | ||||
|     # set locale based on session or default | ||||
|     begin | ||||
|       # check if locale is valid for non site pages | ||||
|       if !VALID_LOCALES.include?(session[:locale]) | ||||
|         I18n.locale = I18n.default_locale | ||||
|       else | ||||
|         I18n.locale = session[:locale] | ||||
|       end | ||||
|      rescue | ||||
|        I18n.locale = I18n.default_locale | ||||
|      end     | ||||
|   end | ||||
|    | ||||
| end | ||||
							
								
								
									
										145
									
								
								vendor/built_in_modules/er_email/app/controllers/panel/er_email/back_end/approvals_controller.rb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										145
									
								
								vendor/built_in_modules/er_email/app/controllers/panel/er_email/back_end/approvals_controller.rb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,145 @@ | |||
| class Panel::ErEmail::BackEnd::ApprovalsController  < OrbitBackendController | ||||
|   before_filter :authenticate_user! | ||||
|   before_filter :is_admin? | ||||
|   include AdminHelper | ||||
|   # layout 'admin' | ||||
| 
 | ||||
|    | ||||
|   def preview_and_approve | ||||
|     email_group_data | ||||
|     @email_er = EmailEr.find params[:email_er_id] | ||||
|   end | ||||
|    | ||||
|   def approve | ||||
|     notice = "" | ||||
|     @email_er = EmailEr.find params[:email_er_id] | ||||
|     @email_er.proc_check(params[:email_er][:is_checked],params[:email_er][:not_checked_reason]) | ||||
|     @email_er.de_pending | ||||
|      if @email_er.save | ||||
| 
 | ||||
|         if @email_er.is_checked == true and !@email_er.is_rejected | ||||
|           send_email_data(@email_er) | ||||
|         end | ||||
| 
 | ||||
|         notice = t('er_email.approve_email_er_success') | ||||
|      else | ||||
|         notice = t('er_email.approve_email_er_fail') | ||||
|      end | ||||
|     redirect_to(panel_er_email_back_end_email_ers_url,:notice => notice) | ||||
|   end | ||||
|    | ||||
|   def setting | ||||
|     @sys_users = User.all(conditions: {admin: false}).includes(:avatar).not_guest_user | ||||
|     @email_er_categorys = EmailErCategory.all | ||||
|     @options_from_collection_for_select_email_er_categorys = @email_er_categorys.collect{|bc| [bc.title,bc.id] } | ||||
|     if params.has_key? :category | ||||
|       @email_er_category = EmailErCategory.find params[:category][:id] | ||||
|     else | ||||
|       @email_er_category =  @email_er_categorys.first | ||||
|     end | ||||
|     preload_object_auth = @email_er_category.get_object_auth_by_title('fact_check') | ||||
|     @users_array =  preload_object_auth.privilege_users rescue [] | ||||
|     respond_to do |format| | ||||
|       format.html | ||||
|       format.js | ||||
|     end | ||||
|   end | ||||
|    | ||||
|   def update_setting | ||||
|     object_auth = update_setting_by_params | ||||
|     if object_auth.save! | ||||
|       flash[:notice] = t('update.success_') | ||||
|     else | ||||
|       flash[:notice] = t('update.fail') | ||||
|     end | ||||
|   end | ||||
|    | ||||
|   def user_list | ||||
|     @email_er_category = EmailErCategory.find params[:category][:id] | ||||
|   end | ||||
| 
 | ||||
|   protected | ||||
|   def update_setting_by_params | ||||
|     category = EmailErCategory.find params[:category][:id] | ||||
|     privilege_users = params[:users].collect{|key,value| User.find key }  rescue [] | ||||
|     object_auth_ary = category.object_auths.where(title: 'fact_check') || (category.object_auths.create :title=> 'fact_check') | ||||
|     object_auth = object_auth_ary.first | ||||
|     object_auth.privilege_users = privilege_users | ||||
|     object_auth | ||||
|   end  | ||||
| 
 | ||||
|   def send_email_data(email_er) | ||||
| 
 | ||||
|     @user = User.find(email_er.create_user_id) | ||||
| 
 | ||||
|     email_group_data | ||||
| 
 | ||||
|     @group_mail = Array.new | ||||
| 
 | ||||
|     email_er.email_group.each do |egroup| | ||||
| 
 | ||||
|       if @email_group_data.include?(egroup) and (egroup == '0' or egroup == '1' or egroup == '2' or egroup == '3') | ||||
| 
 | ||||
|         @group_mail << @email_group_data[egroup]["email"] | ||||
| 
 | ||||
|       elsif @email_group_data.include?(egroup) and egroup == '4' | ||||
| 
 | ||||
|         @group_mail << email_er.other_mailaddress  | ||||
| 
 | ||||
|       end | ||||
| 
 | ||||
|     end | ||||
| 
 | ||||
|     if !@group_mail.join.blank? | ||||
| 
 | ||||
|       @mail_content = { | ||||
|         "text" => email_er.mail_content | ||||
|       } | ||||
| 
 | ||||
|       @mail_cron = {   | ||||
|         :mail_from_app => 'er_email', | ||||
|         :mail_from => @user.email, | ||||
|         :mail_reply_to => @user.email, | ||||
|         :mail_subject => email_er.mail_subject, | ||||
|         :mail_to => @group_mail.join(','), | ||||
|         :mail_content => @mail_content , | ||||
|         # :mail_sentdate => email_er.mail_sentdate, | ||||
|         :mail_sentdate => DateTime.now, | ||||
|         :create_user_id => email_er.create_user_id, | ||||
|         :update_user_id => email_er.create_user_id | ||||
|       }  | ||||
| 
 | ||||
|       @mail_cron = MailCron.new(@mail_cron) | ||||
| 
 | ||||
|       email_er.email_er_files.each do | mrfile | | ||||
| 
 | ||||
|         @mcfile = @mail_cron.mail_cron_files.build | ||||
| 
 | ||||
|         tmp_file = File.new(mrfile.file_identifier, 'w+') | ||||
|          | ||||
|         tmp_file.write(Mongo::GridFileSystem.new(Mongoid.database).open(mrfile.file.url.gsub("/gridfs/", ""), 'r').read.force_encoding("UTF-8")) | ||||
| 
 | ||||
|         @mcfile.file = tmp_file | ||||
| 
 | ||||
|         @mcfile.title =  mrfile.title | ||||
| 
 | ||||
|         # delete file | ||||
|         FileUtils.rm_f(tmp_file) | ||||
| 
 | ||||
|       end | ||||
| 
 | ||||
|       @mail_cron.save | ||||
| 
 | ||||
|       MailCron.send_mail_now(@mail_cron.id) | ||||
| 
 | ||||
|     end | ||||
|      | ||||
|   end | ||||
| 
 | ||||
|   def email_group_data | ||||
| 
 | ||||
|     @email_group_data =  EmailEr.email_group_data | ||||
|      | ||||
|   end | ||||
| 
 | ||||
| end | ||||
|  | @ -0,0 +1,128 @@ | |||
| class Panel::ErEmail::BackEnd::EmailErCategorysController < OrbitBackendController    | ||||
|   include OrbitControllerLib::DivisionForDisable | ||||
| 
 | ||||
|   before_filter :for_app_manager,:except => [:index,:get_categorys_json]  | ||||
|   before_filter :force_order_for_visitor,:only=>[:index,:get_categorys_json] | ||||
|   before_filter :force_order_for_user,:except => [:index,:get_categorys_json] | ||||
|   before_filter :for_app_sub_manager,:except => [:index,:get_categorys_json] | ||||
| 
 | ||||
|    | ||||
|   def index | ||||
|     @email_er_categorys =  get_categories_for_index("EmailErCategory")  | ||||
|     @email_er_category = EmailErCategory.new(:display => 'List') | ||||
| 	 | ||||
| 	  @url = panel_er_email_back_end_email_er_categorys_path | ||||
| 	 | ||||
|     respond_to do |format| | ||||
|       format.html # index.html.erb | ||||
|       format.js | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   def get_categorys_json | ||||
|     categorys = EmailErCategory.all | ||||
|     data = Array.new | ||||
| 
 | ||||
|     categorys.each do |c| | ||||
|       data << { | ||||
|         category: c.title,  | ||||
|         link: "#{url_for( :action => "index", | ||||
|                           :controller => "panel/er_email/back_end/email_ers", | ||||
|                           :format => :rss, | ||||
|                           :only_path => false, | ||||
|                           :inner=>true, | ||||
|                           :category_id => c )}" | ||||
|       } | ||||
|     end  | ||||
|     render :json => JSON.pretty_generate(data) | ||||
|   end  | ||||
| 
 | ||||
|   # GET /email_ers/1 | ||||
|   # GET /email_ers/1.xml | ||||
|   def show | ||||
|     @email_er_category = EmailErCategory.find(params[:id]) | ||||
| 
 | ||||
|     respond_to do |format| | ||||
|       format.html # show.html.erb | ||||
|       format.js | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   # GET /email_ers/new | ||||
|   # GET /email_ers/new.xml | ||||
|   def new | ||||
|     @email_er_category = EmailErCategory.new(:display => 'List') | ||||
| 
 | ||||
|     respond_to do |format| | ||||
|       format.html # new.html.erb | ||||
|       format.js | ||||
|     end | ||||
|   end | ||||
|    | ||||
|   # GET /email_ers/1/edit | ||||
|   def edit | ||||
|     @email_er_category = EmailErCategory.find(params[:id]) | ||||
| 	 | ||||
| 	@url = panel_er_email_back_end_email_er_category_path(@email_er_category) | ||||
| 
 | ||||
|     respond_to do |format| | ||||
|       format.html | ||||
|       format.js | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   # POST /email_ers | ||||
|   # POST /email_ers.xml | ||||
|   def create | ||||
|     @email_er_category = EmailErCategory.new(params[:email_er_category]) | ||||
| 
 | ||||
|     respond_to do |format| | ||||
|       if @email_er_category.save | ||||
|         format.html { redirect_to(panel_er_email_back_end_email_er_categorys_url, :notice => t('email_er_category.create_email_er_category_success')) } | ||||
|         format.js | ||||
|       else | ||||
|         format.html { render :action => "new" } | ||||
|         format.js { render action: "new" } | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   # PUT /email_ers/1 | ||||
|   # PUT /email_ers/1.xml | ||||
|   def update | ||||
|     @email_er_category = EmailErCategory.find(params[:id]) | ||||
| 	 | ||||
| 	@url = panel_er_email_back_end_email_er_category_path(@email_er_category) | ||||
| 
 | ||||
|     respond_to do |format| | ||||
|       if @email_er_category.update_attributes(params[:email_er_category]) | ||||
|         format.html { redirect_to(panel_er_email_back_end_email_er_categorys_url, :notice => t('email_er_category.update_email_er_category_success')) } | ||||
|         # format.xml  { head :ok } | ||||
|         format.js | ||||
|       else | ||||
|         format.html { render :action => "edit" } | ||||
|         format.js { render :action => "edit" } | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   # DELETE /email_ers/1 | ||||
|   # DELETE /email_ers/1.xml | ||||
|   def destroy | ||||
|     @email_er_category = EmailErCategory.find(params[:id]) | ||||
|     @email_er_category.disable = @email_er_category.disable ? false : true | ||||
| 
 | ||||
|     if @email_er_category.save!  | ||||
|       respond_to do |format| | ||||
|         flash[:notice] = t("update.success_") | ||||
|         # flash[:error] +=  @email_er_category.disable ?  t(:enable) : t(disable) | ||||
|         format.html { redirect_to(panel_er_email_back_end_email_er_categorys_url) } | ||||
|         # format.xml  { head :ok } | ||||
|         format.js  | ||||
|       end | ||||
|     else | ||||
|       flash[:error] = t("update.fail") | ||||
|       format.html { render :action => "index" } | ||||
|     end | ||||
|   end | ||||
| end | ||||
							
								
								
									
										318
									
								
								vendor/built_in_modules/er_email/app/controllers/panel/er_email/back_end/email_ers_controller.rb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										318
									
								
								vendor/built_in_modules/er_email/app/controllers/panel/er_email/back_end/email_ers_controller.rb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,318 @@ | |||
| class Panel::ErEmail::BackEnd::EmailErsController < OrbitBackendController | ||||
|   # before_filter :for_app_manager,:except => [:index,:show]  | ||||
|   include OrbitControllerLib::DivisionForDisable | ||||
| 
 | ||||
| 
 | ||||
|   before_filter :force_order_for_user | ||||
| 
 | ||||
| 
 | ||||
|   before_filter :only => [ :new,:edit,:update,:create] do |controller| | ||||
|     controller.get_categorys('EmailErCategory') | ||||
|   end | ||||
| 
 | ||||
|   def preview | ||||
|     email_er = EmailEr.new params | ||||
|     @preview_obj = email_er.to_preview | ||||
|     @preview_obj.save | ||||
|     render '/shared/preview/preview.html.erb',:layout=>false | ||||
|   end | ||||
| 
 | ||||
|   def index | ||||
| 
 | ||||
|     get_categorys("EmailErCategory",params[:email_er_category_id]) | ||||
| 
 | ||||
|     email_group_data | ||||
| 
 | ||||
|     @filter = params[:filter] | ||||
|     new_filter = params[:new_filter] | ||||
| 
 | ||||
|     if @filter && params[:clear] | ||||
|       @filter.delete(params[:type]) | ||||
|     elsif @filter && new_filter | ||||
|       if @filter.has_key?(new_filter[:type]) && @filter[new_filter[:type]].include?(new_filter[:id].to_s) | ||||
|         @filter[new_filter[:type]].delete(new_filter[:id].to_s) | ||||
|       elsif @filter.has_key?(new_filter[:type]) | ||||
|         @filter[new_filter[:type]] << new_filter[:id].to_s | ||||
|       else | ||||
|         @filter.merge!({new_filter[:type] => [new_filter[:id].to_s]}) | ||||
|       end | ||||
|     elsif new_filter | ||||
|       @filter = {new_filter[:type] => [new_filter[:id].to_s]} | ||||
|     end | ||||
| 
 | ||||
|     @email_er_categories = get_categories_for_index("EmailErCategory") | ||||
|     @email_er_category_ids = @email_er_categories.collect{|t| t.id.to_s} + [nil] | ||||
| 
 | ||||
|     @email_ers = (params[:sort] || @filter) ? get_sorted_and_filtered("email_er",:email_er_category_id.in => @email_er_category_ids) : get_viewable("email_er",:email_er_category_id.in => @email_er_category_ids) | ||||
| 
 | ||||
|     respond_to do |format| | ||||
|       format.html # index.html.erb | ||||
|       format.xml  { render :xml => @email_ers } | ||||
|       format.js | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   # GET /email_ers/1 | ||||
|   # GET /email_ers/1.xml | ||||
| 
 | ||||
|   def show | ||||
|      | ||||
|     email_group_data | ||||
| 
 | ||||
|     @item = Page.find(params[:page_id]) rescue nil | ||||
|     if params[:preview] == "true" | ||||
|       preview_content | ||||
|     else | ||||
|       @email_er = EmailEr.all.can_display.where(_id: params[:id]).first | ||||
|       if @email_er and !@email_er.disable? and !@email_er.is_rejected | ||||
|         if @email_er.enabled_for_lang(I18n.locale.to_s) | ||||
|           delayed_impressionist(@email_er) | ||||
|           # get_categorys  | ||||
|         else | ||||
|           render :text => "<div class='alert alert-error'>#{t('sys.can_not_display_due_to_no_context')}</div>".html_safe  | ||||
|         end | ||||
|       else | ||||
|         render :nothing => true, :status => 403 | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
|   end | ||||
| 
 | ||||
|   def preview_content | ||||
|     @email_er = EmailEr.find params[:id] rescue nil | ||||
|     @email_er = Preview.find(params[:id]).get_virtual_object if @email_er.nil? | ||||
|     # get_categorys | ||||
|   end | ||||
| 
 | ||||
|   # GET /email_ers/new | ||||
|   # GET /email_ers/new.xml | ||||
|   def new | ||||
| 
 | ||||
|     email_group_data | ||||
| 
 | ||||
|     @email_er = EmailEr.new(:mail_sentdate => DateTime.now) | ||||
| 
 | ||||
|     respond_to do |format| | ||||
|       format.html # new.html.erb | ||||
|       format.xml  { render :xml => @email_er } | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   # GET /email_ers/1/edit | ||||
|   def edit | ||||
| 
 | ||||
|     email_group_data | ||||
| 
 | ||||
|     @email_er = EmailEr.find(params[:id]) | ||||
| 
 | ||||
|   end | ||||
| 
 | ||||
|   # POST /email_ers | ||||
|   # POST /email_ers.xml | ||||
|   def create | ||||
| 
 | ||||
|     email_group_data | ||||
| 
 | ||||
|     @email_er = EmailEr.new(params[:email_er]) | ||||
|     @email_er.create_user_id = current_user.id | ||||
|     @email_er.update_user_id = current_user.id | ||||
| 
 | ||||
|     if(is_manager? || is_admin?) | ||||
|       @email_er.is_checked = true | ||||
|       @email_er.is_rejected = false | ||||
|       @email_er.de_pending | ||||
|     end | ||||
| 
 | ||||
|     respond_to do |format| | ||||
|       if @email_er.save | ||||
| 
 | ||||
|           # if @email_er.is_checked == true and !@email_er.is_rejected | ||||
|           #   send_email_data(@email_er) | ||||
|           # end | ||||
| 
 | ||||
|         format.html { redirect_to(panel_er_email_back_end_email_ers_url) } | ||||
|         format.xml  { render :xml => @email_er, :status => :created, :location => @email_er } | ||||
|         # format.js | ||||
|         format.js {  | ||||
|           @info = {"success"=>"true","redirect_url"=>panel_er_email_back_end_email_ers_url} | ||||
|           flash[:notice] = t('er_email.create_er_email_success') | ||||
|           render "/shared/preview/after_create.js.erb" | ||||
|         } | ||||
|       else | ||||
|         format.html { render :action => "new" } | ||||
|         format.xml  { render :xml => @email_er.errors, :status => :unprocessable_entity } | ||||
|         format.js {  | ||||
|           @info = {"success"=>"false","redirect_url"=>new_panel_er_email_back_end_email_er_url(:email_er => @email_er)} | ||||
|           session[:in_validate_object] = @email_er | ||||
|           render "/shared/preview/after_create.js.erb" | ||||
|         } | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   # PUT /email_ers/1 | ||||
|   # PUT /email_ers/1.xml | ||||
|   def update | ||||
| 
 | ||||
|     email_group_data | ||||
| 
 | ||||
|     @email_er = EmailEr.find(params[:id]) | ||||
| 	 | ||||
|     @email_er.update_user_id = current_user.id  | ||||
| 
 | ||||
|     respond_to do |format| | ||||
|       if @email_er.update_attributes(params[:email_er]) | ||||
| 
 | ||||
|         if(is_manager? || is_admin?) | ||||
|           @email_er.is_checked = true | ||||
|           @email_er.is_rejected = false | ||||
|           @email_er.de_pending! | ||||
|         end | ||||
| 
 | ||||
|         if @email_er.is_checked == true and !@email_er.is_rejected | ||||
|           send_email_data(@email_er) | ||||
|         end | ||||
| 
 | ||||
|         format.html { redirect_to(panel_er_email_back_end_email_ers_url(:page => params[:page])) } | ||||
|         format.xml  { head :ok } | ||||
|       else | ||||
|         format.html { render :action => "edit" } | ||||
|         format.xml  { render :xml => @email_er.errors, :status => :unprocessable_entity } | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   # DELETE /email_ers/1 | ||||
|   # DELETE /email_ers/1.xml | ||||
|   def destroy | ||||
|     @email_er = EmailEr.find(params[:id]) | ||||
|     @email_er.destroy | ||||
| 
 | ||||
|     respond_to do |format| | ||||
|       format.html { redirect_to(panel_er_email_back_end_email_ers_url) } | ||||
|       # format.xml  { head :ok } | ||||
|       format.js | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   def delete | ||||
|     if params[:ids] | ||||
|       # email_ers = EmailEr.any_in(:_id => params[:ids]).destroy_all | ||||
|     end | ||||
|     redirect_to panel_er_email_back_end_email_ers_url(:direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options]) | ||||
|   end | ||||
| 
 | ||||
|   def email_resend | ||||
|     if params[:id] | ||||
|       @email_er = EmailEr.find(params[:id]) | ||||
| 
 | ||||
|       @email_er.is_checked = false | ||||
|       @email_er.is_pending = true | ||||
| 
 | ||||
|       @email_er.save | ||||
| 
 | ||||
|     end | ||||
|     redirect_to panel_er_email_back_end_email_ers_url(:direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options]) | ||||
|   end | ||||
| 
 | ||||
|   def test_send_email | ||||
|     if params[:id] | ||||
|       @email_er = EmailEr.find(params[:id]) | ||||
|        | ||||
|       if (@email_er.create_user_id ==  current_or_guest_user.id) || is_manager? | ||||
|         if current_or_guest_user.admin? || (!@email_er.is_rejected? && !@email_er.is_checked?) | ||||
|           if @email_er.is_pending | ||||
|             send_email_data( @email_er , true ) | ||||
|           end | ||||
|         end | ||||
|       end | ||||
|     end | ||||
|     redirect_to panel_er_email_back_end_email_ers_url(:direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options]) | ||||
|   end | ||||
| 
 | ||||
|   protected | ||||
| 
 | ||||
|   def send_email_data(email_er , test_send = false) | ||||
| 
 | ||||
|     @user = User.find(email_er.create_user_id) | ||||
| 
 | ||||
|     if !test_send | ||||
| 
 | ||||
|       email_group_data | ||||
| 
 | ||||
|       @group_mail = Array.new | ||||
| 
 | ||||
|       email_er.email_group.each do |egroup| | ||||
| 
 | ||||
|         if @email_group_data.include?(egroup) and (egroup == '0' or egroup == '1' or egroup == '2' or egroup == '3') | ||||
| 
 | ||||
|           @group_mail << @email_group_data[egroup]["email"] | ||||
| 
 | ||||
|         elsif @email_group_data.include?(egroup) and egroup == '4' | ||||
| 
 | ||||
|           @group_mail << email_er.other_mailaddress  | ||||
| 
 | ||||
|         end | ||||
| 
 | ||||
|       end | ||||
| 
 | ||||
|     else | ||||
| 
 | ||||
|       # @group_mail = ["spen@rulingcom.com"]   | ||||
|       @group_mail = [@user.email] | ||||
| 
 | ||||
|     end | ||||
| 
 | ||||
|     if !@group_mail.join.blank? | ||||
| 
 | ||||
|       @mail_content = { | ||||
|         "text" => email_er.mail_content | ||||
|       } | ||||
| 
 | ||||
|       @mail_cron = {   | ||||
|         :mail_from_app => 'er_email', | ||||
|         :mail_from => @user.email, | ||||
|         :mail_reply_to => @user.email, | ||||
|         :mail_subject => email_er.mail_subject, | ||||
|         :mail_to => @group_mail.join(','), | ||||
|         :mail_content => @mail_content , | ||||
|         # :mail_sentdate => email_er.mail_sentdate, | ||||
|         :mail_sentdate => DateTime.now, | ||||
|         :create_user_id => email_er.create_user_id, | ||||
|         :update_user_id => email_er.create_user_id | ||||
|       }  | ||||
| 
 | ||||
|       @mail_cron = MailCron.new(@mail_cron) | ||||
| 
 | ||||
|       email_er.email_er_files.each do | mrfile | | ||||
| 
 | ||||
|         @mcfile = @mail_cron.mail_cron_files.build | ||||
| 
 | ||||
|         tmp_file = File.new(mrfile.file_identifier, 'w+') | ||||
|          | ||||
|         tmp_file.write(Mongo::GridFileSystem.new(Mongoid.database).open(mrfile.file.url.gsub("/gridfs/", ""), 'r').read.force_encoding("UTF-8")) | ||||
| 
 | ||||
|         @mcfile.file = tmp_file | ||||
| 
 | ||||
|         @mcfile.title =  mrfile.title | ||||
| 
 | ||||
|         # delete file | ||||
|         FileUtils.rm_f(tmp_file) | ||||
| 
 | ||||
|       end | ||||
| 
 | ||||
|       @mail_cron.save | ||||
| 
 | ||||
|       MailCron.send_mail_now(@mail_cron.id) | ||||
| 
 | ||||
|     end | ||||
|      | ||||
|   end | ||||
| 
 | ||||
|   def email_group_data | ||||
| 
 | ||||
|     @email_group_data =  EmailEr.email_group_data | ||||
|      | ||||
|   end | ||||
|    | ||||
| end | ||||
|  | @ -0,0 +1,16 @@ | |||
| module Panel::ErEmail::BackEnd::EmailErCategorysHelper | ||||
| include ActionView::Helpers::UrlHelper | ||||
| 
 | ||||
|    | ||||
|   def show_anc_cate_permission_link(email_er_category) | ||||
|     type = 'submit' | ||||
|     oa = email_er_category.get_object_auth_by_title(type) | ||||
|     if oa.nil? | ||||
|       email_er_category.object_auths.new(title: type ).save | ||||
|       oa = email_er_category.get_object_auth_by_title(type) | ||||
|     end | ||||
| #    link_to t(:category_auth), edit_admin_object_auth_path(oa) | ||||
|      link_to t(:category_auth),admin_object_auth_ob_auth_path(oa) | ||||
|   end | ||||
| 
 | ||||
| end | ||||
							
								
								
									
										58
									
								
								vendor/built_in_modules/er_email/app/helpers/panel/er_email/back_end/email_ers_helper.rb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										58
									
								
								vendor/built_in_modules/er_email/app/helpers/panel/er_email/back_end/email_ers_helper.rb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,58 @@ | |||
| module Panel::ErEmail::BackEnd::EmailErsHelper | ||||
|   def show_reject_reason(email_er) | ||||
|     by_email_er = email_er.is_rejected | ||||
|     by_user = (((email_er.create_user_id == current_user.id) rescue nil) or is_manager? or is_admin?) | ||||
|     by_email_er && by_user | ||||
|   end | ||||
| 
 | ||||
|   def show_form_status_field(email_er) | ||||
|     #by_email_er = (!email_er.is_expired? and email_er.is_pending?) | ||||
|     by_user = ((email_er.email_er_category.authed_users('fact_check').include?(current_user) rescue nil) or is_manager? or is_admin?) | ||||
|     by_user | ||||
|   end | ||||
| 
 | ||||
|   def show_approval_link(email_er) | ||||
|     by_email_er = (email_er.is_pending?) | ||||
|     by_user = ((email_er.email_er_category.authed_users('fact_check').include?(current_user) rescue nil) or is_manager? or is_admin?) | ||||
|     by_email_er and  by_user | ||||
|   end | ||||
| 
 | ||||
|   def show_delete_link(email_er) | ||||
|     if !current_user.nil? | ||||
|       by_email_er = (email_er.create_user_id == current_user.id )  | ||||
|       by_user = (is_manager? or is_admin?) | ||||
|       by_email_er or  by_user   | ||||
|     else | ||||
|       false | ||||
|     end | ||||
|      | ||||
|   end | ||||
| 
 | ||||
|   def show_email_er_title_at_index (email_er) | ||||
|     if email_er.is_checked? | ||||
|       link_to email_er.title, panel_er_email_front_end_email_er_path(email_er, :category_id => email_er.email_er_category.id) rescue '' | ||||
|     else | ||||
|       email_er.title | ||||
|     end   | ||||
|   end | ||||
| 
 | ||||
|   def file_picture_preview_setting(file_path) | ||||
|     ext = File.extname(file_path)[1..-1].downcase | ||||
|     unless file_path.nil? | ||||
|       case ext | ||||
|         when "jpg","jpeg","png","gif" | ||||
|           {"data-content" => "#{image_tag file_path}" } | ||||
|         when "pdf", "zip", "rar" | ||||
|           {"data-content" => "#{image_tag("http://#{request.host_with_port}/assets/ft-icons/#{ext}/#{ext}-64_32.png")}"} | ||||
|         when "doc", "docx" | ||||
|           {"data-content" => "#{image_tag("http://#{request.host_with_port}/assets/ft-icons/docx_mac/docx_mac-64_32.png")}"} | ||||
|         when "xls", "xlsx" | ||||
|           {"data-content" => "#{image_tag("http://#{request.host_with_port}/assets/ft-icons/xlsx_mac/xlsx_mac-64_32.png")}"} | ||||
|         when "ppt", "pptx" | ||||
|           {"data-content" => "#{image_tag("http://#{request.host_with_port}/assets/ft-icons/pptx_mac/pptx_mac-64_32.png")}"} | ||||
|         else | ||||
|           {"data-content" => t("sys.not_previewable") } | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| end | ||||
|  | @ -0,0 +1,123 @@ | |||
| # encoding: utf-8 | ||||
| 
 | ||||
| class EmailEr | ||||
|   include Mongoid::Document | ||||
|   include Mongoid::Timestamps | ||||
|   include Mongoid::MultiParameterAttributes | ||||
|    | ||||
|   include OrbitCoreLib::Preview | ||||
| 
 | ||||
|   BelongsToCategory =  :email_er_category | ||||
|   include OrbitCoreLib::BelongsToCategoryMayDisable | ||||
| 
 | ||||
|   PAYMENT_TYPES = @site_valid_locales  | ||||
| 
 | ||||
|   field :mail_subject  | ||||
|   field :mail_sentdate , :type => DateTime | ||||
|   field :mail_content  | ||||
|    | ||||
|   field :create_user_id | ||||
|   field :update_user_id | ||||
| 
 | ||||
|   field :is_checked, :type => Boolean, :default => false | ||||
|   field :is_pending, :type => Boolean, :default => true  | ||||
|   field :is_rejected, :type => Boolean, :default => false   | ||||
|    | ||||
|   field :not_checked_reason   | ||||
| 
 | ||||
|   field :email_group, :type => Array | ||||
|   field :other_mailaddress | ||||
| 
 | ||||
|   scope :can_display,where(is_hidden: false) | ||||
| 
 | ||||
|   has_many :email_er_files, :autosave => true, :dependent => :destroy | ||||
| 
 | ||||
|   accepts_nested_attributes_for :email_er_files, :allow_destroy => true | ||||
|    | ||||
|   validates :mail_subject,presence:{message:'blank is not allowed'} | ||||
|   validates :other_mailaddress,  | ||||
|             :length => {:maximum => 1000, :message => I18n.t("er_email.other_mailaddress_note_limit")} | ||||
| 
 | ||||
|   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 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 == '0' or egroup == '1' or egroup == '2' or egroup == '3') | ||||
| 
 | ||||
|         group_mail << "#{email_group_data[egroup]["email"]}(#{email_group_data[egroup]["name"]})" | ||||
| 
 | ||||
|       elsif email_group_data.include?(egroup) and egroup == '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 | ||||
| 
 | ||||
|   def to_preview | ||||
|     preview_object = Preview.new(:expired_at=>DateTime.now+30.minutes,:preview_at_link=>"panel_er_email_back_end_email_er_path",:object_class_type=>"EmailEr") | ||||
| 
 | ||||
|     self.email_er["email_er_files_attributes"].each_with_index do |atr,idx|  | ||||
|       preview_object.preview_files.build(:file=>self.email_er["email_er_files_attributes"][idx.to_s],:field_name_for_rebuild=>'email_er_files',:file_in_array=>true) | ||||
|     end unless self.email_er["email_er_files_attributes"].nil? | ||||
| 
 | ||||
|     preview_object.object = self.email_er.except("email_er_files_attributes") | ||||
|     preview_object | ||||
|   end | ||||
| 
 | ||||
|   protected | ||||
| 
 | ||||
|   def self.email_group_data | ||||
| 
 | ||||
|     @email_group_data = {  | ||||
|       '0'=> {"name"=>I18n.t('er_email.email_group_data_0'), "email"=>"alluser@tea.ntue.edu.tw"},  | ||||
|       '1'=> {"name"=>I18n.t('er_email.email_group_data_1'), "email"=>"allstu@tea.ntue.edu.tw"},  | ||||
|       '2'=> {"name"=>I18n.t('er_email.email_group_data_2'), "email"=>"allgrad@tea.ntue.edu.tw"},  | ||||
|       '3'=> {"name"=>I18n.t('er_email.email_group_data_3'), "email"=>"allad@tea.ntue.edu.tw"},  | ||||
|       '4'=> {"name"=>I18n.t('er_email.email_group_data_4')} | ||||
|     } | ||||
|      | ||||
|   end | ||||
|    | ||||
| end | ||||
|  | @ -0,0 +1,47 @@ | |||
| # encoding: utf-8 | ||||
| 
 | ||||
| class EmailErCategory | ||||
|   include Mongoid::Document | ||||
|   include Mongoid::Timestamps | ||||
|   include OrbitCoreLib::ObjectAuthable | ||||
|   include OrbitCoreLib::ObjectDisable | ||||
|   include Sunspot::Mongo | ||||
|   # include Mongoid::MultiParameterAttributes | ||||
|   APP_NAME = 'ErEmail' | ||||
|   ObjectAuthTitlesOptions = %W{submit_new fact_check} | ||||
|   AfterObjectAuthUrl = '/panel/er_email/back_end/email_er_categorys' | ||||
|    | ||||
|   field :disable, type: Boolean, :default => false | ||||
|   field :display | ||||
|   field :key   | ||||
|   field :title, localize: true | ||||
|    | ||||
|   has_many :email_ers | ||||
| 
 | ||||
|   validates :title, :at_least_one => true | ||||
|    | ||||
|   searchable do | ||||
|     text :titles do | ||||
|       title_translations.to_a.collect{|t| t[1]} | ||||
|     end | ||||
| 
 | ||||
|     boolean :frontend_search do | ||||
|       !disable | ||||
|     end | ||||
| 
 | ||||
|     text :files do | ||||
|       email_ers.can_display.collect{|t| t.title_translations.to_a.collect{|t| t[1]}} | ||||
|     end | ||||
| 
 | ||||
|   end | ||||
| 
 | ||||
| 
 | ||||
|   def pp_object | ||||
|     title | ||||
|   end | ||||
| 
 | ||||
|   def self.from_id(id) | ||||
|     EmailErCategory.find(id) rescue nil | ||||
|   end | ||||
|    | ||||
| end | ||||
|  | @ -0,0 +1,23 @@ | |||
| class EmailErFile | ||||
| 
 | ||||
|   include Mongoid::Document | ||||
|   include Mongoid::Timestamps | ||||
| 
 | ||||
|   mount_uploader :file, AssetUploader | ||||
| 
 | ||||
|   field :should_destroy, :type => Boolean   | ||||
|   field :title | ||||
|    | ||||
|   belongs_to :email_er | ||||
| 
 | ||||
|   validate :file_size | ||||
| 
 | ||||
| 	private | ||||
| 
 | ||||
|   def file_size | ||||
|     if file.file.size > 1.megabytes | ||||
|       errors.add( :file,  I18n.t("er_email.email_file_limit")) | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
| end | ||||
|  | @ -0,0 +1,68 @@ | |||
|  <% if email_er -%> | ||||
| 
 | ||||
| <div class="modal hide fade in banner-preview" id="email_er-<%=email_er.id%>"> | ||||
|   <div class="modal-header"> | ||||
|     <a class="close" data-dismiss="modal">×</a> | ||||
|     <h3><%= t(:preview) %></h3> | ||||
|   </div> | ||||
|   <div class="modal-body"> | ||||
|     <p class="email_er_slideshow"> | ||||
| 			<iframe src=<%= panel_er_email_back_end_email_er_path(email_er, :category_id => email_er.email_er_category.id ,:preview=>true) %> style="width:1024px;height:300px" > | ||||
| 
 | ||||
| 			</iframe>  | ||||
| 
 | ||||
| 			<% if !@email_er.email_group.blank? %> | ||||
| 				<%= label_tag 'group_mail' %> | ||||
| 				<%= @email_er.get_email_group_data(@email_group_data) %> | ||||
| 			<% end %> | ||||
| 
 | ||||
|     </p> | ||||
|   </div> | ||||
|   <div class="modal-footer"> | ||||
| 		 | ||||
| 		<%= form_for email_er, :url => panel_er_email_back_end_email_er_approve_path(email_er),:method => :post, :html => {:class => 'clear'} do |f| %> | ||||
| 		<%= f.label :approval_stat, t('approval.stat') %> | ||||
| 			<%= content_tag :label,:class => "radio inline" do -%> | ||||
| 				<%= f.radio_button :is_checked, true , {:class => 'privacy'} %>  | ||||
| 				<%= t('approval.pass') %> | ||||
| 			<% end -%> | ||||
| 			<%= content_tag :label,:class => "radio inline" do -%> | ||||
| 				<%= f.radio_button :is_checked, false, (!@email_er.is_checked ? {:checked => true, :class => 'privacy'} : {})%>  | ||||
| 				<%= t('approval.not_pass') %> | ||||
| 			<% end -%> | ||||
| 
 | ||||
| 				<%= label :is_checked_false, t('approval.not_pass_reason') %> | ||||
| 			    <%= f.text_field :not_checked_reason %> | ||||
| 			<%= f.submit t(:submit_approval),:class=>"btn"%> | ||||
| 		<% end %> | ||||
| 
 | ||||
|     <a href="#" class="btn" data-dismiss="modal"><%= t(:close) %></a> | ||||
|   </div> | ||||
|   <div> | ||||
|   	<script type="text/javascript" src="/static/kernel.js"></script> | ||||
| 		<script type="text/javascript"> | ||||
| 			$(document).ready(function() { | ||||
| 	  | ||||
| 		$(".modal").on("hidden", function () { | ||||
| 	  $("#show_preview").remove(); | ||||
| 			}); | ||||
| 			 | ||||
| 			$("iframe").load(function(){ | ||||
|           // Get the body element | ||||
|           var frameBody = $("iframe").contents().find("body"); | ||||
| 
 | ||||
|           // Get all links inside the BODY tag | ||||
|           $('a', frameBody).click(function(e){ | ||||
|                   //Disable all default actions        | ||||
|                   e.preventDefault(); | ||||
|           }); | ||||
| 					$('input', frameBody).attr("disabled", true); | ||||
|       }); | ||||
| 		}); | ||||
| 		</script> | ||||
| 	</div> | ||||
| </div> | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| <% end -%> | ||||
|  | @ -0,0 +1,44 @@ | |||
| <% if email_er_category -%> | ||||
| 
 | ||||
| <div class="modal hide fade in" id="email_er_category-<%=email_er_category.id%>"> | ||||
|   <div class="modal-header"> | ||||
|     <a class="close" data-dismiss="modal">×</a> | ||||
|     <h3><%= t("approval.user_list") %></h3> | ||||
|   </div> | ||||
|   <div class="modal-body"> | ||||
| 		<div class="clear"> | ||||
| 			<% email_er_category.get_object_auth_by_title('fact_check').auth_users.each do |user| %> | ||||
| 			<div class="checkbox clear checked"> | ||||
| 					<div class='member-avatar'> | ||||
| 						<% if user.avatar? %> | ||||
| 							<%= image_tag(user.avatar.thumb.url,:class => "member-img") %> | ||||
| 						<% else %> | ||||
| 							<%= image_tag "person.png",:class => "member-img" %> | ||||
| 						<% end %>	 | ||||
| 					</div> | ||||
| 					<%= label_tag "lab-user-#{user.id}", (user.name rescue ''),:class=>"member-name",:id=>nil -%> | ||||
| 			</div> | ||||
| 			<% end -%> | ||||
| 		<divl> | ||||
|   </div> | ||||
|   <div class="modal-footer"> | ||||
|     <a href="#" class="btn" data-dismiss="modal"><%= t(:close) %></a> | ||||
|   </div> | ||||
|   <div> | ||||
|   	<script type="text/javascript" src="/static/kernel.js"></script> | ||||
| 		<script type="text/javascript"> | ||||
| 			$(document).ready(function() { | ||||
| 	 | ||||
| 			$("#email_er_category-<%=email_er_category.id%>").on("show", function () { | ||||
| 			}); | ||||
| 		$(".modal").on("hidden", function () { | ||||
| 	  $("#show_preview").remove(); | ||||
| 			}); | ||||
| 		}); | ||||
| 		</script> | ||||
| 	</div> | ||||
| </div> | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| <% end -%> | ||||
|  | @ -0,0 +1,5 @@ | |||
| $('#show_preview').html("<%= escape_javascript(render(:partial => 'modal_approve',:locals => {:email_er => @email_er})) %>"); | ||||
| var start_modal_with_id = "email_er-<%=@email_er.id%>"; | ||||
| $("#"+start_modal_with_id).css("width","1050px"); | ||||
| $("#"+start_modal_with_id).css("height","768px"); | ||||
| $("#"+start_modal_with_id).css("margin","-270px 0 0 -550px"); | ||||
							
								
								
									
										53
									
								
								vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/approvals/setting.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										53
									
								
								vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/approvals/setting.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,53 @@ | |||
| <% content_for :page_specific_css do %> | ||||
| 	<%= stylesheet_link_tag "inc/permission-checkbox"  %> | ||||
| <% end %> | ||||
| <% content_for :page_specific_javascript do %> | ||||
| 	<%= javascript_include_tag "inc/permission-checkbox"  %> | ||||
| 	<%= javascript_include_tag "inc/search"  %> | ||||
| 	<%= javascript_include_tag "inc/modal-preview"  %> | ||||
| <% end %> | ||||
| <%= form_tag('', :remote => true,:class => "prevent_enter_submit_form")  %> | ||||
| <div class="subnav clear"> | ||||
|     <ul class="nav nav-pills filter pull-left"> | ||||
|         <li class="accordion-group"> | ||||
|             <div class="form-search" style="margin: 5px 10px;"> | ||||
|                 <%= label_tag :category, t(:category) %> | ||||
|                 <%= select "category",'id',@options_from_collection_for_select_email_er_categorys %> | ||||
| 								<%= search_field_tag 'user_filter' %> | ||||
|             </div> | ||||
|         </li> | ||||
|     </ul> | ||||
| 		<%= link_to t("approval.user_list"), panel_er_email_back_end_approval_user_list_path , :class=>'preview_trigger btn btn-success pull-right'%>	 | ||||
| </div> | ||||
| <%#= label_tag :role, t(:roles) %> | ||||
| <div class="clear"> | ||||
| <%= content_tag :div do -%> | ||||
| 	<% form_tag panel_er_email_back_end_approval_setting_path  do %> | ||||
|               <%= render :partial =>  "layouts/users_checkbox_ary"  %> | ||||
| 	<div class="form-actions form-fixed pagination-right"> | ||||
| 	<%= submit_tag t(:update_), :class => 'btn btn-primary' %> | ||||
| 	</div> | ||||
| 	<% end -%> | ||||
| <% end -%> | ||||
| </div> | ||||
| 
 | ||||
| <script type="text/javascript" charset="utf-8"> | ||||
| var availableTags = []; | ||||
| $(document).ready(function() { | ||||
| 	 | ||||
| 	$(".prevent_enter_submit_form").bind("keypress", function(e) { | ||||
| 		if (e.keyCode == 13) { | ||||
| 			return false; | ||||
| 		} | ||||
| 	}); | ||||
|     | ||||
| 	$('#category_id').change(function() { | ||||
| 		$.ajax({ | ||||
| 			type: 'GET', | ||||
| 			dataType: "script", | ||||
| 			url:$(this).parents("from").attr("href"), | ||||
| 			data:$(this).parents("form").serialize() | ||||
| 		}); | ||||
| 	}); | ||||
| }); | ||||
| </script> | ||||
							
								
								
									
										2
									
								
								vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/approvals/setting.js.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										2
									
								
								vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/approvals/setting.js.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,2 @@ | |||
| $("#users_checkbox_ary").replaceWith('<%= escape_javascript(render :partial=>  "layouts/users_checkbox_ary"  )%>'); | ||||
| permissionCheckbox(); | ||||
|  | @ -0,0 +1 @@ | |||
| alert( "<% flash.each do |key, msg| %><%= msg %><% end%>"); | ||||
|  | @ -0,0 +1,2 @@ | |||
| $('#show_preview').html("<%= escape_javascript(render(:partial => 'modal_list',:locals => {:email_er_category => @email_er_category})) %>"); | ||||
| var start_modal_with_id = "email_er_category-<%=@email_er_category.id%>" | ||||
|  | @ -0,0 +1,19 @@ | |||
| 
 | ||||
| 
 | ||||
| 	<tr id="<%= dom_id email_er_category %>" class="with_action"> | ||||
| 		<td> | ||||
| 			<%= email_er_category.key %> | ||||
| 			<div class="quick-edit"> | ||||
| 				<ul class="nav nav-pills hide"> | ||||
| 					<li><%= link_to t(:edit), edit_panel_er_email_back_end_email_er_category_path(email_er_category), :remote => true %></li> | ||||
| 					<li><%= link_to show_toggle_archive_btn(email_er_category) , panel_er_email_back_end_email_er_category_path(email_er_category), :confirm => t(:sure?), :method => :delete, :remote => true,:class=> "archive_toggle" %></li>  | ||||
| 					<%if is_manager? || is_admin? %> | ||||
| 						<li><%= show_anc_cate_permission_link(email_er_category) %></li> | ||||
| 					<% end %> | ||||
| 				</ul> | ||||
| 			</div> | ||||
| 		</td> | ||||
| 		<% @site_valid_locales.each do |locale| %> | ||||
| 		<td><%= email_er_category.title_translations[locale] rescue nil %></td> | ||||
| 		<% end %> | ||||
| 	</tr> | ||||
|  | @ -0,0 +1,30 @@ | |||
| <% # encoding: utf-8 %> | ||||
| 
 | ||||
| <%= form_for(@email_er_category, :remote => true, :url => @url) do |f| %> | ||||
| 
 | ||||
| 	<h2><%= (@email_er_category.new_record? ? 'Add' : 'Edit') %></h2> | ||||
| 
 | ||||
| 	<div id="widget-title"> | ||||
| 		<%= f.label :key %> | ||||
| 		<%= f.text_field :key %> | ||||
| 	</div> | ||||
| 	 | ||||
| 	<div id="widget-title"> | ||||
| 		<%= f.fields_for :title_translations do |f| %> | ||||
| 		  <% @site_valid_locales.each do |locale| %> | ||||
| 				<div class="control-group"> | ||||
| 					<%= label_tag "name-#{locale}", "Name-#{I18nVariable.from_locale(locale)}", :class => 'control-label' %> | ||||
| 					<div class="controls"> | ||||
| 						<%= f.text_field locale, :class =>' input-xxlarge', :value => (@email_er_category.title_translations[locale] rescue nil) %> | ||||
| 					</div> | ||||
| 				</div> | ||||
| 		  <% end %> | ||||
| 		<% end %> | ||||
| 	</div> | ||||
|    | ||||
|   <div class="form-actions"> | ||||
|     <%= f.submit 'Submit/送出', :class=>'btn btn-primary' %> | ||||
|   </div> | ||||
|    | ||||
| <% end %> | ||||
|   | ||||
|  | @ -0,0 +1,2 @@ | |||
| $('<%= j render :partial => 'email_er_category', :collection => [@email_er_category] %>').appendTo('#email_er_categorys').hide().fadeIn(); | ||||
| $("#new_email_er_category")[0].reset(); | ||||
|  | @ -0,0 +1 @@ | |||
| $("#<%= dom_id @email_er_category %>").find(".archive_toggle").text("<%= show_toggle_archive_btn(@email_er_category) %>  "); | ||||
|  | @ -0,0 +1 @@ | |||
| $("#form > form").replaceWith("<%= j render "form" %>"); | ||||
|  | @ -0,0 +1,23 @@ | |||
| 
 | ||||
| 
 | ||||
| <%= flash_messages %> | ||||
| 
 | ||||
| <table id="email_er_categorys" class="table main-list"> | ||||
| 	<thead> | ||||
| 		<tr> | ||||
| 			<th class="span1-2"><%= t('email_er_category.key') %></th> | ||||
| 			<% @site_valid_locales.each do |locale| %> | ||||
| 			<th class="span1-2"><%= I18nVariable.first(:conditions => {:key => locale})[I18n.locale] %></th> | ||||
| 			<% end %> | ||||
| 		</tr> | ||||
| 	</thead> | ||||
| 	<tbody> | ||||
| 
 | ||||
| 	<%= render :partial => 'email_er_category', :collection => @email_er_categorys %> | ||||
| 	 | ||||
| 	</tbody> | ||||
| </table> | ||||
| 
 | ||||
| <div id="form"><%= render :partial => "form" %></div> | ||||
| 
 | ||||
| 
 | ||||
|  | @ -0,0 +1 @@ | |||
| $("#form > form").replaceWith("<%= j render "form" %>"); | ||||
|  | @ -0,0 +1,4 @@ | |||
| $("#<%= dom_id @email_er_category %>").replaceWith("<%= j render :partial => 'email_er_category', :collection => [@email_er_category] %>"); | ||||
| <% @email_er_category = EmailErCategory.new(:display => 'List') # reset for new form %> | ||||
| $(".edit_email_er_category").replaceWith("<%= j render "form" %>") | ||||
| $(".new_email_er_category")[0].reset(); | ||||
|  | @ -0,0 +1,3 @@ | |||
| <div class="filter-clear"> | ||||
| 	<%= link_to content_tag(:i, nil, :class => 'icons-cycle') + t(:clear), panel_archive_back_end_archive_files_path(:filter => @filter, :sort => params[:sort], :direction => params[:direction], :clear => true, :type => type), :class => "btn btn-small js_history" %> | ||||
| </div> | ||||
							
								
								
									
										61
									
								
								vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/_email_er.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										61
									
								
								vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/_email_er.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,61 @@ | |||
| <tr id="<%= dom_id email_er %>" class="with_action"> | ||||
| 	<td> | ||||
| 		<% if (email_er.create_user_id ==  current_or_guest_user.id) || is_manager? %> | ||||
| 			<%= check_box_tag 'to_delete[]', email_er.id, false, :class => "checkbox_in_list" %> | ||||
| 		<% end -%> | ||||
| 	</td> | ||||
| 	<td> | ||||
| 		<div class="label-group"> | ||||
| 			<div class="label-td"> | ||||
| 				<% if email_er.is_pending? %> | ||||
| 					<span class="label"><%= t(:pending) %></span> | ||||
| 				<% end %> | ||||
| 				<% if email_er.is_checked? %> | ||||
| 					<span class="label"><%= t(:passed) %></span> | ||||
| 				<% end %> | ||||
| 				<% if email_er.is_rejected? %> | ||||
| 					<span class="label"><%= t(:rejected) %></span> | ||||
| 				<% end %> | ||||
| 			</div> | ||||
| 		</div> | ||||
| 	</td> | ||||
|   <td> | ||||
|   	<%= email_er.email_er_category.title %> | ||||
|   </td> | ||||
|   <td class="span1"> | ||||
|       <%= email_er.mail_subject %> | ||||
|       <div class="quick-edit"> | ||||
|           <ul class="nav nav-pills hide"> | ||||
|               <%#if at_least_module_manager %> | ||||
| 
 | ||||
| 							<% if (email_er.create_user_id ==  current_or_guest_user.id) || is_manager? %> | ||||
| 								<% if current_or_guest_user.admin? || (!email_er.is_rejected? && !email_er.is_checked?) %> | ||||
| 
 | ||||
|               		<li><%= link_to t(:edit), edit_panel_er_email_back_end_email_er_path(email_er, :page => params[:page], :filter => @filter) %></li> | ||||
| 
 | ||||
|               		<% if email_er.is_pending %> | ||||
| 										<li><%= link_to t('er_email.test_send_email'), test_send_email_panel_er_email_back_end_email_ers_path(:id=>email_er.id), :confirm => t('sure?'), :controller => "email_er", :action => "test_send_email" %></li> | ||||
|               		<% end %> | ||||
| 
 | ||||
|               	<% end %> | ||||
| 								<li><%= link_to t(:delete_), panel_er_email_back_end_email_er_path(email_er), :confirm => t('sure?'), :method => :delete, :remote => true %></li> | ||||
| 
 | ||||
| 								<% if email_er.is_checked and !email_er.is_rejected %> | ||||
| 									<li><%= link_to t('er_email.email_resend'), email_resend_panel_er_email_back_end_email_ers_path(:id=>email_er.id), :confirm => t('sure?'), :controller => "email_er", :action => "email_resend" %></li> | ||||
|               	<% end %> | ||||
| 
 | ||||
|               <% end -%> | ||||
| 
 | ||||
| 							<% if show_approval_link(email_er) %> | ||||
| 								<li><%= link_to t(:approval_), panel_er_email_back_end_email_er_approval_preview_path(email_er),:class => 'preview_trigger' %></li><%#= #TODO add ancher so user can quick access into that part %> | ||||
| 							<% end %> | ||||
| 							<% if show_reject_reason(email_er)%> | ||||
| 								<li><%= link_to t('rejected_reason')+truncate(email_er.not_checked_reason, :length => 10),'#',:rel=>"tooltip" ,'data-original-title'=> (wrap_string_with(email_er.not_checked_reason, :line_width => 24)),:class=>'reject_info' %></li> | ||||
| 							<% end %> | ||||
|           </ul> | ||||
|       </div> | ||||
|   </td> | ||||
|   <td class="span2"> | ||||
|       <%= email_er.get_email_group_data(@email_group_data) %>  | ||||
|   </td> | ||||
| </tr> | ||||
							
								
								
									
										11
									
								
								vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/_filter.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										11
									
								
								vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/_filter.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,11 @@ | |||
| <div id="filter" class="subnav"> | ||||
| 	<div class="filters"> | ||||
| 		<div id="sort_headers" class="table-label"> | ||||
| 			<%= render 'sort_headers' %>  | ||||
| 		</div> | ||||
| 	</div> | ||||
| </div> | ||||
| 
 | ||||
| <% content_for :page_specific_javascript do %> | ||||
| 	<%= javascript_include_tag "sort_header" %> | ||||
| <% end %> | ||||
							
								
								
									
										115
									
								
								vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/_form.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										115
									
								
								vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/_form.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,115 @@ | |||
| <% # encoding: utf-8 %> | ||||
| 
 | ||||
| 	<% content_for :page_specific_javascript do -%> | ||||
| 		<%= javascript_include_tag "inc/modal-preview" %> | ||||
| 	<% end -%> | ||||
| 
 | ||||
|   <%= f.error_messages %> | ||||
| 
 | ||||
| <!--Post Start--> | ||||
| 
 | ||||
| 	<div id="post-body"> | ||||
| 		<div id="post-body-content" class="clear"> | ||||
| 
 | ||||
| 			<%= f.label :category,t(:category)%>  | ||||
| 			<%= f.select :email_er_category_id, @email_er_categorys.collect{|t| [ t.title, t.id ]}, {}, :class => "input-medium" %> | ||||
| 		 | ||||
| 			<%= f.label :mail_subject ,t("er_email.mail_subject")%>  | ||||
| 			<%= f.text_field :mail_subject %> | ||||
| 
 | ||||
|       <%= f.label :email_group ,t("er_email.email_group")%> | ||||
|       <div class="form-inline"> | ||||
|           <ul class="nav nav-pills"> | ||||
| 					<% @email_group_data.collect do |k,v| %> | ||||
| 						<li class="pull-left"> | ||||
| 						<%= check_box_tag 'email_er[email_group][]', k, (@email_er.email_group.nil? ?  false : @email_er.email_group.include?(k)), :id => "field-#{k}" %> | ||||
| 						<label for="field-<%= k %>"><%= v["name"] %></label> | ||||
| 						<%= hidden_field_tag 'email_er[email_group][]', '' %> | ||||
| 						</li> | ||||
| 					<% end %> | ||||
|           </ul> | ||||
|       </div> | ||||
| 
 | ||||
| 
 | ||||
| 	    <%= f.label :other_mailaddress ,"#{t("er_email.other_mailaddress")}(#{t("er_email.other_mailaddress_note")})(#{t("er_email.other_mailaddress_note_limit")})"%> | ||||
| 			<%= f.text_area :other_mailaddress, :class=>"span12", :rows=>"5" %> | ||||
| 
 | ||||
| 			<br /> | ||||
| 
 | ||||
| 			<div class="editor"> | ||||
| 				<%= f.label :mail_content ,t("er_email.mail_content")%>  | ||||
| 				<%= f.text_area :mail_content, :style=>"width:100%", :class => 'tinymce_textarea' %> | ||||
| 			</div> | ||||
| 
 | ||||
| 		</div> | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 		<div> | ||||
| 					 | ||||
| 			<div id='plugin_files' class="plugin_files_block"> | ||||
| 				 | ||||
| 			<table class="table table-condensed"> | ||||
| 				<thead> | ||||
| 					<tr> | ||||
| 						<th>File</th> | ||||
| 						<th>File Name</th> | ||||
| 						<th class="span1"></th> | ||||
| 					</tr> | ||||
| 				</thead> | ||||
| 				<tfoot> | ||||
| 					<tr> | ||||
| 						<td style="text-align:center" colspan="3"> | ||||
| 							<div id='add_plugin_file' class="info_input plugin_files_block"> | ||||
| 								<%= hidden_field_tag 'plugin_file_field_count', @email_er.email_er_files.count %> | ||||
| 								<a class="add"><span class="btn btn-primary btn-small"><i class="icon-plus icon-white"></i> ADD/新增</span></a> | ||||
| 								<p><%= t("sys.limit_of_upload_file_size",:best_size => '10MB') %></p> | ||||
| 								<p><%= t("sys.preview_only_for_img") %></p> | ||||
| 							</div> | ||||
| 						</td> | ||||
| 					</tr> | ||||
| 				 | ||||
| 				</tfoot> | ||||
| 				<tbody> | ||||
| 					 | ||||
| 					<% @email_er.email_er_files.each_with_index do |email_er_file, i| %> | ||||
| 						<%= f.fields_for :email_er_files, email_er_file do |f| %> | ||||
| 							<%= render :partial => 'form_file', :object => email_er_file, :locals => {:f => f, :i => i} %> | ||||
| 						<% end %> | ||||
| 					<% end %>	 | ||||
| 				</tbody> | ||||
| 			</table> | ||||
| 			 | ||||
| 			</div> | ||||
| 			 | ||||
| 		</div> | ||||
| 
 | ||||
| 
 | ||||
| <!--Post End--> | ||||
| 	</div> | ||||
| 
 | ||||
|    | ||||
| 	<div class="form-actions"> | ||||
| 	<%= button_tag t("preview"), :id=>"button_for_preview", :name=>"commit",:class=>'btn post_preview two_btn',:type=>:button,:url=>preview_panel_er_email_back_end_email_ers_path %> | ||||
| 	<%= f.submit t('submit'), :class=>'btn btn-primary' %> | ||||
| 	<%= link_to t('cancel'), get_go_back, :class=>"btn" %>  | ||||
| 	</div>  | ||||
| 
 | ||||
| 
 | ||||
| <% content_for :page_specific_javascript do %> | ||||
| 	<%= javascript_include_tag "archive_plugin_form" %> | ||||
| 	<%= javascript_include_tag "inc/jquery.imagesloaded.js" %> | ||||
| 	<script> | ||||
| 	$(document).ready(function() { | ||||
| 		$('#add_plugin_file a.add').live('click', function(){ | ||||
| 			var new_id = $(this).prev().attr('value'); | ||||
| 			var old_id = new RegExp("new_add_plugin_files", "g"); | ||||
| 			$(this).prev().attr('value', parseInt(new_id) + 1); | ||||
| 			$(this).parents('table').append(("<%= escape_javascript(add_attribute 'form_file', f, :email_er_files) %>").replace(old_id, new_id)); | ||||
| 		}); | ||||
| 		$('.for_preview').popover({ html : true });  | ||||
| 	}); | ||||
| 	</script> | ||||
| <% end %> | ||||
							
								
								
									
										37
									
								
								vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/_form_file.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										37
									
								
								vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/_form_file.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,37 @@ | |||
| <% # encoding: utf-8 %> | ||||
| 
 | ||||
| <%= f.error_messages %> | ||||
| 
 | ||||
| 		<tr id="<%= "plugin_file_#{form_file.id}" if !form_file.new_record? %>" class='list_item'> | ||||
| 			<td> | ||||
| 				<div class="control-group"> | ||||
| 					<div class="controls"> | ||||
| 					<%= f.file_field :file %> | ||||
| 					<%= form_file.file.file ? ( link_to t(:view), form_file.file.url, {:class => 'btn', :target => '_blank', :title => t(:view)} ) : '' %> | ||||
| 					</div> | ||||
| 				</div> | ||||
| 			</td>	 | ||||
| 			<td>	 | ||||
| 			 | ||||
| 				<div class="tab-content"> | ||||
| 
 | ||||
| 					<%= f.text_field :title %> | ||||
| 					 | ||||
| 				</div> | ||||
| 				 | ||||
| 			</td> | ||||
| 			 | ||||
| 			<td> | ||||
| 			<span class="action"> | ||||
| 			<% if form_file.new_record? %> | ||||
| 			  <a class="delete"><i class="icon-remove"></i></a> | ||||
| 			<% else %>	 | ||||
| 			  <%= f.hidden_field :id %> | ||||
| 			  <a class="remove_existing_record"><i class="icon-remove"></i></a> | ||||
| 			  <%= f.hidden_field :_destroy, :value => nil, :class => 'should_destroy' %> | ||||
| 			<% end %> | ||||
| 			</span> | ||||
| 			 | ||||
| 			</td> | ||||
| 		</tr> | ||||
| 		 | ||||
|  | @ -0,0 +1,5 @@ | |||
| <%= render_sort_bar(true, delete_panel_er_email_back_end_email_ers_path(:direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options]), | ||||
| 	 ['status', ['is_pending', 'is_checked', 'is_rejected'], 'span1', :status], | ||||
| 	 ['category', 'email_er_category', 'span1', :category], | ||||
| 	['subject', 'mail_subject','span2', 'er_email.mail_subject'] ,   | ||||
| 	['email_group', 'email_group','span2', 'er_email.email_group']).html_safe %> | ||||
							
								
								
									
										1
									
								
								vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/destroy.js.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										1
									
								
								vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/destroy.js.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1 @@ | |||
| $("#<%= dom_id @email_er %>").remove(); | ||||
							
								
								
									
										6
									
								
								vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/edit.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										6
									
								
								vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/edit.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,6 @@ | |||
| 
 | ||||
| <div id="poststuff"> | ||||
| <%= form_for @email_er, :url => panel_er_email_back_end_email_er_path(@email_er), :html => {:class=>"clear nccu_ajax_form"} do |f| %> | ||||
| 	<%= render :partial => 'form', :locals => {:f => f} %> | ||||
| <% end %> | ||||
| </div> | ||||
							
								
								
									
										28
									
								
								vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/index.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										28
									
								
								vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/index.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,28 @@ | |||
| <%= render 'filter' %> | ||||
| 
 | ||||
| <table class="table main-list"> | ||||
| 	<thead> | ||||
| 		<tr> | ||||
| 			<th class="span1"></th> | ||||
| 			<th class="span1"></th> | ||||
| 			<th class="span1"></th> | ||||
| 			<th class="span2"></th> | ||||
| 			<th class="span2"></th> | ||||
| 		</tr> | ||||
| 	</thead> | ||||
| 	<tbody id="tbody_email_ers"> | ||||
| 		<%= render :partial => 'email_er', :collection => @email_ers %> | ||||
| 	</tbody> | ||||
| </table> | ||||
| 
 | ||||
| <div class="form-actions form-fixed pagination-right"> | ||||
| 	<%= link_to content_tag(:i, nil, :class => 'icon-plus icon-white') + t(:add), new_panel_er_email_back_end_email_er_path, :class => 'btn btn-primary pull-right' if (is_manager? rescue nil) %> | ||||
| 	<div id="email_er_pagination" class="paginationFixed"> | ||||
| 		<%= paginate @email_ers, :params => {:direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil} %> | ||||
| 	</div> | ||||
| </div> | ||||
| 
 | ||||
| <% content_for :page_specific_javascript do %> | ||||
| 	<%= javascript_include_tag "/static/jquery.cycle.all.latest.js" %> | ||||
| 	<%= javascript_include_tag "inc/modal-preview" %> | ||||
| <% end %> | ||||
							
								
								
									
										4
									
								
								vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/index.js.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										4
									
								
								vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/index.js.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,4 @@ | |||
| $("#delete_all").attr("action", "<%= delete_panel_er_email_back_end_email_ers_path(:direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil, :sort_options => params[:sort_options]) %>"); | ||||
| $("#sort_headers").html("<%= j render 'sort_headers' %>"); | ||||
| $("#tbody_email_ers").html("<%= j render :partial => 'email_er', :collection => @email_ers %>"); | ||||
| $("#email_er_pagination").html("<%= j paginate @email_ers, :params => {:direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil} %>"); | ||||
							
								
								
									
										6
									
								
								vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/new.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										6
									
								
								vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/new.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,6 @@ | |||
| <div id="poststuff">  | ||||
| <%= form_for @email_er, :url => panel_er_email_back_end_email_ers_path, :html => {:class=>"nccu_ajax_form"} do |f| %> | ||||
| 	<%= render :partial => 'form', :locals => {:f => f} %> | ||||
| <% end %> | ||||
| </div>  | ||||
| 
 | ||||
|  | @ -0,0 +1,2 @@ | |||
| $('#show_preview').html("<%= escape_javascript(render(:partial => 'modal_preview',:locals => {:email_er => @email_er})) %>"); | ||||
| var start_modal_with_id = "email_er-<%=@email_er.id%>" | ||||
							
								
								
									
										1
									
								
								vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/show.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										1
									
								
								vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/show.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1 @@ | |||
|  <%= @email_er.mail_content.html_safe %> | ||||
|  | @ -0,0 +1,25 @@ | |||
| <%= content_tag :div ,:id => "users_checkbox_ary",:class => 'clear' do -%> | ||||
| <% sys_users = User.all.not_guest_user -%> | ||||
| 	<% sys_users.each do |user| -%> | ||||
| 	 | ||||
| 			<div class="checkblock"> | ||||
| 				<% user.sub_roles.each do |sr| %> | ||||
| 					<div class="for_unit" style="display:none;"> <%= sr.key %></div> | ||||
| 				<% end %> | ||||
| 				<%= content_tag :div,:data=>{'original-title'=>t('er_email.email_er.fact_check_setting_window_title'),:content => "#{user.sub_roles.collect{|sr| sr.key}.join(',')}"},:class=>"checkbox clear" do %> | ||||
| 					<div class="check-icon"> | ||||
| 					</div> | ||||
| 					<div class='member-avatar'> | ||||
| 						<% if user.avatar? %> | ||||
| 							<%= image_tag(user.avatar.thumb.url,:class => "member-img") %> | ||||
| 						<% else %> | ||||
| 							<%= image_tag "person.png",:class => "member-img" %> | ||||
| 						<% end %>	 | ||||
| 					</div> | ||||
| 					<%= label_tag "lab-user-#{user.id}", (user.name rescue ''),:class=>"member-name",:id=>nil -%> | ||||
| 					<%= check_box_tag "[users][#{user.id}]", 'true',users.include?(user),:class => "check"   -%> | ||||
| 				<%end -%> | ||||
| 			</div> | ||||
| 
 | ||||
| 	<% end -%> | ||||
| <% end -%> | ||||
|  | @ -0,0 +1,27 @@ | |||
| en: | ||||
| 
 | ||||
|   er_email: | ||||
|     er_email: Email_ER | ||||
|     Group: Group | ||||
|     Title: Title | ||||
|     Content: Content | ||||
|     Files: Files | ||||
|     approval_setting: Approval Setting | ||||
|     approve_email_er_fail: Approval Fail | ||||
|     approve_email_er_success: Approve Successfully | ||||
|     create_email_er_success: Create Successfully | ||||
|     email_resend: Resend | ||||
|     test_send_email: Test Send Email | ||||
|     mail_subject: Mail Subject | ||||
|     mail_content: Mail Content | ||||
|     mail_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 | ||||
|     other_mailaddress: Other Email | ||||
|     other_mailaddress_note: Divide different email accounts with "," | ||||
|     other_mailaddress_note_limit: maximum 1000 characters | ||||
|     email_file_limit: File upload size is limited to 1MB | ||||
|  | @ -0,0 +1,27 @@ | |||
| zh_tw: | ||||
| 
 | ||||
|   er_email: | ||||
|     er_email: 寄信群組 | ||||
|     Group: 群組 | ||||
|     Title: 主旨 | ||||
|     Content: 內文 | ||||
|     Files: 檔案 | ||||
|     approval_setting: 審核設定 | ||||
|     approve_email_er_fail: 審核失敗 | ||||
|     approve_email_er_success: 審核成功 | ||||
|     create_email_er_success: 建立資料成功 | ||||
|     email_resend: 重新寄送 | ||||
|     test_send_email: 測試寄信 | ||||
|     mail_subject: 主旨 | ||||
|     mail_content: 信件內容 | ||||
|     mail_sentdate: 寄送時間 | ||||
|     email_group: 寄送群組 | ||||
|     other_mailaddress: 其他Mail | ||||
|     other_mailaddress_note: 輸入多組mail時,請用","逗號隔開 | ||||
|     other_mailaddress_note_limit: 限制1000字元以內 | ||||
|     email_group_data_0: 全校教職員 | ||||
|     email_group_data_1: 大學部學生 | ||||
|     email_group_data_2: 日間部研究生 | ||||
|     email_group_data_3: 進修部研究生 | ||||
|     email_group_data_4: 其他 | ||||
|     email_file_limit: 檔案上傳容量限制為10MB | ||||
|  | @ -0,0 +1,36 @@ | |||
| Rails.application.routes.draw do | ||||
|   namespace :panel do | ||||
|     namespace :er_email do | ||||
|       namespace :back_end do | ||||
|         match 'public' => "er_emails#public",:as => :public | ||||
|         match 'approval_setting' => "approvals#setting" ,:as => :approval_setting,:via => :get | ||||
|         match 'approval_setting' => "approvals#update_setting" ,:as => :approval_setting,:via => :post | ||||
|         match 'approval_setting' => "approvals#user_list" ,:as => :approval_user_list,:via => :put | ||||
| 
 | ||||
|         resources :email_ers do | ||||
|           match "approve/:email_er_id"  => "approvals#preview_and_approve",:as => :approval_preview,:via => :put | ||||
|           match "approve/:email_er_id"  => "approvals#approve",:as => :approve,:via => :post | ||||
| 
 | ||||
|           collection do | ||||
|             post "preview" | ||||
|             put "preview" | ||||
|             get 'delete' | ||||
|             get 'email_resend' | ||||
|             get 'test_send_email' | ||||
|           end | ||||
|            | ||||
|         end | ||||
| 
 | ||||
|         resources :email_er_categorys do | ||||
|           collection do | ||||
|             get 'get_categorys_json' | ||||
|           end | ||||
|           # if want to use json | ||||
|           # please uncommand below line  | ||||
|           # match "get_email_ers_json/" => "email_er_categorys#get_email_ers_json", :as => :get_email_ers_json | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
|     end | ||||
|   end | ||||
| end | ||||
|  | @ -0,0 +1,23 @@ | |||
| $:.push File.expand_path("../lib", __FILE__) | ||||
| 
 | ||||
| # Maintain your gem's version: | ||||
| require "er_email/version" | ||||
| 
 | ||||
| # Describe your gem and declare its dependencies: | ||||
| Gem::Specification.new do |s| | ||||
|   s.name        = "er_email" | ||||
|   s.version     = ErEmail::VERSION | ||||
|   s.authors     = ["TODO: Your name"] | ||||
|   s.email       = ["TODO: Your email"] | ||||
|   s.homepage    = "TODO" | ||||
|   s.summary     = "TODO: Summary of ErEmail." | ||||
|   s.description = "TODO: Description of ErEmail." | ||||
| 
 | ||||
|   s.files = Dir["{app,config,db,lib}/**/*"] + ["MIT-LICENSE", "Rakefile", "README.rdoc"] | ||||
|   s.test_files = Dir["test/**/*"] | ||||
| 
 | ||||
|   s.add_dependency "rails", "~> 3.2.12" | ||||
|   # s.add_dependency "jquery-rails" | ||||
| 
 | ||||
|   s.add_development_dependency "sqlite3" | ||||
| end | ||||
|  | @ -0,0 +1,55 @@ | |||
| module ErEmail | ||||
|   OrbitApp.registration "ErEmail",:type=> 'ModuleApp' do | ||||
|     module_label 'er_email.er_email' | ||||
|     base_url File.expand_path File.dirname(__FILE__)     | ||||
| 
 | ||||
|     # personal_plugin :enable => true,:path=>"panel/er_email/plugin/profile",:i18n=>'er_email.er_email' | ||||
|      | ||||
|     version "0.1" | ||||
|     organization "Rulingcom" | ||||
|     author "RD dep" | ||||
|     intro "I am intro" | ||||
|     update_info 'some update_info' | ||||
| 
 | ||||
|      | ||||
|     side_bar do | ||||
|       head_label_i18n  'er_email.er_email',:icon_class=>"icons-paperplane" | ||||
|       available_for [:admin,:guest,:manager,:sub_manager] | ||||
|       active_for_controllers ({:private=>['email_er_categorys','email_ers', 'approvals']}) | ||||
|       active_for_object_auth ['EmailErCategory']  | ||||
|        | ||||
|       head_link_path "panel_er_email_back_end_email_ers_path" | ||||
| 
 | ||||
|       context_link 'all', | ||||
|                             :link_path=>"panel_er_email_back_end_email_ers_path" , | ||||
|                             :priority=>1, | ||||
|                             :active_for_action=>{:email_ers=>:index}, | ||||
|                             :available_for => [:all] | ||||
| 
 | ||||
|       context_link 'add',  | ||||
|                             :link_path=>"new_panel_er_email_back_end_email_er_path" , | ||||
|                             :priority=>2, | ||||
|                             :active_for_action=>{:email_ers=>:new}, | ||||
|                             :available_for => [:sub_manager] | ||||
|        | ||||
|       context_link 'categories', | ||||
|                             :link_path=>"panel_er_email_back_end_email_er_categorys_path" , | ||||
|                             :priority=>3, | ||||
|                             :active_for_action=>{:email_er_categorys=>:index}, | ||||
|                             :available_for => [:manager] | ||||
| 
 | ||||
|       context_link 'er_email.approval_setting', | ||||
|                             :link_path=>"panel_er_email_back_end_approval_setting_path" , | ||||
|                             :priority=>5, | ||||
|                             :active_for_action=>{:approvals=>:setting}, | ||||
|                             :active_for_object_auth => 'EmailErCategory', | ||||
|                             :available_for => [:manager] | ||||
| 
 | ||||
|       context_link 'module_authorization', | ||||
|                             :link_path=>"admin_module_app_manager_auth_proc_path(ModuleApp.first(conditions: {title: 'ErEmail'}))", | ||||
|                             :priority=>6, | ||||
|                             :active_for_app_auth => 'ErEmail' | ||||
| 
 | ||||
|     end | ||||
|   end | ||||
| end | ||||
|  | @ -0,0 +1,4 @@ | |||
| require "er_email/engine" | ||||
| 
 | ||||
| module ErEmail | ||||
| end | ||||
|  | @ -0,0 +1,4 @@ | |||
| module ErEmail | ||||
|   class Engine < ::Rails::Engine | ||||
|   end | ||||
| end | ||||
|  | @ -0,0 +1,3 @@ | |||
| module ErEmail | ||||
|   VERSION = "0.0.1" | ||||
| end | ||||
|  | @ -0,0 +1,4 @@ | |||
| # desc "Explaining what the task does" | ||||
| # task :er_email do | ||||
| #   # Task goes here | ||||
| # end | ||||
|  | @ -0,0 +1,8 @@ | |||
| #!/usr/bin/env ruby | ||||
| # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application. | ||||
| 
 | ||||
| ENGINE_ROOT = File.expand_path('../..', __FILE__) | ||||
| ENGINE_PATH = File.expand_path('../../lib/er_email/engine', __FILE__) | ||||
| 
 | ||||
| require 'rails/all' | ||||
| require 'rails/engine/commands' | ||||
|  | @ -0,0 +1,261 @@ | |||
| == Welcome to Rails | ||||
| 
 | ||||
| Rails is a web-application framework that includes everything needed to create | ||||
| database-backed web applications according to the Model-View-Control pattern. | ||||
| 
 | ||||
| This pattern splits the view (also called the presentation) into "dumb" | ||||
| templates that are primarily responsible for inserting pre-built data in between | ||||
| HTML tags. The model contains the "smart" domain objects (such as Account, | ||||
| Product, Person, Post) that holds all the business logic and knows how to | ||||
| persist themselves to a database. The controller handles the incoming requests | ||||
| (such as Save New Account, Update Product, Show Post) by manipulating the model | ||||
| and directing data to the view. | ||||
| 
 | ||||
| In Rails, the model is handled by what's called an object-relational mapping | ||||
| layer entitled Active Record. This layer allows you to present the data from | ||||
| database rows as objects and embellish these data objects with business logic | ||||
| methods. You can read more about Active Record in | ||||
| link:files/vendor/rails/activerecord/README.html. | ||||
| 
 | ||||
| The controller and view are handled by the Action Pack, which handles both | ||||
| layers by its two parts: Action View and Action Controller. These two layers | ||||
| are bundled in a single package due to their heavy interdependence. This is | ||||
| unlike the relationship between the Active Record and Action Pack that is much | ||||
| more separate. Each of these packages can be used independently outside of | ||||
| Rails. You can read more about Action Pack in | ||||
| link:files/vendor/rails/actionpack/README.html. | ||||
| 
 | ||||
| 
 | ||||
| == Getting Started | ||||
| 
 | ||||
| 1. At the command prompt, create a new Rails application: | ||||
|        <tt>rails new myapp</tt> (where <tt>myapp</tt> is the application name) | ||||
| 
 | ||||
| 2. Change directory to <tt>myapp</tt> and start the web server: | ||||
|        <tt>cd myapp; rails server</tt> (run with --help for options) | ||||
| 
 | ||||
| 3. Go to http://localhost:3000/ and you'll see: | ||||
|        "Welcome aboard: You're riding Ruby on Rails!" | ||||
| 
 | ||||
| 4. Follow the guidelines to start developing your application. You can find | ||||
| the following resources handy: | ||||
| 
 | ||||
| * The Getting Started Guide: http://guides.rubyonrails.org/getting_started.html | ||||
| * Ruby on Rails Tutorial Book: http://www.railstutorial.org/ | ||||
| 
 | ||||
| 
 | ||||
| == Debugging Rails | ||||
| 
 | ||||
| Sometimes your application goes wrong. Fortunately there are a lot of tools that | ||||
| will help you debug it and get it back on the rails. | ||||
| 
 | ||||
| First area to check is the application log files. Have "tail -f" commands | ||||
| running on the server.log and development.log. Rails will automatically display | ||||
| debugging and runtime information to these files. Debugging info will also be | ||||
| shown in the browser on requests from 127.0.0.1. | ||||
| 
 | ||||
| You can also log your own messages directly into the log file from your code | ||||
| using the Ruby logger class from inside your controllers. Example: | ||||
| 
 | ||||
|   class WeblogController < ActionController::Base | ||||
|     def destroy | ||||
|       @weblog = Weblog.find(params[:id]) | ||||
|       @weblog.destroy | ||||
|       logger.info("#{Time.now} Destroyed Weblog ID ##{@weblog.id}!") | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
| The result will be a message in your log file along the lines of: | ||||
| 
 | ||||
|   Mon Oct 08 14:22:29 +1000 2007 Destroyed Weblog ID #1! | ||||
| 
 | ||||
| More information on how to use the logger is at http://www.ruby-doc.org/core/ | ||||
| 
 | ||||
| Also, Ruby documentation can be found at http://www.ruby-lang.org/. There are | ||||
| several books available online as well: | ||||
| 
 | ||||
| * Programming Ruby: http://www.ruby-doc.org/docs/ProgrammingRuby/ (Pickaxe) | ||||
| * Learn to Program: http://pine.fm/LearnToProgram/ (a beginners guide) | ||||
| 
 | ||||
| These two books will bring you up to speed on the Ruby language and also on | ||||
| programming in general. | ||||
| 
 | ||||
| 
 | ||||
| == Debugger | ||||
| 
 | ||||
| Debugger support is available through the debugger command when you start your | ||||
| Mongrel or WEBrick server with --debugger. This means that you can break out of | ||||
| execution at any point in the code, investigate and change the model, and then, | ||||
| resume execution! You need to install ruby-debug to run the server in debugging | ||||
| mode. With gems, use <tt>sudo gem install ruby-debug</tt>. Example: | ||||
| 
 | ||||
|   class WeblogController < ActionController::Base | ||||
|     def index | ||||
|       @posts = Post.all | ||||
|       debugger | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
| So the controller will accept the action, run the first line, then present you | ||||
| with a IRB prompt in the server window. Here you can do things like: | ||||
| 
 | ||||
|   >> @posts.inspect | ||||
|   => "[#<Post:0x14a6be8 | ||||
|           @attributes={"title"=>nil, "body"=>nil, "id"=>"1"}>, | ||||
|        #<Post:0x14a6620 | ||||
|           @attributes={"title"=>"Rails", "body"=>"Only ten..", "id"=>"2"}>]" | ||||
|   >> @posts.first.title = "hello from a debugger" | ||||
|   => "hello from a debugger" | ||||
| 
 | ||||
| ...and even better, you can examine how your runtime objects actually work: | ||||
| 
 | ||||
|   >> f = @posts.first | ||||
|   => #<Post:0x13630c4 @attributes={"title"=>nil, "body"=>nil, "id"=>"1"}> | ||||
|   >> f. | ||||
|   Display all 152 possibilities? (y or n) | ||||
| 
 | ||||
| Finally, when you're ready to resume execution, you can enter "cont". | ||||
| 
 | ||||
| 
 | ||||
| == Console | ||||
| 
 | ||||
| The console is a Ruby shell, which allows you to interact with your | ||||
| application's domain model. Here you'll have all parts of the application | ||||
| configured, just like it is when the application is running. You can inspect | ||||
| domain models, change values, and save to the database. Starting the script | ||||
| without arguments will launch it in the development environment. | ||||
| 
 | ||||
| To start the console, run <tt>rails console</tt> from the application | ||||
| directory. | ||||
| 
 | ||||
| Options: | ||||
| 
 | ||||
| * Passing the <tt>-s, --sandbox</tt> argument will rollback any modifications | ||||
|   made to the database. | ||||
| * Passing an environment name as an argument will load the corresponding | ||||
|   environment. Example: <tt>rails console production</tt>. | ||||
| 
 | ||||
| To reload your controllers and models after launching the console run | ||||
| <tt>reload!</tt> | ||||
| 
 | ||||
| More information about irb can be found at: | ||||
| link:http://www.rubycentral.org/pickaxe/irb.html | ||||
| 
 | ||||
| 
 | ||||
| == dbconsole | ||||
| 
 | ||||
| You can go to the command line of your database directly through <tt>rails | ||||
| dbconsole</tt>. You would be connected to the database with the credentials | ||||
| defined in database.yml. Starting the script without arguments will connect you | ||||
| to the development database. Passing an argument will connect you to a different | ||||
| database, like <tt>rails dbconsole production</tt>. Currently works for MySQL, | ||||
| PostgreSQL and SQLite 3. | ||||
| 
 | ||||
| == Description of Contents | ||||
| 
 | ||||
| The default directory structure of a generated Ruby on Rails application: | ||||
| 
 | ||||
|   |-- app | ||||
|   |   |-- assets | ||||
|   |       |-- images | ||||
|   |       |-- javascripts | ||||
|   |       `-- stylesheets | ||||
|   |   |-- controllers | ||||
|   |   |-- helpers | ||||
|   |   |-- mailers | ||||
|   |   |-- models | ||||
|   |   `-- views | ||||
|   |       `-- layouts | ||||
|   |-- config | ||||
|   |   |-- environments | ||||
|   |   |-- initializers | ||||
|   |   `-- locales | ||||
|   |-- db | ||||
|   |-- doc | ||||
|   |-- lib | ||||
|   |   `-- tasks | ||||
|   |-- log | ||||
|   |-- public | ||||
|   |-- script | ||||
|   |-- test | ||||
|   |   |-- fixtures | ||||
|   |   |-- functional | ||||
|   |   |-- integration | ||||
|   |   |-- performance | ||||
|   |   `-- unit | ||||
|   |-- tmp | ||||
|   |   |-- cache | ||||
|   |   |-- pids | ||||
|   |   |-- sessions | ||||
|   |   `-- sockets | ||||
|   `-- vendor | ||||
|       |-- assets | ||||
|           `-- stylesheets | ||||
|       `-- plugins | ||||
| 
 | ||||
| app | ||||
|   Holds all the code that's specific to this particular application. | ||||
| 
 | ||||
| app/assets | ||||
|   Contains subdirectories for images, stylesheets, and JavaScript files. | ||||
| 
 | ||||
| app/controllers | ||||
|   Holds controllers that should be named like weblogs_controller.rb for | ||||
|   automated URL mapping. All controllers should descend from | ||||
|   ApplicationController which itself descends from ActionController::Base. | ||||
| 
 | ||||
| app/models | ||||
|   Holds models that should be named like post.rb. Models descend from | ||||
|   ActiveRecord::Base by default. | ||||
| 
 | ||||
| app/views | ||||
|   Holds the template files for the view that should be named like | ||||
|   weblogs/index.html.erb for the WeblogsController#index action. All views use | ||||
|   eRuby syntax by default. | ||||
| 
 | ||||
| app/views/layouts | ||||
|   Holds the template files for layouts to be used with views. This models the | ||||
|   common header/footer method of wrapping views. In your views, define a layout | ||||
|   using the <tt>layout :default</tt> and create a file named default.html.erb. | ||||
|   Inside default.html.erb, call <% yield %> to render the view using this | ||||
|   layout. | ||||
| 
 | ||||
| app/helpers | ||||
|   Holds view helpers that should be named like weblogs_helper.rb. These are | ||||
|   generated for you automatically when using generators for controllers. | ||||
|   Helpers can be used to wrap functionality for your views into methods. | ||||
| 
 | ||||
| config | ||||
|   Configuration files for the Rails environment, the routing map, the database, | ||||
|   and other dependencies. | ||||
| 
 | ||||
| db | ||||
|   Contains the database schema in schema.rb. db/migrate contains all the | ||||
|   sequence of Migrations for your schema. | ||||
| 
 | ||||
| doc | ||||
|   This directory is where your application documentation will be stored when | ||||
|   generated using <tt>rake doc:app</tt> | ||||
| 
 | ||||
| lib | ||||
|   Application specific libraries. Basically, any kind of custom code that | ||||
|   doesn't belong under controllers, models, or helpers. This directory is in | ||||
|   the load path. | ||||
| 
 | ||||
| public | ||||
|   The directory available for the web server. Also contains the dispatchers and the | ||||
|   default HTML files. This should be set as the DOCUMENT_ROOT of your web | ||||
|   server. | ||||
| 
 | ||||
| script | ||||
|   Helper scripts for automation and generation. | ||||
| 
 | ||||
| test | ||||
|   Unit and functional tests along with fixtures. When using the rails generate | ||||
|   command, template test files will be generated for you and placed in this | ||||
|   directory. | ||||
| 
 | ||||
| vendor | ||||
|   External libraries that the application depends on. Also includes the plugins | ||||
|   subdirectory. If the app has frozen rails, those gems also go here, under | ||||
|   vendor/rails/. This directory is in the load path. | ||||
|  | @ -0,0 +1,7 @@ | |||
| #!/usr/bin/env rake | ||||
| # Add your own tasks in files placed in lib/tasks ending in .rake, | ||||
| # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. | ||||
| 
 | ||||
| require File.expand_path('../config/application', __FILE__) | ||||
| 
 | ||||
| Dummy::Application.load_tasks | ||||
							
								
								
									
										15
									
								
								vendor/built_in_modules/er_email/test/dummy/app/assets/javascripts/application.js
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										15
									
								
								vendor/built_in_modules/er_email/test/dummy/app/assets/javascripts/application.js
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,15 @@ | |||
| // This is a manifest file that'll be compiled into application.js, which will include all the files
 | ||||
| // listed below.
 | ||||
| //
 | ||||
| // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
 | ||||
| // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
 | ||||
| //
 | ||||
| // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
 | ||||
| // the compiled file.
 | ||||
| //
 | ||||
| // WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
 | ||||
| // GO AFTER THE REQUIRES BELOW.
 | ||||
| //
 | ||||
| //= require jquery
 | ||||
| //= require jquery_ujs
 | ||||
| //= require_tree .
 | ||||
							
								
								
									
										13
									
								
								vendor/built_in_modules/er_email/test/dummy/app/assets/stylesheets/application.css
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										13
									
								
								vendor/built_in_modules/er_email/test/dummy/app/assets/stylesheets/application.css
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,13 @@ | |||
| /* | ||||
|  * This is a manifest file that'll be compiled into application.css, which will include all the files | ||||
|  * listed below. | ||||
|  * | ||||
|  * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets, | ||||
|  * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path. | ||||
|  * | ||||
|  * You're free to add application-wide styles to this file and they'll appear at the top of the | ||||
|  * compiled file, but it's generally better to create a new file per style scope. | ||||
|  * | ||||
|  *= require_self | ||||
|  *= require_tree . | ||||
|  */ | ||||
							
								
								
									
										3
									
								
								vendor/built_in_modules/er_email/test/dummy/app/controllers/application_controller.rb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										3
									
								
								vendor/built_in_modules/er_email/test/dummy/app/controllers/application_controller.rb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,3 @@ | |||
| class ApplicationController < ActionController::Base | ||||
|   protect_from_forgery | ||||
| end | ||||
							
								
								
									
										2
									
								
								vendor/built_in_modules/er_email/test/dummy/app/helpers/application_helper.rb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										2
									
								
								vendor/built_in_modules/er_email/test/dummy/app/helpers/application_helper.rb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,2 @@ | |||
| module ApplicationHelper | ||||
| end | ||||
							
								
								
									
										14
									
								
								vendor/built_in_modules/er_email/test/dummy/app/views/layouts/application.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										14
									
								
								vendor/built_in_modules/er_email/test/dummy/app/views/layouts/application.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,14 @@ | |||
| <!DOCTYPE html> | ||||
| <html> | ||||
| <head> | ||||
|   <title>Dummy</title> | ||||
|   <%= stylesheet_link_tag    "application", :media => "all" %> | ||||
|   <%= javascript_include_tag "application" %> | ||||
|   <%= csrf_meta_tags %> | ||||
| </head> | ||||
| <body> | ||||
| 
 | ||||
| <%= yield %> | ||||
| 
 | ||||
| </body> | ||||
| </html> | ||||
|  | @ -0,0 +1,4 @@ | |||
| # This file is used by Rack-based servers to start the application. | ||||
| 
 | ||||
| require ::File.expand_path('../config/environment',  __FILE__) | ||||
| run Dummy::Application | ||||
|  | @ -0,0 +1,59 @@ | |||
| require File.expand_path('../boot', __FILE__) | ||||
| 
 | ||||
| require 'rails/all' | ||||
| 
 | ||||
| Bundler.require | ||||
| require "er_email" | ||||
| 
 | ||||
| module Dummy | ||||
|   class Application < Rails::Application | ||||
|     # Settings in config/environments/* take precedence over those specified here. | ||||
|     # Application configuration should go into files in config/initializers | ||||
|     # -- all .rb files in that directory are automatically loaded. | ||||
| 
 | ||||
|     # Custom directories with classes and modules you want to be autoloadable. | ||||
|     # config.autoload_paths += %W(#{config.root}/extras) | ||||
| 
 | ||||
|     # Only load the plugins named here, in the order given (default is alphabetical). | ||||
|     # :all can be used as a placeholder for all plugins not explicitly named. | ||||
|     # config.plugins = [ :exception_notification, :ssl_requirement, :all ] | ||||
| 
 | ||||
|     # Activate observers that should always be running. | ||||
|     # config.active_record.observers = :cacher, :garbage_collector, :forum_observer | ||||
| 
 | ||||
|     # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone. | ||||
|     # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC. | ||||
|     # config.time_zone = 'Central Time (US & Canada)' | ||||
| 
 | ||||
|     # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. | ||||
|     # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] | ||||
|     # config.i18n.default_locale = :de | ||||
| 
 | ||||
|     # Configure the default encoding used in templates for Ruby 1.9. | ||||
|     config.encoding = "utf-8" | ||||
| 
 | ||||
|     # Configure sensitive parameters which will be filtered from the log file. | ||||
|     config.filter_parameters += [:password] | ||||
| 
 | ||||
|     # Enable escaping HTML in JSON. | ||||
|     config.active_support.escape_html_entities_in_json = true | ||||
| 
 | ||||
|     # Use SQL instead of Active Record's schema dumper when creating the database. | ||||
|     # This is necessary if your schema can't be completely dumped by the schema dumper, | ||||
|     # like if you have constraints or database-specific column types | ||||
|     # config.active_record.schema_format = :sql | ||||
| 
 | ||||
|     # Enforce whitelist mode for mass assignment. | ||||
|     # This will create an empty whitelist of attributes available for mass-assignment for all models | ||||
|     # in your app. As such, your models will need to explicitly whitelist or blacklist accessible | ||||
|     # parameters by using an attr_accessible or attr_protected declaration. | ||||
|     config.active_record.whitelist_attributes = true | ||||
| 
 | ||||
|     # Enable the asset pipeline | ||||
|     config.assets.enabled = true | ||||
| 
 | ||||
|     # Version of your assets, change this if you want to expire all your assets | ||||
|     config.assets.version = '1.0' | ||||
|   end | ||||
| end | ||||
| 
 | ||||
|  | @ -0,0 +1,10 @@ | |||
| require 'rubygems' | ||||
| gemfile = File.expand_path('../../../../Gemfile', __FILE__) | ||||
| 
 | ||||
| if File.exist?(gemfile) | ||||
|   ENV['BUNDLE_GEMFILE'] = gemfile | ||||
|   require 'bundler' | ||||
|   Bundler.setup | ||||
| end | ||||
| 
 | ||||
| $:.unshift File.expand_path('../../../../lib', __FILE__) | ||||
|  | @ -0,0 +1,25 @@ | |||
| # SQLite version 3.x | ||||
| #   gem install sqlite3 | ||||
| # | ||||
| #   Ensure the SQLite 3 gem is defined in your Gemfile | ||||
| #   gem 'sqlite3' | ||||
| development: | ||||
|   adapter: sqlite3 | ||||
|   database: db/development.sqlite3 | ||||
|   pool: 5 | ||||
|   timeout: 5000 | ||||
| 
 | ||||
| # Warning: The database defined as "test" will be erased and | ||||
| # re-generated from your development database when you run "rake". | ||||
| # Do not set this db to the same as development or production. | ||||
| test: | ||||
|   adapter: sqlite3 | ||||
|   database: db/test.sqlite3 | ||||
|   pool: 5 | ||||
|   timeout: 5000 | ||||
| 
 | ||||
| production: | ||||
|   adapter: sqlite3 | ||||
|   database: db/production.sqlite3 | ||||
|   pool: 5 | ||||
|   timeout: 5000 | ||||
|  | @ -0,0 +1,5 @@ | |||
| # Load the rails application | ||||
| require File.expand_path('../application', __FILE__) | ||||
| 
 | ||||
| # Initialize the rails application | ||||
| Dummy::Application.initialize! | ||||
							
								
								
									
										37
									
								
								vendor/built_in_modules/er_email/test/dummy/config/environments/development.rb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										37
									
								
								vendor/built_in_modules/er_email/test/dummy/config/environments/development.rb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,37 @@ | |||
| Dummy::Application.configure do | ||||
|   # Settings specified here will take precedence over those in config/application.rb | ||||
| 
 | ||||
|   # In the development environment your application's code is reloaded on | ||||
|   # every request. This slows down response time but is perfect for development | ||||
|   # since you don't have to restart the web server when you make code changes. | ||||
|   config.cache_classes = false | ||||
| 
 | ||||
|   # Log error messages when you accidentally call methods on nil. | ||||
|   config.whiny_nils = true | ||||
| 
 | ||||
|   # Show full error reports and disable caching | ||||
|   config.consider_all_requests_local       = true | ||||
|   config.action_controller.perform_caching = false | ||||
| 
 | ||||
|   # Don't care if the mailer can't send | ||||
|   config.action_mailer.raise_delivery_errors = false | ||||
| 
 | ||||
|   # Print deprecation notices to the Rails logger | ||||
|   config.active_support.deprecation = :log | ||||
| 
 | ||||
|   # Only use best-standards-support built into browsers | ||||
|   config.action_dispatch.best_standards_support = :builtin | ||||
| 
 | ||||
|   # Raise exception on mass assignment protection for Active Record models | ||||
|   config.active_record.mass_assignment_sanitizer = :strict | ||||
| 
 | ||||
|   # Log the query plan for queries taking more than this (works | ||||
|   # with SQLite, MySQL, and PostgreSQL) | ||||
|   config.active_record.auto_explain_threshold_in_seconds = 0.5 | ||||
| 
 | ||||
|   # Do not compress assets | ||||
|   config.assets.compress = false | ||||
| 
 | ||||
|   # Expands the lines which load the assets | ||||
|   config.assets.debug = true | ||||
| end | ||||
							
								
								
									
										67
									
								
								vendor/built_in_modules/er_email/test/dummy/config/environments/production.rb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										67
									
								
								vendor/built_in_modules/er_email/test/dummy/config/environments/production.rb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,67 @@ | |||
| Dummy::Application.configure do | ||||
|   # Settings specified here will take precedence over those in config/application.rb | ||||
| 
 | ||||
|   # Code is not reloaded between requests | ||||
|   config.cache_classes = true | ||||
| 
 | ||||
|   # Full error reports are disabled and caching is turned on | ||||
|   config.consider_all_requests_local       = false | ||||
|   config.action_controller.perform_caching = true | ||||
| 
 | ||||
|   # Disable Rails's static asset server (Apache or nginx will already do this) | ||||
|   config.serve_static_assets = false | ||||
| 
 | ||||
|   # Compress JavaScripts and CSS | ||||
|   config.assets.compress = true | ||||
| 
 | ||||
|   # Don't fallback to assets pipeline if a precompiled asset is missed | ||||
|   config.assets.compile = false | ||||
| 
 | ||||
|   # Generate digests for assets URLs | ||||
|   config.assets.digest = true | ||||
| 
 | ||||
|   # Defaults to nil and saved in location specified by config.assets.prefix | ||||
|   # config.assets.manifest = YOUR_PATH | ||||
| 
 | ||||
|   # Specifies the header that your server uses for sending files | ||||
|   # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache | ||||
|   # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx | ||||
| 
 | ||||
|   # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. | ||||
|   # config.force_ssl = true | ||||
| 
 | ||||
|   # See everything in the log (default is :info) | ||||
|   # config.log_level = :debug | ||||
| 
 | ||||
|   # Prepend all log lines with the following tags | ||||
|   # config.log_tags = [ :subdomain, :uuid ] | ||||
| 
 | ||||
|   # Use a different logger for distributed setups | ||||
|   # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new) | ||||
| 
 | ||||
|   # Use a different cache store in production | ||||
|   # config.cache_store = :mem_cache_store | ||||
| 
 | ||||
|   # Enable serving of images, stylesheets, and JavaScripts from an asset server | ||||
|   # config.action_controller.asset_host = "http://assets.example.com" | ||||
| 
 | ||||
|   # Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added) | ||||
|   # config.assets.precompile += %w( search.js ) | ||||
| 
 | ||||
|   # Disable delivery errors, bad email addresses will be ignored | ||||
|   # config.action_mailer.raise_delivery_errors = false | ||||
| 
 | ||||
|   # Enable threaded mode | ||||
|   # config.threadsafe! | ||||
| 
 | ||||
|   # Enable locale fallbacks for I18n (makes lookups for any locale fall back to | ||||
|   # the I18n.default_locale when a translation can not be found) | ||||
|   config.i18n.fallbacks = true | ||||
| 
 | ||||
|   # Send deprecation notices to registered listeners | ||||
|   config.active_support.deprecation = :notify | ||||
| 
 | ||||
|   # Log the query plan for queries taking more than this (works | ||||
|   # with SQLite, MySQL, and PostgreSQL) | ||||
|   # config.active_record.auto_explain_threshold_in_seconds = 0.5 | ||||
| end | ||||
|  | @ -0,0 +1,37 @@ | |||
| Dummy::Application.configure do | ||||
|   # Settings specified here will take precedence over those in config/application.rb | ||||
| 
 | ||||
|   # The test environment is used exclusively to run your application's | ||||
|   # test suite. You never need to work with it otherwise. Remember that | ||||
|   # your test database is "scratch space" for the test suite and is wiped | ||||
|   # and recreated between test runs. Don't rely on the data there! | ||||
|   config.cache_classes = true | ||||
| 
 | ||||
|   # Configure static asset server for tests with Cache-Control for performance | ||||
|   config.serve_static_assets = true | ||||
|   config.static_cache_control = "public, max-age=3600" | ||||
| 
 | ||||
|   # Log error messages when you accidentally call methods on nil | ||||
|   config.whiny_nils = true | ||||
| 
 | ||||
|   # Show full error reports and disable caching | ||||
|   config.consider_all_requests_local       = true | ||||
|   config.action_controller.perform_caching = false | ||||
| 
 | ||||
|   # Raise exceptions instead of rendering exception templates | ||||
|   config.action_dispatch.show_exceptions = false | ||||
| 
 | ||||
|   # Disable request forgery protection in test environment | ||||
|   config.action_controller.allow_forgery_protection    = false | ||||
| 
 | ||||
|   # Tell Action Mailer not to deliver emails to the real world. | ||||
|   # The :test delivery method accumulates sent emails in the | ||||
|   # ActionMailer::Base.deliveries array. | ||||
|   config.action_mailer.delivery_method = :test | ||||
| 
 | ||||
|   # Raise exception on mass assignment protection for Active Record models | ||||
|   config.active_record.mass_assignment_sanitizer = :strict | ||||
| 
 | ||||
|   # Print deprecation notices to the stderr | ||||
|   config.active_support.deprecation = :stderr | ||||
| end | ||||
							
								
								
									
										7
									
								
								vendor/built_in_modules/er_email/test/dummy/config/initializers/backtrace_silencers.rb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										7
									
								
								vendor/built_in_modules/er_email/test/dummy/config/initializers/backtrace_silencers.rb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,7 @@ | |||
| # Be sure to restart your server when you modify this file. | ||||
| 
 | ||||
| # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. | ||||
| # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ } | ||||
| 
 | ||||
| # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code. | ||||
| # Rails.backtrace_cleaner.remove_silencers! | ||||
							
								
								
									
										15
									
								
								vendor/built_in_modules/er_email/test/dummy/config/initializers/inflections.rb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										15
									
								
								vendor/built_in_modules/er_email/test/dummy/config/initializers/inflections.rb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,15 @@ | |||
| # Be sure to restart your server when you modify this file. | ||||
| 
 | ||||
| # Add new inflection rules using the following format | ||||
| # (all these examples are active by default): | ||||
| # ActiveSupport::Inflector.inflections do |inflect| | ||||
| #   inflect.plural /^(ox)$/i, '\1en' | ||||
| #   inflect.singular /^(ox)en/i, '\1' | ||||
| #   inflect.irregular 'person', 'people' | ||||
| #   inflect.uncountable %w( fish sheep ) | ||||
| # end | ||||
| # | ||||
| # These inflection rules are supported but not enabled by default: | ||||
| # ActiveSupport::Inflector.inflections do |inflect| | ||||
| #   inflect.acronym 'RESTful' | ||||
| # end | ||||
							
								
								
									
										5
									
								
								vendor/built_in_modules/er_email/test/dummy/config/initializers/mime_types.rb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										5
									
								
								vendor/built_in_modules/er_email/test/dummy/config/initializers/mime_types.rb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,5 @@ | |||
| # Be sure to restart your server when you modify this file. | ||||
| 
 | ||||
| # Add new mime types for use in respond_to blocks: | ||||
| # Mime::Type.register "text/richtext", :rtf | ||||
| # Mime::Type.register_alias "text/html", :iphone | ||||
							
								
								
									
										7
									
								
								vendor/built_in_modules/er_email/test/dummy/config/initializers/secret_token.rb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										7
									
								
								vendor/built_in_modules/er_email/test/dummy/config/initializers/secret_token.rb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,7 @@ | |||
| # Be sure to restart your server when you modify this file. | ||||
| 
 | ||||
| # Your secret key for verifying the integrity of signed cookies. | ||||
| # If you change this key, all old signed cookies will become invalid! | ||||
| # Make sure the secret is at least 30 characters and all random, | ||||
| # no regular words or you'll be exposed to dictionary attacks. | ||||
| Dummy::Application.config.secret_token = 'ac15a913a22acfd8176f22613d574d3173e7396f613dd8c6932d0b097db26c33d6b93d43249b4bf5433c70aaf59f73c9f3a9058e2482309d770f18b3a7f82eb2' | ||||
							
								
								
									
										8
									
								
								vendor/built_in_modules/er_email/test/dummy/config/initializers/session_store.rb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										8
									
								
								vendor/built_in_modules/er_email/test/dummy/config/initializers/session_store.rb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,8 @@ | |||
| # Be sure to restart your server when you modify this file. | ||||
| 
 | ||||
| Dummy::Application.config.session_store :cookie_store, key: '_dummy_session' | ||||
| 
 | ||||
| # Use the database for sessions instead of the cookie-based default, | ||||
| # which shouldn't be used to store highly confidential information | ||||
| # (create the session table with "rails generate session_migration") | ||||
| # Dummy::Application.config.session_store :active_record_store | ||||
							
								
								
									
										14
									
								
								vendor/built_in_modules/er_email/test/dummy/config/initializers/wrap_parameters.rb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										14
									
								
								vendor/built_in_modules/er_email/test/dummy/config/initializers/wrap_parameters.rb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,14 @@ | |||
| # Be sure to restart your server when you modify this file. | ||||
| # | ||||
| # This file contains settings for ActionController::ParamsWrapper which | ||||
| # is enabled by default. | ||||
| 
 | ||||
| # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array. | ||||
| ActiveSupport.on_load(:action_controller) do | ||||
|   wrap_parameters format: [:json] | ||||
| end | ||||
| 
 | ||||
| # Disable root element in JSON by default. | ||||
| ActiveSupport.on_load(:active_record) do | ||||
|   self.include_root_in_json = false | ||||
| end | ||||
|  | @ -0,0 +1,5 @@ | |||
| # Sample localization file for English. Add more files in this directory for other locales. | ||||
| # See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points. | ||||
| 
 | ||||
| en: | ||||
|   hello: "Hello world" | ||||
|  | @ -0,0 +1,58 @@ | |||
| Dummy::Application.routes.draw do | ||||
|   # The priority is based upon order of creation: | ||||
|   # first created -> highest priority. | ||||
| 
 | ||||
|   # Sample of regular route: | ||||
|   #   match 'products/:id' => 'catalog#view' | ||||
|   # Keep in mind you can assign values other than :controller and :action | ||||
| 
 | ||||
|   # Sample of named route: | ||||
|   #   match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase | ||||
|   # This route can be invoked with purchase_url(:id => product.id) | ||||
| 
 | ||||
|   # Sample resource route (maps HTTP verbs to controller actions automatically): | ||||
|   #   resources :products | ||||
| 
 | ||||
|   # Sample resource route with options: | ||||
|   #   resources :products do | ||||
|   #     member do | ||||
|   #       get 'short' | ||||
|   #       post 'toggle' | ||||
|   #     end | ||||
|   # | ||||
|   #     collection do | ||||
|   #       get 'sold' | ||||
|   #     end | ||||
|   #   end | ||||
| 
 | ||||
|   # Sample resource route with sub-resources: | ||||
|   #   resources :products do | ||||
|   #     resources :comments, :sales | ||||
|   #     resource :seller | ||||
|   #   end | ||||
| 
 | ||||
|   # Sample resource route with more complex sub-resources | ||||
|   #   resources :products do | ||||
|   #     resources :comments | ||||
|   #     resources :sales do | ||||
|   #       get 'recent', :on => :collection | ||||
|   #     end | ||||
|   #   end | ||||
| 
 | ||||
|   # Sample resource route within a namespace: | ||||
|   #   namespace :admin do | ||||
|   #     # Directs /admin/products/* to Admin::ProductsController | ||||
|   #     # (app/controllers/admin/products_controller.rb) | ||||
|   #     resources :products | ||||
|   #   end | ||||
| 
 | ||||
|   # You can have the root of your site routed with "root" | ||||
|   # just remember to delete public/index.html. | ||||
|   # root :to => 'welcome#index' | ||||
| 
 | ||||
|   # See how all your routes lay out with "rake routes" | ||||
| 
 | ||||
|   # This is a legacy wild controller route that's not recommended for RESTful applications. | ||||
|   # Note: This route will make all actions in every controller accessible via GET requests. | ||||
|   # match ':controller(/:action(/:id))(.:format)' | ||||
| end | ||||
Some files were not shown because too many files have changed in this diff Show More
		Loading…
	
		Reference in New Issue