diff --git a/vendor/built_in_modules/er_email/.gitignore b/vendor/built_in_modules/er_email/.gitignore
new file mode 100644
index 000000000..1dfe31e60
--- /dev/null
+++ b/vendor/built_in_modules/er_email/.gitignore
@@ -0,0 +1,7 @@
+.bundle/
+log/*.log
+pkg/
+test/dummy/db/*.sqlite3
+test/dummy/log/*.log
+test/dummy/tmp/
+test/dummy/.sass-cache
diff --git a/vendor/built_in_modules/er_email/Gemfile b/vendor/built_in_modules/er_email/Gemfile
new file mode 100644
index 000000000..e9d2bcf38
--- /dev/null
+++ b/vendor/built_in_modules/er_email/Gemfile
@@ -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'
diff --git a/vendor/built_in_modules/er_email/MIT-LICENSE b/vendor/built_in_modules/er_email/MIT-LICENSE
new file mode 100644
index 000000000..5146945d9
--- /dev/null
+++ b/vendor/built_in_modules/er_email/MIT-LICENSE
@@ -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.
diff --git a/vendor/built_in_modules/er_email/README.rdoc b/vendor/built_in_modules/er_email/README.rdoc
new file mode 100644
index 000000000..5e75970bb
--- /dev/null
+++ b/vendor/built_in_modules/er_email/README.rdoc
@@ -0,0 +1,3 @@
+= ErEmail
+
+This project rocks and uses MIT-LICENSE.
\ No newline at end of file
diff --git a/vendor/built_in_modules/er_email/Rakefile b/vendor/built_in_modules/er_email/Rakefile
new file mode 100644
index 000000000..a021c8b42
--- /dev/null
+++ b/vendor/built_in_modules/er_email/Rakefile
@@ -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
diff --git a/vendor/built_in_modules/er_email/app/assets/images/er_email/.gitkeep b/vendor/built_in_modules/er_email/app/assets/images/er_email/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/vendor/built_in_modules/er_email/app/assets/javascripts/er_email/.gitkeep b/vendor/built_in_modules/er_email/app/assets/javascripts/er_email/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/vendor/built_in_modules/er_email/app/assets/stylesheets/er_email/.gitkeep b/vendor/built_in_modules/er_email/app/assets/stylesheets/er_email/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/vendor/built_in_modules/er_email/app/controllers/.gitkeep b/vendor/built_in_modules/er_email/app/controllers/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/vendor/built_in_modules/er_email/app/controllers/application_controller.rb b/vendor/built_in_modules/er_email/app/controllers/application_controller.rb
new file mode 100644
index 000000000..307a4acd8
--- /dev/null
+++ b/vendor/built_in_modules/er_email/app/controllers/application_controller.rb
@@ -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
diff --git a/vendor/built_in_modules/er_email/app/controllers/panel/er_email/back_end/approvals_controller.rb b/vendor/built_in_modules/er_email/app/controllers/panel/er_email/back_end/approvals_controller.rb
new file mode 100644
index 000000000..68cdce866
--- /dev/null
+++ b/vendor/built_in_modules/er_email/app/controllers/panel/er_email/back_end/approvals_controller.rb
@@ -0,0 +1,140 @@
+class Panel::ErEmail::BackEnd::ApprovalsController < OrbitBackendController
+ before_filter :authenticate_user!
+ before_filter :is_admin?
+ include AdminHelper
+ # layout 'admin'
+
+
+ def preview_and_approve
+ @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,
+ :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
+
+ end
+
+ end
+
+ def email_group_data
+
+ @email_group_data = EmailEr.email_group_data
+
+ end
+end
diff --git a/vendor/built_in_modules/er_email/app/controllers/panel/er_email/back_end/email_er_categorys_controller.rb b/vendor/built_in_modules/er_email/app/controllers/panel/er_email/back_end/email_er_categorys_controller.rb
new file mode 100644
index 000000000..e1bd71c4f
--- /dev/null
+++ b/vendor/built_in_modules/er_email/app/controllers/panel/er_email/back_end/email_er_categorys_controller.rb
@@ -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
diff --git a/vendor/built_in_modules/er_email/app/controllers/panel/er_email/back_end/email_ers_controller.rb b/vendor/built_in_modules/er_email/app/controllers/panel/er_email/back_end/email_ers_controller.rb
new file mode 100644
index 000000000..2a689cede
--- /dev/null
+++ b/vendor/built_in_modules/er_email/app/controllers/panel/er_email/back_end/email_ers_controller.rb
@@ -0,0 +1,288 @@
+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
+ @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 => "
+
+
+
+ <% email_er_category.get_object_auth_by_title('fact_check').auth_users.each do |user| %>
+
+
+ <% if user.avatar? %>
+ <%= image_tag(user.avatar.thumb.url,:class => "member-img") %>
+ <% else %>
+ <%= image_tag "person.png",:class => "member-img" %>
+ <% end %>
+
+ <%= label_tag "lab-user-#{user.id}", (user.name rescue ''),:class=>"member-name",:id=>nil -%>
+
+ <% end -%>
+
+
+
+
+
+
+
+
+
+
+
+<% end -%>
\ No newline at end of file
diff --git a/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/approvals/preview_and_approve.js.erb b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/approvals/preview_and_approve.js.erb
new file mode 100644
index 000000000..40c37fff0
--- /dev/null
+++ b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/approvals/preview_and_approve.js.erb
@@ -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");
\ No newline at end of file
diff --git a/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/approvals/setting.html.erb b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/approvals/setting.html.erb
new file mode 100644
index 000000000..8ef074e8e
--- /dev/null
+++ b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/approvals/setting.html.erb
@@ -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") %>
+
+
+ -
+
+ <%= label_tag :category, t(:category) %>
+ <%= select "category",'id',@options_from_collection_for_select_email_er_categorys %>
+ <%= search_field_tag 'user_filter' %>
+
+
+
+ <%= link_to t("approval.user_list"), panel_er_email_back_end_approval_user_list_path , :class=>'preview_trigger btn btn-success pull-right'%>
+
+<%#= label_tag :role, t(:roles) %>
+
+<%= content_tag :div do -%>
+ <% form_tag panel_er_email_back_end_approval_setting_path do %>
+ <%= render :partial => "layouts/users_checkbox_ary" %>
+
+ <% end -%>
+<% end -%>
+
+
+
\ No newline at end of file
diff --git a/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/approvals/setting.js.erb b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/approvals/setting.js.erb
new file mode 100644
index 000000000..7eb41c72a
--- /dev/null
+++ b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/approvals/setting.js.erb
@@ -0,0 +1,2 @@
+$("#users_checkbox_ary").replaceWith('<%= escape_javascript(render :partial=> "layouts/users_checkbox_ary" )%>');
+permissionCheckbox();
\ No newline at end of file
diff --git a/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/approvals/update_setting.js.erb b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/approvals/update_setting.js.erb
new file mode 100644
index 000000000..7486000a2
--- /dev/null
+++ b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/approvals/update_setting.js.erb
@@ -0,0 +1 @@
+alert( "<% flash.each do |key, msg| %><%= msg %><% end%>");
\ No newline at end of file
diff --git a/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/approvals/user_list.js.erb b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/approvals/user_list.js.erb
new file mode 100644
index 000000000..c685e0715
--- /dev/null
+++ b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/approvals/user_list.js.erb
@@ -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%>"
\ No newline at end of file
diff --git a/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_er_categorys/_email_er_category.html.erb b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_er_categorys/_email_er_category.html.erb
new file mode 100644
index 000000000..553e77108
--- /dev/null
+++ b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_er_categorys/_email_er_category.html.erb
@@ -0,0 +1,19 @@
+
+
+
+
+ <%= email_er_category.key %>
+
+
+ - <%= link_to t(:edit), edit_panel_er_email_back_end_email_er_category_path(email_er_category), :remote => true %>
+ - <%= 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" %>
+ <%if is_manager? || is_admin? %>
+ - <%= show_anc_cate_permission_link(email_er_category) %>
+ <% end %>
+
+
+ |
+ <% @site_valid_locales.each do |locale| %>
+ <%= email_er_category.title_translations[locale] rescue nil %> |
+ <% end %>
+
diff --git a/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_er_categorys/_form.html.erb b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_er_categorys/_form.html.erb
new file mode 100644
index 000000000..e1cc47d71
--- /dev/null
+++ b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_er_categorys/_form.html.erb
@@ -0,0 +1,30 @@
+<% # encoding: utf-8 %>
+
+<%= form_for(@email_er_category, :remote => true, :url => @url) do |f| %>
+
+
<%= (@email_er_category.new_record? ? 'Add' : 'Edit') %>
+
+
+ <%= f.label :key %>
+ <%= f.text_field :key %>
+
+
+
+
+
+ <%= f.submit 'Submit/送出', :class=>'btn btn-primary' %>
+
+
+<% end %>
+
\ No newline at end of file
diff --git a/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_er_categorys/create.js.erb b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_er_categorys/create.js.erb
new file mode 100644
index 000000000..19d0cb80c
--- /dev/null
+++ b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_er_categorys/create.js.erb
@@ -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();
\ No newline at end of file
diff --git a/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_er_categorys/destroy.js.erb b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_er_categorys/destroy.js.erb
new file mode 100644
index 000000000..83dfda02b
--- /dev/null
+++ b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_er_categorys/destroy.js.erb
@@ -0,0 +1 @@
+$("#<%= dom_id @email_er_category %>").find(".archive_toggle").text("<%= show_toggle_archive_btn(@email_er_category) %> ");
\ No newline at end of file
diff --git a/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_er_categorys/edit.js.erb b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_er_categorys/edit.js.erb
new file mode 100644
index 000000000..eaff01fa3
--- /dev/null
+++ b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_er_categorys/edit.js.erb
@@ -0,0 +1 @@
+$("#form > form").replaceWith("<%= j render "form" %>");
\ No newline at end of file
diff --git a/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_er_categorys/index.html.erb b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_er_categorys/index.html.erb
new file mode 100644
index 000000000..4d247ca94
--- /dev/null
+++ b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_er_categorys/index.html.erb
@@ -0,0 +1,23 @@
+
+
+<%= flash_messages %>
+
+
+
+
+ <%= t('email_er_category.key') %> |
+ <% @site_valid_locales.each do |locale| %>
+ <%= I18nVariable.first(:conditions => {:key => locale})[I18n.locale] %> |
+ <% end %>
+
+
+
+
+ <%= render :partial => 'email_er_category', :collection => @email_er_categorys %>
+
+
+
+
+
<%= render :partial => "form" %>
+
+
diff --git a/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_er_categorys/new.js.erb b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_er_categorys/new.js.erb
new file mode 100644
index 000000000..40061b9fc
--- /dev/null
+++ b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_er_categorys/new.js.erb
@@ -0,0 +1 @@
+$("#form > form").replaceWith("<%= j render "form" %>");
diff --git a/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_er_categorys/update.js.erb b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_er_categorys/update.js.erb
new file mode 100644
index 000000000..3f7aeac16
--- /dev/null
+++ b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_er_categorys/update.js.erb
@@ -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();
\ No newline at end of file
diff --git a/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/_clear_filters.html.erb b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/_clear_filters.html.erb
new file mode 100644
index 000000000..a15f7993d
--- /dev/null
+++ b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/_clear_filters.html.erb
@@ -0,0 +1,3 @@
+
+ <%= 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" %>
+
\ No newline at end of file
diff --git a/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/_email_er.html.erb b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/_email_er.html.erb
new file mode 100644
index 000000000..2b05ec595
--- /dev/null
+++ b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/_email_er.html.erb
@@ -0,0 +1,59 @@
+
+
+ <% 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 -%>
+ |
+
+
+
+ <% if email_er.is_pending? %>
+ <%= t(:pending) %>
+ <% end %>
+ <% if email_er.is_checked? %>
+ <%= t(:passed) %>
+ <% end %>
+ <% if email_er.is_rejected? %>
+ <%= t(:rejected) %>
+ <% end %>
+
+
+ |
+
+ <%= email_er.email_er_category.title %>
+ |
+
+ <%= email_er.mail_subject %>
+
+
+ <%#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?) %>
+
+ - <%= link_to t(:edit), edit_panel_er_email_back_end_email_er_path(email_er, :page => params[:page], :filter => @filter) %>
+ <% end %>
+ - <%= link_to t(:delete_), panel_er_email_back_end_email_er_path(email_er), :confirm => t('sure?'), :method => :delete, :remote => true %>
+
+ <% if email_er.is_checked and !email_er.is_rejected %>
+ - <%= 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" %>
+ <% end %>
+
+ <% end -%>
+
+ <% if show_approval_link(email_er) %>
+ - <%= link_to t(:approval_), panel_er_email_back_end_email_er_approval_preview_path(email_er),:class => 'preview_trigger' %>
<%#= #TODO add ancher so user can quick access into that part %>
+ <% end %>
+ <% if show_reject_reason(email_er)%>
+ - <%= 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' %>
+ <% end %>
+
+
+ |
+
+ <%= email_er.get_email_group_data(@email_group_data) %>
+ |
+
+ <%= display_date_time(email_er.mail_sentdate) %>
+ |
+
\ No newline at end of file
diff --git a/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/_filter.html.erb b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/_filter.html.erb
new file mode 100644
index 000000000..63882b8f0
--- /dev/null
+++ b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/_filter.html.erb
@@ -0,0 +1,11 @@
+
+
+<% content_for :page_specific_javascript do %>
+ <%= javascript_include_tag "sort_header" %>
+<% end %>
\ No newline at end of file
diff --git a/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/_form.html.erb b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/_form.html.erb
new file mode 100644
index 000000000..052cc8121
--- /dev/null
+++ b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/_form.html.erb
@@ -0,0 +1,132 @@
+<% # encoding: utf-8 %>
+
+ <% content_for :page_specific_javascript do -%>
+ <%= javascript_include_tag "inc/modal-preview" %>
+ <% end -%>
+
+ <%= f.error_messages %>
+
+
+
+
+
+
+
+
+
+
+
+
+ <%= 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")%>
+
+
+
+ <%= f.label :other_mailaddress ,"#{t("er_email.other_mailaddress")}(#{t("er_email.other_mailaddress_note")})"%>
+ <%= f.text_area :other_mailaddress, :class=>"span12", :cols=>"25", :rows=>"10" %>
+
+
+
+
+ <%= f.label :mail_content ,t("er_email.mail_content")%>
+ <%= f.text_area :mail_content, :style=>"width:100%", :class => 'tinymce_textarea' %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ File |
+ File Name |
+ |
+
+
+
+
+
+
+ |
+
+
+
+
+
+ <% @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 %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <%= 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" %>
+
+
+
+<% content_for :page_specific_javascript do %>
+ <%= javascript_include_tag "archive_plugin_form" %>
+ <%= javascript_include_tag "inc/jquery.imagesloaded.js" %>
+
+<% end %>
diff --git a/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/_form_file.html.erb b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/_form_file.html.erb
new file mode 100644
index 000000000..6f3def50a
--- /dev/null
+++ b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/_form_file.html.erb
@@ -0,0 +1,37 @@
+<% # encoding: utf-8 %>
+
+<%= f.error_messages %>
+
+
" class='list_item'>
+
+
+
+ <%= f.file_field :file %>
+ <%= form_file.file.file ? ( link_to t(:view), form_file.file.url, {:class => 'btn', :target => '_blank', :title => t(:view)} ) : '' %>
+
+
+ |
+
+
+
+
+ <%= f.text_field :title %>
+
+
+
+ |
+
+
+
+ <% if form_file.new_record? %>
+
+ <% else %>
+ <%= f.hidden_field :id %>
+
+ <%= f.hidden_field :_destroy, :value => nil, :class => 'should_destroy' %>
+ <% end %>
+
+
+ |
+
+
diff --git a/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/_sort_headers.html.erb b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/_sort_headers.html.erb
new file mode 100644
index 000000000..b3c0735c3
--- /dev/null
+++ b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/_sort_headers.html.erb
@@ -0,0 +1,6 @@
+<%= 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'] ,
+ ['sentdate', 'mail_sentdate','span2', 'er_email.mail_sentdate'] ).html_safe %>
\ No newline at end of file
diff --git a/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/destroy.js.erb b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/destroy.js.erb
new file mode 100644
index 000000000..670413d8e
--- /dev/null
+++ b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/destroy.js.erb
@@ -0,0 +1 @@
+$("#<%= dom_id @email_er %>").remove();
\ No newline at end of file
diff --git a/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/edit.html.erb b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/edit.html.erb
new file mode 100644
index 000000000..9a8c9bd2c
--- /dev/null
+++ b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/edit.html.erb
@@ -0,0 +1,6 @@
+
+
+<%= 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 %>
+
\ No newline at end of file
diff --git a/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/index.html.erb b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/index.html.erb
new file mode 100644
index 000000000..b413b247e
--- /dev/null
+++ b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/index.html.erb
@@ -0,0 +1,29 @@
+<%= render 'filter' %>
+
+
+
+
+ |
+ |
+ |
+ |
+ |
+ |
+
+
+
+ <%= render :partial => 'email_er', :collection => @email_ers %>
+
+
+
+
+
+<% content_for :page_specific_javascript do %>
+ <%= javascript_include_tag "/static/jquery.cycle.all.latest.js" %>
+ <%= javascript_include_tag "inc/modal-preview" %>
+<% end %>
\ No newline at end of file
diff --git a/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/index.js.erb b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/index.js.erb
new file mode 100644
index 000000000..e45c20f58
--- /dev/null
+++ b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/index.js.erb
@@ -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} %>");
\ No newline at end of file
diff --git a/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/new.html.erb b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/new.html.erb
new file mode 100644
index 000000000..8a56a278d
--- /dev/null
+++ b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/new.html.erb
@@ -0,0 +1,6 @@
+
+<%= 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 %>
+
+
diff --git a/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/realtime_preview.js.erb b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/realtime_preview.js.erb
new file mode 100644
index 000000000..5358b8563
--- /dev/null
+++ b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/realtime_preview.js.erb
@@ -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%>"
\ No newline at end of file
diff --git a/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/show.html.erb b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/show.html.erb
new file mode 100644
index 000000000..307b39233
--- /dev/null
+++ b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/email_ers/show.html.erb
@@ -0,0 +1 @@
+ <%= @email_er.mail_content.html_safe %>
\ No newline at end of file
diff --git a/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/fact_checks/_privilege_user.html.erb b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/fact_checks/_privilege_user.html.erb
new file mode 100644
index 000000000..97d50933d
--- /dev/null
+++ b/vendor/built_in_modules/er_email/app/views/panel/er_email/back_end/fact_checks/_privilege_user.html.erb
@@ -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| -%>
+
+
+ <% user.sub_roles.each do |sr| %>
+
<%= sr.key %>
+ <% 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 %>
+
+
+
+ <% if user.avatar? %>
+ <%= image_tag(user.avatar.thumb.url,:class => "member-img") %>
+ <% else %>
+ <%= image_tag "person.png",:class => "member-img" %>
+ <% end %>
+
+ <%= 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 -%>
+
+
+ <% end -%>
+<% end -%>
diff --git a/vendor/built_in_modules/er_email/config/locales/en.yml b/vendor/built_in_modules/er_email/config/locales/en.yml
new file mode 100644
index 000000000..c8db2948c
--- /dev/null
+++ b/vendor/built_in_modules/er_email/config/locales/en.yml
@@ -0,0 +1,24 @@
+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
+ 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 ","
+ email_file_limit: File upload size is limited to 1MB
\ No newline at end of file
diff --git a/vendor/built_in_modules/er_email/config/locales/zh_tw.yml b/vendor/built_in_modules/er_email/config/locales/zh_tw.yml
new file mode 100644
index 000000000..e7b899e6c
--- /dev/null
+++ b/vendor/built_in_modules/er_email/config/locales/zh_tw.yml
@@ -0,0 +1,24 @@
+zh_tw:
+
+ er_email:
+ er_email: 寄信群組
+ Group: 群組
+ Title: 主旨
+ Content: 內文
+ Files: 檔案
+ approval_setting: 審核設定
+ approve_email_er_fail: 審核失敗
+ approve_email_er_success: 審核成功
+ create_email_er_success: 建立資料成功
+ mail_subject: 主旨
+ mail_content: 信件內容
+ mail_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: 其他
+ email_file_limit: 檔案上傳容量限制為10MB
\ No newline at end of file
diff --git a/vendor/built_in_modules/er_email/config/routes.rb b/vendor/built_in_modules/er_email/config/routes.rb
new file mode 100644
index 000000000..1f1620c42
--- /dev/null
+++ b/vendor/built_in_modules/er_email/config/routes.rb
@@ -0,0 +1,35 @@
+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'
+ 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
diff --git a/vendor/built_in_modules/er_email/er_email.gemspec b/vendor/built_in_modules/er_email/er_email.gemspec
new file mode 100644
index 000000000..40628f546
--- /dev/null
+++ b/vendor/built_in_modules/er_email/er_email.gemspec
@@ -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
diff --git a/vendor/built_in_modules/er_email/init.rb b/vendor/built_in_modules/er_email/init.rb
new file mode 100644
index 000000000..d9a928b22
--- /dev/null
+++ b/vendor/built_in_modules/er_email/init.rb
@@ -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
diff --git a/vendor/built_in_modules/er_email/lib/er_email.rb b/vendor/built_in_modules/er_email/lib/er_email.rb
new file mode 100644
index 000000000..0647b8f7e
--- /dev/null
+++ b/vendor/built_in_modules/er_email/lib/er_email.rb
@@ -0,0 +1,4 @@
+require "er_email/engine"
+
+module ErEmail
+end
diff --git a/vendor/built_in_modules/er_email/lib/er_email/engine.rb b/vendor/built_in_modules/er_email/lib/er_email/engine.rb
new file mode 100644
index 000000000..04d86130c
--- /dev/null
+++ b/vendor/built_in_modules/er_email/lib/er_email/engine.rb
@@ -0,0 +1,4 @@
+module ErEmail
+ class Engine < ::Rails::Engine
+ end
+end
diff --git a/vendor/built_in_modules/er_email/lib/er_email/version.rb b/vendor/built_in_modules/er_email/lib/er_email/version.rb
new file mode 100644
index 000000000..9893c44ae
--- /dev/null
+++ b/vendor/built_in_modules/er_email/lib/er_email/version.rb
@@ -0,0 +1,3 @@
+module ErEmail
+ VERSION = "0.0.1"
+end
diff --git a/vendor/built_in_modules/er_email/lib/tasks/er_email_tasks.rake b/vendor/built_in_modules/er_email/lib/tasks/er_email_tasks.rake
new file mode 100644
index 000000000..ece048450
--- /dev/null
+++ b/vendor/built_in_modules/er_email/lib/tasks/er_email_tasks.rake
@@ -0,0 +1,4 @@
+# desc "Explaining what the task does"
+# task :er_email do
+# # Task goes here
+# end
diff --git a/vendor/built_in_modules/er_email/script/rails b/vendor/built_in_modules/er_email/script/rails
new file mode 100755
index 000000000..7dcd15d4b
--- /dev/null
+++ b/vendor/built_in_modules/er_email/script/rails
@@ -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'
diff --git a/vendor/built_in_modules/er_email/test/dummy/README.rdoc b/vendor/built_in_modules/er_email/test/dummy/README.rdoc
new file mode 100644
index 000000000..7c36f2356
--- /dev/null
+++ b/vendor/built_in_modules/er_email/test/dummy/README.rdoc
@@ -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:
+
rails new myapp (where
myapp is the application name)
+
+2. Change directory to
myapp and start the web server:
+
cd myapp; rails server (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
sudo gem install ruby-debug. 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
+ => "[#
nil, "body"=>nil, "id"=>"1"}>,
+ #"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
+ => #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 rails console from the application
+directory.
+
+Options:
+
+* Passing the -s, --sandbox argument will rollback any modifications
+ made to the database.
+* Passing an environment name as an argument will load the corresponding
+ environment. Example: rails console production.
+
+To reload your controllers and models after launching the console run
+reload!
+
+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 rails
+dbconsole. 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 rails dbconsole production. 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 layout :default 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 rake doc:app
+
+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.
diff --git a/vendor/built_in_modules/er_email/test/dummy/Rakefile b/vendor/built_in_modules/er_email/test/dummy/Rakefile
new file mode 100644
index 000000000..36458522c
--- /dev/null
+++ b/vendor/built_in_modules/er_email/test/dummy/Rakefile
@@ -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
diff --git a/vendor/built_in_modules/er_email/test/dummy/app/assets/javascripts/application.js b/vendor/built_in_modules/er_email/test/dummy/app/assets/javascripts/application.js
new file mode 100644
index 000000000..9097d830e
--- /dev/null
+++ b/vendor/built_in_modules/er_email/test/dummy/app/assets/javascripts/application.js
@@ -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 .
diff --git a/vendor/built_in_modules/er_email/test/dummy/app/assets/stylesheets/application.css b/vendor/built_in_modules/er_email/test/dummy/app/assets/stylesheets/application.css
new file mode 100644
index 000000000..3192ec897
--- /dev/null
+++ b/vendor/built_in_modules/er_email/test/dummy/app/assets/stylesheets/application.css
@@ -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 .
+ */
diff --git a/vendor/built_in_modules/er_email/test/dummy/app/controllers/application_controller.rb b/vendor/built_in_modules/er_email/test/dummy/app/controllers/application_controller.rb
new file mode 100644
index 000000000..e8065d950
--- /dev/null
+++ b/vendor/built_in_modules/er_email/test/dummy/app/controllers/application_controller.rb
@@ -0,0 +1,3 @@
+class ApplicationController < ActionController::Base
+ protect_from_forgery
+end
diff --git a/vendor/built_in_modules/er_email/test/dummy/app/helpers/application_helper.rb b/vendor/built_in_modules/er_email/test/dummy/app/helpers/application_helper.rb
new file mode 100644
index 000000000..de6be7945
--- /dev/null
+++ b/vendor/built_in_modules/er_email/test/dummy/app/helpers/application_helper.rb
@@ -0,0 +1,2 @@
+module ApplicationHelper
+end
diff --git a/vendor/built_in_modules/er_email/test/dummy/app/mailers/.gitkeep b/vendor/built_in_modules/er_email/test/dummy/app/mailers/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/vendor/built_in_modules/er_email/test/dummy/app/models/.gitkeep b/vendor/built_in_modules/er_email/test/dummy/app/models/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/vendor/built_in_modules/er_email/test/dummy/app/views/layouts/application.html.erb b/vendor/built_in_modules/er_email/test/dummy/app/views/layouts/application.html.erb
new file mode 100644
index 000000000..4cab26846
--- /dev/null
+++ b/vendor/built_in_modules/er_email/test/dummy/app/views/layouts/application.html.erb
@@ -0,0 +1,14 @@
+
+
+
+ Dummy
+ <%= stylesheet_link_tag "application", :media => "all" %>
+ <%= javascript_include_tag "application" %>
+ <%= csrf_meta_tags %>
+
+
+
+<%= yield %>
+
+
+
diff --git a/vendor/built_in_modules/er_email/test/dummy/config.ru b/vendor/built_in_modules/er_email/test/dummy/config.ru
new file mode 100644
index 000000000..1989ed8d0
--- /dev/null
+++ b/vendor/built_in_modules/er_email/test/dummy/config.ru
@@ -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
diff --git a/vendor/built_in_modules/er_email/test/dummy/config/application.rb b/vendor/built_in_modules/er_email/test/dummy/config/application.rb
new file mode 100644
index 000000000..c620eb9ff
--- /dev/null
+++ b/vendor/built_in_modules/er_email/test/dummy/config/application.rb
@@ -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
+
diff --git a/vendor/built_in_modules/er_email/test/dummy/config/boot.rb b/vendor/built_in_modules/er_email/test/dummy/config/boot.rb
new file mode 100644
index 000000000..eba068137
--- /dev/null
+++ b/vendor/built_in_modules/er_email/test/dummy/config/boot.rb
@@ -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__)
\ No newline at end of file
diff --git a/vendor/built_in_modules/er_email/test/dummy/config/database.yml b/vendor/built_in_modules/er_email/test/dummy/config/database.yml
new file mode 100644
index 000000000..51a4dd459
--- /dev/null
+++ b/vendor/built_in_modules/er_email/test/dummy/config/database.yml
@@ -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
diff --git a/vendor/built_in_modules/er_email/test/dummy/config/environment.rb b/vendor/built_in_modules/er_email/test/dummy/config/environment.rb
new file mode 100644
index 000000000..3da5eb91d
--- /dev/null
+++ b/vendor/built_in_modules/er_email/test/dummy/config/environment.rb
@@ -0,0 +1,5 @@
+# Load the rails application
+require File.expand_path('../application', __FILE__)
+
+# Initialize the rails application
+Dummy::Application.initialize!
diff --git a/vendor/built_in_modules/er_email/test/dummy/config/environments/development.rb b/vendor/built_in_modules/er_email/test/dummy/config/environments/development.rb
new file mode 100644
index 000000000..82c74d154
--- /dev/null
+++ b/vendor/built_in_modules/er_email/test/dummy/config/environments/development.rb
@@ -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
diff --git a/vendor/built_in_modules/er_email/test/dummy/config/environments/production.rb b/vendor/built_in_modules/er_email/test/dummy/config/environments/production.rb
new file mode 100644
index 000000000..bdac56a71
--- /dev/null
+++ b/vendor/built_in_modules/er_email/test/dummy/config/environments/production.rb
@@ -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
diff --git a/vendor/built_in_modules/er_email/test/dummy/config/environments/test.rb b/vendor/built_in_modules/er_email/test/dummy/config/environments/test.rb
new file mode 100644
index 000000000..f1a481417
--- /dev/null
+++ b/vendor/built_in_modules/er_email/test/dummy/config/environments/test.rb
@@ -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
diff --git a/vendor/built_in_modules/er_email/test/dummy/config/initializers/backtrace_silencers.rb b/vendor/built_in_modules/er_email/test/dummy/config/initializers/backtrace_silencers.rb
new file mode 100644
index 000000000..59385cdf3
--- /dev/null
+++ b/vendor/built_in_modules/er_email/test/dummy/config/initializers/backtrace_silencers.rb
@@ -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!
diff --git a/vendor/built_in_modules/er_email/test/dummy/config/initializers/inflections.rb b/vendor/built_in_modules/er_email/test/dummy/config/initializers/inflections.rb
new file mode 100644
index 000000000..5d8d9be23
--- /dev/null
+++ b/vendor/built_in_modules/er_email/test/dummy/config/initializers/inflections.rb
@@ -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
diff --git a/vendor/built_in_modules/er_email/test/dummy/config/initializers/mime_types.rb b/vendor/built_in_modules/er_email/test/dummy/config/initializers/mime_types.rb
new file mode 100644
index 000000000..72aca7e44
--- /dev/null
+++ b/vendor/built_in_modules/er_email/test/dummy/config/initializers/mime_types.rb
@@ -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
diff --git a/vendor/built_in_modules/er_email/test/dummy/config/initializers/secret_token.rb b/vendor/built_in_modules/er_email/test/dummy/config/initializers/secret_token.rb
new file mode 100644
index 000000000..530ccd6c0
--- /dev/null
+++ b/vendor/built_in_modules/er_email/test/dummy/config/initializers/secret_token.rb
@@ -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'
diff --git a/vendor/built_in_modules/er_email/test/dummy/config/initializers/session_store.rb b/vendor/built_in_modules/er_email/test/dummy/config/initializers/session_store.rb
new file mode 100644
index 000000000..952473ff9
--- /dev/null
+++ b/vendor/built_in_modules/er_email/test/dummy/config/initializers/session_store.rb
@@ -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
diff --git a/vendor/built_in_modules/er_email/test/dummy/config/initializers/wrap_parameters.rb b/vendor/built_in_modules/er_email/test/dummy/config/initializers/wrap_parameters.rb
new file mode 100644
index 000000000..999df2018
--- /dev/null
+++ b/vendor/built_in_modules/er_email/test/dummy/config/initializers/wrap_parameters.rb
@@ -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
diff --git a/vendor/built_in_modules/er_email/test/dummy/config/locales/en.yml b/vendor/built_in_modules/er_email/test/dummy/config/locales/en.yml
new file mode 100644
index 000000000..179c14ca5
--- /dev/null
+++ b/vendor/built_in_modules/er_email/test/dummy/config/locales/en.yml
@@ -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"
diff --git a/vendor/built_in_modules/er_email/test/dummy/config/routes.rb b/vendor/built_in_modules/er_email/test/dummy/config/routes.rb
new file mode 100644
index 000000000..eb8579be8
--- /dev/null
+++ b/vendor/built_in_modules/er_email/test/dummy/config/routes.rb
@@ -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
diff --git a/vendor/built_in_modules/er_email/test/dummy/lib/assets/.gitkeep b/vendor/built_in_modules/er_email/test/dummy/lib/assets/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/vendor/built_in_modules/er_email/test/dummy/log/.gitkeep b/vendor/built_in_modules/er_email/test/dummy/log/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/vendor/built_in_modules/er_email/test/dummy/public/404.html b/vendor/built_in_modules/er_email/test/dummy/public/404.html
new file mode 100644
index 000000000..9a48320a5
--- /dev/null
+++ b/vendor/built_in_modules/er_email/test/dummy/public/404.html
@@ -0,0 +1,26 @@
+
+
+
+ The page you were looking for doesn't exist (404)
+
+
+
+
+
+
+
The page you were looking for doesn't exist.
+
You may have mistyped the address or the page may have moved.
+
+
+
diff --git a/vendor/built_in_modules/er_email/test/dummy/public/422.html b/vendor/built_in_modules/er_email/test/dummy/public/422.html
new file mode 100644
index 000000000..83660ab18
--- /dev/null
+++ b/vendor/built_in_modules/er_email/test/dummy/public/422.html
@@ -0,0 +1,26 @@
+
+
+
+ The change you wanted was rejected (422)
+
+
+
+
+
+
+
The change you wanted was rejected.
+
Maybe you tried to change something you didn't have access to.
+
+
+
diff --git a/vendor/built_in_modules/er_email/test/dummy/public/500.html b/vendor/built_in_modules/er_email/test/dummy/public/500.html
new file mode 100644
index 000000000..f3648a0db
--- /dev/null
+++ b/vendor/built_in_modules/er_email/test/dummy/public/500.html
@@ -0,0 +1,25 @@
+
+
+
+ We're sorry, but something went wrong (500)
+
+
+
+
+
+
+
We're sorry, but something went wrong.
+
+
+
diff --git a/vendor/built_in_modules/er_email/test/dummy/public/favicon.ico b/vendor/built_in_modules/er_email/test/dummy/public/favicon.ico
new file mode 100644
index 000000000..e69de29bb
diff --git a/vendor/built_in_modules/er_email/test/dummy/script/rails b/vendor/built_in_modules/er_email/test/dummy/script/rails
new file mode 100755
index 000000000..f8da2cffd
--- /dev/null
+++ b/vendor/built_in_modules/er_email/test/dummy/script/rails
@@ -0,0 +1,6 @@
+#!/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.
+
+APP_PATH = File.expand_path('../../config/application', __FILE__)
+require File.expand_path('../../config/boot', __FILE__)
+require 'rails/commands'
diff --git a/vendor/built_in_modules/er_email/test/er_email_test.rb b/vendor/built_in_modules/er_email/test/er_email_test.rb
new file mode 100644
index 000000000..971b4b3e5
--- /dev/null
+++ b/vendor/built_in_modules/er_email/test/er_email_test.rb
@@ -0,0 +1,7 @@
+require 'test_helper'
+
+class ErEmailTest < ActiveSupport::TestCase
+ test "truth" do
+ assert_kind_of Module, ErEmail
+ end
+end
diff --git a/vendor/built_in_modules/er_email/test/integration/navigation_test.rb b/vendor/built_in_modules/er_email/test/integration/navigation_test.rb
new file mode 100644
index 000000000..97a94c9bb
--- /dev/null
+++ b/vendor/built_in_modules/er_email/test/integration/navigation_test.rb
@@ -0,0 +1,10 @@
+require 'test_helper'
+
+class NavigationTest < ActionDispatch::IntegrationTest
+ fixtures :all
+
+ # test "the truth" do
+ # assert true
+ # end
+end
+
diff --git a/vendor/built_in_modules/er_email/test/test_helper.rb b/vendor/built_in_modules/er_email/test/test_helper.rb
new file mode 100644
index 000000000..1e26a313c
--- /dev/null
+++ b/vendor/built_in_modules/er_email/test/test_helper.rb
@@ -0,0 +1,15 @@
+# Configure Rails Environment
+ENV["RAILS_ENV"] = "test"
+
+require File.expand_path("../dummy/config/environment.rb", __FILE__)
+require "rails/test_help"
+
+Rails.backtrace_cleaner.remove_silencers!
+
+# Load support files
+Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
+
+# Load fixtures from the engine
+if ActiveSupport::TestCase.method_defined?(:fixture_path=)
+ ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
+end