From 678f1eabef9ac20b4728163b8c1cbccc65afb7c2 Mon Sep 17 00:00:00 2001 From: Matt Fu Date: Wed, 22 Feb 2012 14:43:24 +0800 Subject: [PATCH 001/231] LDAP connection and modified Devise --- Gemfile | 3 ++ Gemfile.lock | 2 + app/controllers/sessions_controller.rb | 37 +++++++++++++++++++ app/models/user/user.rb | 1 + app/views/devise/confirmations/new.html.erb | 12 ++++++ .../mailer/confirmation_instructions.html.erb | 5 +++ .../reset_password_instructions.html.erb | 8 ++++ .../mailer/unlock_instructions.html.erb | 7 ++++ app/views/devise/passwords/edit.html.erb | 16 ++++++++ app/views/devise/passwords/new.html.erb | 12 ++++++ app/views/devise/registrations/edit.html.erb | 25 +++++++++++++ app/views/devise/registrations/new.html.erb | 18 +++++++++ app/views/devise/sessions/new.html.erb | 17 +++++++++ app/views/devise/shared/_links.erb | 25 +++++++++++++ app/views/devise/unlocks/new.html.erb | 12 ++++++ config/application.rb | 2 +- config/environments/development.rb | 30 +++++++-------- config/initializers/devise.rb | 5 +++ config/initializers/rulingcom_ldap.rb | 19 ++++++++++ config/locales/devise.en.yml | 2 + config/locales/devise.zh_tw.yml | 2 + config/routes.rb | 2 +- 22 files changed, 245 insertions(+), 17 deletions(-) create mode 100644 app/controllers/sessions_controller.rb create mode 100644 app/views/devise/confirmations/new.html.erb create mode 100644 app/views/devise/mailer/confirmation_instructions.html.erb create mode 100644 app/views/devise/mailer/reset_password_instructions.html.erb create mode 100644 app/views/devise/mailer/unlock_instructions.html.erb create mode 100644 app/views/devise/passwords/edit.html.erb create mode 100644 app/views/devise/passwords/new.html.erb create mode 100644 app/views/devise/registrations/edit.html.erb create mode 100644 app/views/devise/registrations/new.html.erb create mode 100644 app/views/devise/sessions/new.html.erb create mode 100644 app/views/devise/shared/_links.erb create mode 100644 app/views/devise/unlocks/new.html.erb create mode 100644 config/initializers/rulingcom_ldap.rb diff --git a/Gemfile b/Gemfile index e7f88e3f..94d29f4f 100644 --- a/Gemfile +++ b/Gemfile @@ -5,6 +5,7 @@ gem 'bson_ext' gem 'carrierwave' gem 'carrierwave-mongoid', :require => 'carrierwave/mongoid' gem 'devise' +gem "net-ldap", "~> 0.3.1" gem 'exception_notification' # Send error trace gem 'execjs' gem 'jquery-rails' @@ -21,6 +22,8 @@ gem 'sinatra' gem 'sprockets' gem 'tinymce-rails' + + # Gems used only for assets and not required # in production environments by default. group :assets do diff --git a/Gemfile.lock b/Gemfile.lock index 92db033d..1abf066f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -95,6 +95,7 @@ GEM mongo (~> 1.3) tzinfo (~> 0.3.22) multi_json (1.0.4) + net-ldap (0.3.1) orm_adapter (0.0.6) polyglot (0.3.3) rack (1.3.6) @@ -216,6 +217,7 @@ DEPENDENCIES kaminari mini_magick mongoid + net-ldap (~> 0.3.1) radius rails (>= 3.1.0, < 3.2.0) rake diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb new file mode 100644 index 00000000..3e31ca4e --- /dev/null +++ b/app/controllers/sessions_controller.rb @@ -0,0 +1,37 @@ +class SessionsController < Devise::SessionsController + prepend_before_filter :require_no_authentication, :only => [ :new, :create ] + include Devise::Controllers::InternalHelpers + + + # POST /resource/sign_in + def create + login_password = params[:user][:password] + login_uid = params[:user][:nccu_ldap_uid] + result = false + ldap = Net::LDAP.new + ldap.port = '8001' + ldap.host = '127.0.0.1' + ldap_filter = "(uid=#{login_uid})" + ldap_base = 'ou=People,dc=nccu,dc=edu,dc=tw' + ldap.authenticate("cn=uccn,ou=profile,dc=nccu,dc=edu,dc=tw","nccu2ucc") + if ldap.bind + result = ldap.bind_as(:base => ldap_base,:filter => ldap_filter,:password=> login_password) + if result + resource = User.find_or_initialize_by( nccu_ldap_uid: login_uid ) + # resource = env['warden'].authenticate!(:check_nccu_ldap) + # resource = warden.authenticate!(:scope => resource_name, :recall => "#{controller_path}#new") + set_flash_message(:notice, :signed_in) if is_navigational_format? + resource_name = resource._type.downcase + sign_in(resource_name, resource) + respond_with resource, :location => redirect_location(resource_name, resource) + else + flash[:notice] = t('devise.failure.ldap_invalid') + render :action => "new" + end + else + flash[:notice] = t('devise.failure.ldap_connection_failed') + render :action => "new" + end + end + +end \ No newline at end of file diff --git a/app/models/user/user.rb b/app/models/user/user.rb index 13d282bb..6796b47e 100644 --- a/app/models/user/user.rb +++ b/app/models/user/user.rb @@ -9,6 +9,7 @@ class User field :admin, :type => Boolean, :default => true field :active_role + field :nccu_ldap_uid has_many :attribute_values, :autosave => true, :dependent => :destroy has_many :app_auths,as: :privilege_apps,:inverse_of => :privilege_lists diff --git a/app/views/devise/confirmations/new.html.erb b/app/views/devise/confirmations/new.html.erb new file mode 100644 index 00000000..b7ae403c --- /dev/null +++ b/app/views/devise/confirmations/new.html.erb @@ -0,0 +1,12 @@ +

Resend confirmation instructions

+ +<%= form_for(resource, :as => resource_name, :url => confirmation_path(resource_name), :html => { :method => :post }) do |f| %> + <%= devise_error_messages! %> + +
<%= f.label :email %>
+ <%= f.email_field :email %>
+ +
<%= f.submit "Resend confirmation instructions" %>
+<% end %> + +<%= render :partial => "devise/shared/links" %> \ No newline at end of file diff --git a/app/views/devise/mailer/confirmation_instructions.html.erb b/app/views/devise/mailer/confirmation_instructions.html.erb new file mode 100644 index 00000000..a6ea8ca1 --- /dev/null +++ b/app/views/devise/mailer/confirmation_instructions.html.erb @@ -0,0 +1,5 @@ +

Welcome <%= @resource.email %>!

+ +

You can confirm your account through the link below:

+ +

<%= link_to 'Confirm my account', confirmation_url(@resource, :confirmation_token => @resource.confirmation_token) %>

diff --git a/app/views/devise/mailer/reset_password_instructions.html.erb b/app/views/devise/mailer/reset_password_instructions.html.erb new file mode 100644 index 00000000..ae9e888a --- /dev/null +++ b/app/views/devise/mailer/reset_password_instructions.html.erb @@ -0,0 +1,8 @@ +

Hello <%= @resource.email %>!

+ +

Someone has requested a link to change your password, and you can do this through the link below.

+ +

<%= link_to 'Change my password', edit_password_url(@resource, :reset_password_token => @resource.reset_password_token) %>

+ +

If you didn't request this, please ignore this email.

+

Your password won't change until you access the link above and create a new one.

diff --git a/app/views/devise/mailer/unlock_instructions.html.erb b/app/views/devise/mailer/unlock_instructions.html.erb new file mode 100644 index 00000000..2263c219 --- /dev/null +++ b/app/views/devise/mailer/unlock_instructions.html.erb @@ -0,0 +1,7 @@ +

Hello <%= @resource.email %>!

+ +

Your account has been locked due to an excessive amount of unsuccessful sign in attempts.

+ +

Click the link below to unlock your account:

+ +

<%= link_to 'Unlock my account', unlock_url(@resource, :unlock_token => @resource.unlock_token) %>

diff --git a/app/views/devise/passwords/edit.html.erb b/app/views/devise/passwords/edit.html.erb new file mode 100644 index 00000000..e75c9371 --- /dev/null +++ b/app/views/devise/passwords/edit.html.erb @@ -0,0 +1,16 @@ +

Change your password

+ +<%= form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :put }) do |f| %> + <%= devise_error_messages! %> + <%= f.hidden_field :reset_password_token %> + +
<%= f.label :password, "New password" %>
+ <%= f.password_field :password %>
+ +
<%= f.label :password_confirmation, "Confirm new password" %>
+ <%= f.password_field :password_confirmation %>
+ +
<%= f.submit "Change my password" %>
+<% end %> + +<%= render :partial => "devise/shared/links" %> \ No newline at end of file diff --git a/app/views/devise/passwords/new.html.erb b/app/views/devise/passwords/new.html.erb new file mode 100644 index 00000000..6c21e9fd --- /dev/null +++ b/app/views/devise/passwords/new.html.erb @@ -0,0 +1,12 @@ +

Forgot your password?

+ +<%= form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :post }) do |f| %> + <%= devise_error_messages! %> + +
<%= f.label :email %>
+ <%= f.email_field :email %>
+ +
<%= f.submit "Send me reset password instructions" %>
+<% end %> + +<%= render :partial => "devise/shared/links" %> \ No newline at end of file diff --git a/app/views/devise/registrations/edit.html.erb b/app/views/devise/registrations/edit.html.erb new file mode 100644 index 00000000..ff380509 --- /dev/null +++ b/app/views/devise/registrations/edit.html.erb @@ -0,0 +1,25 @@ +

Edit <%= resource_name.to_s.humanize %>

+ +<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f| %> + <%= devise_error_messages! %> + +
<%= f.label :email %>
+ <%= f.email_field :email %>
+ +
<%= f.label :password %> (leave blank if you don't want to change it)
+ <%= f.password_field :password %>
+ +
<%= f.label :password_confirmation %>
+ <%= f.password_field :password_confirmation %>
+ +
<%= f.label :current_password %> (we need your current password to confirm your changes)
+ <%= f.password_field :current_password %>
+ +
<%= f.submit "Update" %>
+<% end %> + +

Cancel my account

+ +

Unhappy? <%= link_to "Cancel my account", registration_path(resource_name), :confirm => "Are you sure?", :method => :delete %>.

+ +<%= link_to "Back", :back %> diff --git a/app/views/devise/registrations/new.html.erb b/app/views/devise/registrations/new.html.erb new file mode 100644 index 00000000..d15e275a --- /dev/null +++ b/app/views/devise/registrations/new.html.erb @@ -0,0 +1,18 @@ +

Sign up

+ +<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %> + <%= devise_error_messages! %> + +
<%= f.label :email %>
+ <%= f.email_field :email %>
+ +
<%= f.label :password %>
+ <%= f.password_field :password %>
+ +
<%= f.label :password_confirmation %>
+ <%= f.password_field :password_confirmation %>
+ +
<%= f.submit "Sign up" %>
+<% end %> + +<%= render :partial => "devise/shared/links" %> diff --git a/app/views/devise/sessions/new.html.erb b/app/views/devise/sessions/new.html.erb new file mode 100644 index 00000000..93d15237 --- /dev/null +++ b/app/views/devise/sessions/new.html.erb @@ -0,0 +1,17 @@ +

Sign in

+ +<%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %> +
<%= f.label :nccu_ldap_uid %>
+ <%= f.text_field :nccu_ldap_uid %>
+ +
<%= f.label :password %>
+ <%= f.password_field :password %>
+ + <% if devise_mapping.rememberable? -%> +
<%= f.check_box :remember_me %> <%= f.label :remember_me %>
+ <% end -%> + +
<%= f.submit "Sign in" %>
+<% end %> + +<%= render :partial => "devise/shared/links" %> \ No newline at end of file diff --git a/app/views/devise/shared/_links.erb b/app/views/devise/shared/_links.erb new file mode 100644 index 00000000..eab783a4 --- /dev/null +++ b/app/views/devise/shared/_links.erb @@ -0,0 +1,25 @@ +<%- if controller_name != 'sessions' %> + <%= link_to "Sign in", new_session_path(resource_name) %>
+<% end -%> + +<%- if devise_mapping.registerable? && controller_name != 'registrations' %> + <%= link_to "Sign up", new_registration_path(resource_name) %>
+<% end -%> + +<%- if devise_mapping.recoverable? && controller_name != 'passwords' %> + <%= link_to "Forgot your password?", new_password_path(resource_name) %>
+<% end -%> + +<%- if devise_mapping.confirmable? && controller_name != 'confirmations' %> + <%= link_to "Didn't receive confirmation instructions?", new_confirmation_path(resource_name) %>
+<% end -%> + +<%- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks' %> + <%= link_to "Didn't receive unlock instructions?", new_unlock_path(resource_name) %>
+<% end -%> + +<%- if devise_mapping.omniauthable? %> + <%- resource_class.omniauth_providers.each do |provider| %> + <%= link_to "Sign in with #{provider.to_s.titleize}", omniauth_authorize_path(resource_name, provider) %>
+ <% end -%> +<% end -%> \ No newline at end of file diff --git a/app/views/devise/unlocks/new.html.erb b/app/views/devise/unlocks/new.html.erb new file mode 100644 index 00000000..c6cdcfe5 --- /dev/null +++ b/app/views/devise/unlocks/new.html.erb @@ -0,0 +1,12 @@ +

Resend unlock instructions

+ +<%= form_for(resource, :as => resource_name, :url => unlock_path(resource_name), :html => { :method => :post }) do |f| %> + <%= devise_error_messages! %> + +
<%= f.label :email %>
+ <%= f.email_field :email %>
+ +
<%= f.submit "Resend unlock instructions" %>
+<% end %> + +<%= render :partial => "devise/shared/links" %> \ No newline at end of file diff --git a/config/application.rb b/config/application.rb index 3a7fb91f..74e0c399 100644 --- a/config/application.rb +++ b/config/application.rb @@ -19,7 +19,7 @@ module PrototypeR4 # Add directories for plugins config.paths["vendor/plugins"] += %W(#{config.root}/vendor/built_in_modules) config.paths["vendor/plugins"] += %W(#{config.root}/vendor/downloaded_modules) - + config.paths.app.views << "app/views/devise" # Settings in config/environments/* take precedence over those specified here. # Application configuration should go into files in config/initializers diff --git a/config/environments/development.rb b/config/environments/development.rb index d1b671e5..549fc11e 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -24,21 +24,21 @@ PrototypeR4::Application.configure do config.action_dispatch.best_standards_support = :builtin - config.middleware.use ExceptionNotifier, - :email_prefix => "[R4_error]", - :sender_address => %{"notifier" }, - :exception_recipients => %w{chris@rulingcom.com} - - config.action_mailer.delivery_method = :smtp - config.action_mailer.smtp_settings = { - :tls => true, - :enable_starttls_auto => true, - :address => "smtp.gmail.com", - :port => '587', - :domain => "smtp.gmail.com", - :authentication => "plain", - :user_name => "redmine@rulingcom.com", - :password => "rulingredmine" } + # config.middleware.use ExceptionNotifier, + # :email_prefix => "[R4_error]", + # :sender_address => %{"notifier" }, + # :exception_recipients => %w{chris@rulingcom.com} + # + # config.action_mailer.delivery_method = :smtp + # config.action_mailer.smtp_settings = { + # :tls => true, + # :enable_starttls_auto => true, + # :address => "smtp.gmail.com", + # :port => '587', + # :domain => "smtp.gmail.com", + # :authentication => "plain", + # :user_name => "redmine@rulingcom.com", + # :password => "rulingredmine" } end diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index 03480dbe..6e608309 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -21,6 +21,8 @@ Devise.setup do |config| # parameters are used only when authenticating and not when retrieving from # session. If you need permissions, you should implement that in a before filter. # config.authentication_keys = [ :email ] + config.authentication_keys = [ :nccu_ldap_uid ] + # Tell if authentication through request.params is enabled. True by default. # config.params_authenticatable = true @@ -139,4 +141,7 @@ Devise.setup do |config| # end # manager.default_strategies(:scope => :user).unshift :twitter_oauth # end + config.warden do |manager| + manager.default_strategies.unshift :check_nccu_ldap + end end diff --git a/config/initializers/rulingcom_ldap.rb b/config/initializers/rulingcom_ldap.rb new file mode 100644 index 00000000..28625797 --- /dev/null +++ b/config/initializers/rulingcom_ldap.rb @@ -0,0 +1,19 @@ +# Warden::Strategies.add(:check_nccu_ldap) do +# def valid? +# # code here to check whether to try and authenticate using this strategy; +# params['nccu_ldap_uid'] && params['password'] +# end +# def authenticate! +# debugger +# user = User.first(conditions:{ nccu_ldap_uid: "901001" }) +# if user +# success! user +# else +# success! User.create +# +# # fail!(message) +# # User.create +# end +# end +# +# end \ No newline at end of file diff --git a/config/locales/devise.en.yml b/config/locales/devise.en.yml index 5e4e4332..8d06c609 100644 --- a/config/locales/devise.en.yml +++ b/config/locales/devise.en.yml @@ -9,6 +9,8 @@ en: failure: unauthenticated: 'You need to sign in or sign up before continuing.' unconfirmed: 'You have to confirm your account before continuing.' + ldap_invalid: 'Your LDAP account is invalid' + ldap_connection_failed: 'LDAP connection failed' locked: 'Your account is locked.' invalid: 'Invalid email or password.' invalid_token: 'Invalid authentication token.' diff --git a/config/locales/devise.zh_tw.yml b/config/locales/devise.zh_tw.yml index bd5c4a43..d36054d5 100644 --- a/config/locales/devise.zh_tw.yml +++ b/config/locales/devise.zh_tw.yml @@ -9,6 +9,8 @@ zh_tw: failure: unauthenticated: '您需要先註冊、登入後才能繼續。' unconfirmed: '您的帳號需需要經過確認後,才能繼續。' + ldap_invalid: '您的LDAP帳號錯誤' + ldap_connection_failed: '與LDAP之間連線異常' locked: '您的帳號已被鎖定。' invalid: 'Email 或密碼是無效的。' invalid_token: '無效的認證代碼。' diff --git a/config/routes.rb b/config/routes.rb index cd3921f0..24dd9e95 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,6 +1,6 @@ PrototypeR4::Application.routes.draw do - devise_for :users + devise_for :users,:controllers => {:sessions => 'sessions'} # routes for sinatra app match '/site/set_registered', :to => CentralServerExchangeApp From 3209f9aa27c7b74af6cb69197554be02a08e39b6 Mon Sep 17 00:00:00 2001 From: Matt Fu Date: Fri, 24 Feb 2012 19:07:47 +0800 Subject: [PATCH 002/231] Complete for 229 check. --- Gemfile | 1 + Gemfile.lock | 3 + app/controllers/sessions_controller.rb | 21 +++- app/models/user/user.rb | 3 + config/initializers/devise.rb | 3 - config/initializers/middle_site_connection.rb | 14 +++ lib/tasks/mid_site_sync.rake | 106 ++++++++++++++++++ .../back_end/_announcement_secondary.html.erb | 14 +++ .../announcements/_list_table.html.erb | 15 +++ .../back_end/announcements/list_mine.html.erb | 12 ++ 10 files changed, 187 insertions(+), 5 deletions(-) create mode 100644 config/initializers/middle_site_connection.rb create mode 100644 lib/tasks/mid_site_sync.rake create mode 100644 vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/_announcement_secondary.html.erb create mode 100644 vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/announcements/_list_table.html.erb create mode 100644 vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/announcements/list_mine.html.erb diff --git a/Gemfile b/Gemfile index 94d29f4f..208e49f2 100644 --- a/Gemfile +++ b/Gemfile @@ -14,6 +14,7 @@ gem 'kaminari' gem 'mini_magick' gem 'mongoid' +gem 'mysql2' gem 'radius' gem 'rake' gem 'ruby-debug19' diff --git a/Gemfile.lock b/Gemfile.lock index 1abf066f..2357dd03 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -95,6 +95,8 @@ GEM mongo (~> 1.3) tzinfo (~> 0.3.22) multi_json (1.0.4) + mysql2 (0.3.11) + mysql2 (0.3.11-x86-mingw32) net-ldap (0.3.1) orm_adapter (0.0.6) polyglot (0.3.3) @@ -217,6 +219,7 @@ DEPENDENCIES kaminari mini_magick mongoid + mysql2 net-ldap (~> 0.3.1) radius rails (>= 3.1.0, < 3.2.0) diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb index 3e31ca4e..75c18d87 100644 --- a/app/controllers/sessions_controller.rb +++ b/app/controllers/sessions_controller.rb @@ -17,7 +17,8 @@ class SessionsController < Devise::SessionsController if ldap.bind result = ldap.bind_as(:base => ldap_base,:filter => ldap_filter,:password=> login_password) if result - resource = User.find_or_initialize_by( nccu_ldap_uid: login_uid ) + nccu_id = get_nccu_id_from_mid_site(login_uid) + resource = User.first(conditions:{ nccu_id: nccu_id }) # resource = env['warden'].authenticate!(:check_nccu_ldap) # resource = warden.authenticate!(:scope => resource_name, :recall => "#{controller_path}#new") set_flash_message(:notice, :signed_in) if is_navigational_format? @@ -33,5 +34,21 @@ class SessionsController < Devise::SessionsController render :action => "new" end end - +private + def get_nccu_id_from_mid_site(ldap_id) + nccu_id = MID_CLIENT.query("SELECT nccu_id FROM rss_aaldap_view WHERE ldap_id='#{ldap_id}' LIMIT 1").first['nccu_id'] rescue nil + # + # if nccu_id.nil? + # #show_error + # p 'account not exist' + # #should return? + # end + # # User.first(conditions: { }) + # rss_pautlst_ut = MID_CLIENT.query("SELECT * FROM rss_pautlst_ut WHERE nccu_id='#{nccu_id}' LIMIT 1").first rescue nil + # # rss_paunit = client.query("SELECT * FROM rss_paunit LIMIT 1").first rescue nil + # user = User.find_or_create_by(:nccu_id => nccu_id) + # p user + # # p rss_paunit + # + end end \ No newline at end of file diff --git a/app/models/user/user.rb b/app/models/user/user.rb index 6796b47e..585ed3e1 100644 --- a/app/models/user/user.rb +++ b/app/models/user/user.rb @@ -22,6 +22,9 @@ class User has_and_belongs_to_many :sub_roles accepts_nested_attributes_for :attribute_values, :allow_destroy => true + scope :remote_account, where(:nccu_id.ne => nil) + + def avb_apps sub_role_ids_ary=self.sub_roles.collect{|t| t.id} query1 = AppAuth.any_in({sub_role_ids: sub_role_ids_ary}).excludes(blocked_user_ids: self.id) diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index 6e608309..ea19b137 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -141,7 +141,4 @@ Devise.setup do |config| # end # manager.default_strategies(:scope => :user).unshift :twitter_oauth # end - config.warden do |manager| - manager.default_strategies.unshift :check_nccu_ldap - end end diff --git a/config/initializers/middle_site_connection.rb b/config/initializers/middle_site_connection.rb new file mode 100644 index 00000000..cbe87392 --- /dev/null +++ b/config/initializers/middle_site_connection.rb @@ -0,0 +1,14 @@ +#encoding: utf-8 + +require 'mysql2' + + +mid_host = { + :host => '127.0.0.1', #mruling.nccu.edu.tw + :port => 8005, + :username => "root", + :password => "a3G6yWd9", + :database => "RSS23_NCCU_MIDDLE", + :encoding => "UTF8" +} +MID_CLIENT = Mysql2::Client.new(mid_host) diff --git a/lib/tasks/mid_site_sync.rake b/lib/tasks/mid_site_sync.rake new file mode 100644 index 00000000..745483d0 --- /dev/null +++ b/lib/tasks/mid_site_sync.rake @@ -0,0 +1,106 @@ +# encoding: utf-8 + +namespace :mid_site do + attr_from_mid = %w{nccu_id psn_nam ut_chi_m eml_adr off_tel_ext sta_num} + officer_posgrp_code = %w{02 06 10 05} #from RSS2 + admin_role = nil + sub_role = nil + + task :sync => :environment do + users_from_mid = MID_CLIENT.query("SELECT #{attr_from_mid.join(',')} FROM rss_pautlst_ut WHERE posgrp_cod IN (#{officer_posgrp_code.join(',')})") + remote_list = users_from_mid.collect{|t| t["nccu_id"]} + + #remove delete user sho has been deleted at remote first + local_need_remove = User.all.collect{|t| t.nccu_id rescue nil}.uniq.delete_if {|x| x == nil} - remote_list + local_need_remove.each{|user_id| (User.find user_id).destroy} + + #starting update user + users_from_mid.each do |mid_user| + local_user = User.find_or_initialize_by(:nccu_id => mid_user["nccu_id"]) + local_user.update_attributes(mid_user) + local_user.save! + end + end + + task :install_admin => :before_instll_admin do + admins_nccu_id = '2772' + # admin_role = Role.find_or_create_by( key: 'administrator') + # sub_role = admin_role.sub_roles.find_or_create_by(:key => 'computer_center') + info_profile = Info.first(conditions: {:key => 'profile'}) + + user_from_mid = MID_CLIENT.query("SELECT #{attr_from_mid.join(',')} FROM rss_pautlst_ut WHERE posgrp_cod IN (#{officer_posgrp_code.join(',')}) AND nccu_id = '#{admins_nccu_id}' limit 1") + admin_at_mid = user_from_mid.first + user_first_name = admin_at_mid["psn_nam"].size > 3 ? admin_at_mid["psn_nam"][3..-1] : admin_at_mid["psn_nam"][1..-1] + user_last_name = admin_at_mid["psn_nam"].size > 3 ? admin_at_mid["psn_nam"][1..2] : admin_at_mid["psn_nam"][0] + local_user = User.find_or_initialize_by(:nccu_id => admin_at_mid["nccu_id"]) + local_user.update_attributes(:email => admin_at_mid["eml_adr"], :admin => true, :role_id => admin_role.id, :sub_role_ids => [sub_role.id]) + + # local_user.role = admin_role + # local_user.sub_roles << + AttributeValue.create( :user => local_user, :attribute_field => info_profile.attribute_fields[0], :key => 'first_name', :en => user_first_name, :zh_tw => user_first_name ) + AttributeValue.create( :user_id => local_user.id, :attribute_field_id => info_profile.attribute_fields[1].id, :key => 'last_name', :en => user_last_name, :zh_tw => user_last_name ) + #AttributeValue.create( :user_id => local_user.id, :attribute_field_id => sr_1_2.attribute_fields[0].id, :key => 'field', :en => 'Computer Architecture', :zh_tw => '計算機系統結構' ) + #AttributeValue.create( :user_id => local_user.id, :attribute_field_id => sr_1_2.attribute_fields[1].id, :key => 'department', :en => user_from_mid["ut_chi_m"], :zh_tw => user_from_mid["ut_chi_m"] ) + #AttributeValue.create( :user_id => local_user.id, :attribute_field_id => sr_1_2.attribute_fields[2].id, :key => 'speciality', :en => 'HSR', :zh_tw => '高鐵' ) + + end + + task :install_test => :before_instll_admin do + admins_nccu_id = '139716' + # admin_role = Role.find_or_create_by( key: 'administrator') + # sub_role = admin_role.sub_roles.find_or_create_by(:key => 'computer_center') + info_profile = Info.first(conditions: {:key => 'profile'}) + + user_from_mid = MID_CLIENT.query("SELECT #{attr_from_mid.join(',')} FROM rss_pautlst_ut WHERE nccu_id = '#{admins_nccu_id}' limit 1") + admin_at_mid = user_from_mid.first + user_first_name = admin_at_mid["psn_nam"].size > 3 ? admin_at_mid["psn_nam"][3..-1] : admin_at_mid["psn_nam"][1..-1] + user_last_name = admin_at_mid["psn_nam"].size > 3 ? admin_at_mid["psn_nam"][1..2] : admin_at_mid["psn_nam"][0] + local_user = User.find_or_initialize_by(:nccu_id => admin_at_mid["nccu_id"]) + local_user.update_attributes(:email => admin_at_mid["eml_adr"], :admin => true, :role_id => admin_role.id, :sub_role_ids => [sub_role.id]) + + AttributeValue.create( :user => local_user, :attribute_field => info_profile.attribute_fields[0], :key => 'first_name', :en => user_first_name, :zh_tw => user_first_name ) + AttributeValue.create( :user_id => local_user.id, :attribute_field_id => info_profile.attribute_fields[1].id, :key => 'last_name', :en => user_last_name, :zh_tw => user_last_name ) + + end + + task :before_instll_admin => :environment do + + var_1 = I18nVariable.find_or_create_by( :document_class => 'Role', :key => 'administrator', :en => 'Administrator', :zh_tw => '管理員' ) + var_1_1 = I18nVariable.find_or_create_by( :document_class => 'SubRole', :key => 'computer_center', :en => 'Computer Center', :zh_tw => '計算機中心', :parent_id => var_1.id ) + + admin_role = Role.find_or_create_by( :key => 'administrator',:built_in => true) + admin_role.i18n_variable =var_1 + admin_role.save! + + sub_role = admin_role.sub_roles.find_or_create_by(:key => 'computer_center', :built_in => true) + sub_role.i18n_variable =var_1_1 + sub_role.save! + + #var_1_1_1 = I18nVariable.create!( :document_class => 'Attribute', :key => 'field', :en => 'Field', :zh_tw => '領域', :parent_id => var_1_1.id ) + #var_1_1_2 = I18nVariable.create!( :document_class => 'Attribute', :key => 'department', :en => 'Department', :zh_tw => '學系', :parent_id => var_1_1.id ) + + end + + + task :clean_local_account => :environment do + User.remote_account.each{|user| user.destroy} + end + + task :claen_cc => [:clean_i18n_vars,:clean_admin_role_and_sub_role] do + + end + + task :clean_i18n_vars => :environment do + i18ns = I18nVariable.any_in( key: ['administrator','computer_center']) + i18ns.each { |var| var.destroy } + end + + task :clean_admin_role_and_sub_role => :environment do + data = Role.any_in( key: ['administrator','computer_center']) + data.each { |var| var.destroy } + + data = SubRole.any_in( key: ['administrator','computer_center']) + data.each { |var| var.destroy } + + end +end diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/_announcement_secondary.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/_announcement_secondary.html.erb new file mode 100644 index 00000000..40f5e871 --- /dev/null +++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/_announcement_secondary.html.erb @@ -0,0 +1,14 @@ +
+
+
+
+
+
    +
  • <%= link_to t('bulletin.announcement_list'), panel_announcement_back_end_bulletins_path if is_manager?%>
  • +
  • <%= link_to t('bulletin.new_announcement_class'), panel_announcement_back_end_bulletin_categorys_path if is_manager?%>
  • +
  • <%= link_to t('bulletin.fact_check_for_manager'), panel_announcement_back_end_fact_checks_path if is_manager?%>
  • + +
  • <%= link_to t('bulletin.my_announcement'), panel_announcement_back_end_list_mine_path if is_sub_manager? %>
  • +
  • <%= link_to t('bulletin.new_announcement'), new_panel_announcement_back_end_bulletin_path if is_sub_manager? %>
  • + +
\ No newline at end of file diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/announcements/_list_table.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/announcements/_list_table.html.erb new file mode 100644 index 00000000..a8c5a83b --- /dev/null +++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/announcements/_list_table.html.erb @@ -0,0 +1,15 @@ +

<%= bulletin_category.key %>

+ + + + + + + + + + +<% bulletin_category.bulletins.each do |post| %> + <%= render :partial => 'panel/announcement/back_end/bulletins/bulletins', :locals => {:post => post,:fact_check_allow=>false} %> +<% end %> +
<%= t('bulletin.status') %><%= t('bulletin.category') %><%= t('bulletin.title') %><%= t('bulletin.postdate') %><%= t('bulletin.deadline') %><%= t('bulletin.action') %>
\ No newline at end of file diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/announcements/list_mine.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/announcements/list_mine.html.erb new file mode 100644 index 00000000..2bd98827 --- /dev/null +++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/announcements/list_mine.html.erb @@ -0,0 +1,12 @@ +<% content_for :secondary do %> +<%= render :partial => '/panel/announcement/back_end/announcement_secondary' %> +<% end -%> + +<%= flash_messages %> + +
+
+
+
+
+<%= render :partial => "list_table", :collection => @bulletin_categorys ,:as => :bulletin_category%> From b84b7bad63155c1a951cc3c55ac899bbe3564f27 Mon Sep 17 00:00:00 2001 From: Matt Fu Date: Wed, 29 Feb 2012 12:35:54 +0800 Subject: [PATCH 003/231] ldap config for 0229 nccu demo --- app/controllers/sessions_controller.rb | 6 ++++-- config/initializers/middle_site_connection.rb | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb index 75c18d87..3dd6629e 100644 --- a/app/controllers/sessions_controller.rb +++ b/app/controllers/sessions_controller.rb @@ -9,8 +9,10 @@ class SessionsController < Devise::SessionsController login_uid = params[:user][:nccu_ldap_uid] result = false ldap = Net::LDAP.new - ldap.port = '8001' - ldap.host = '127.0.0.1' + # ldap.port = '8001' + # ldap.host = '127.0.0.1' + ldap.port = '389' + ldap.host = '140.119.166.23' ldap_filter = "(uid=#{login_uid})" ldap_base = 'ou=People,dc=nccu,dc=edu,dc=tw' ldap.authenticate("cn=uccn,ou=profile,dc=nccu,dc=edu,dc=tw","nccu2ucc") diff --git a/config/initializers/middle_site_connection.rb b/config/initializers/middle_site_connection.rb index cbe87392..ef20fc72 100644 --- a/config/initializers/middle_site_connection.rb +++ b/config/initializers/middle_site_connection.rb @@ -4,8 +4,8 @@ require 'mysql2' mid_host = { - :host => '127.0.0.1', #mruling.nccu.edu.tw - :port => 8005, + :host => 'mruling.nccu.edu.tw', #mruling.nccu.edu.tw or 127.0.0.1 + :port => 3006, #3306 or 8005 :username => "root", :password => "a3G6yWd9", :database => "RSS23_NCCU_MIDDLE", From 819f81502376d56205fd32857337d562137cee04 Mon Sep 17 00:00:00 2001 From: Matt Fu Date: Wed, 29 Feb 2012 13:15:25 +0800 Subject: [PATCH 004/231] for different database for demo --- config/mongoid.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/mongoid.yml b/config/mongoid.yml index 0270b13c..dbb126f6 100644 --- a/config/mongoid.yml +++ b/config/mongoid.yml @@ -8,7 +8,7 @@ defaults: &defaults development: <<: *defaults - database: prototype_r4_development + database: prototype_r4_ldap0229 test: <<: *defaults From d5a2de5476ab06a42dfe2962574cb78aa158a9b9 Mon Sep 17 00:00:00 2001 From: Matt Fu Date: Tue, 6 Mar 2012 16:41:06 +0800 Subject: [PATCH 005/231] LDAP with sync rake task --- .../admin/module_apps_controller.rb | 10 +++- .../admin/page_parts_controller.rb | 13 ++-- app/controllers/orbit_widget_controller.rb | 2 +- app/controllers/sessions_controller.rb | 21 ++++--- .../_app_selector.html.erb | 0 app/views/devise/sessions/new.html.erb | 4 +- app/views/layouts/_orbit_bar.html.erb | 2 +- config/initializers/middle_site_connection.rb | 4 +- config/locales/devise.en.yml | 1 + config/locales/devise.zh_tw.yml | 1 + config/locales/en.yml | 2 + config/locales/zh_tw.yml | 5 +- lib/tasks/mid_site_sync.rake | 59 ++++++++++++++++--- .../announcement/announcement.json | 1 + .../back_end/bulletin_categorys_controller.rb | 3 +- .../back_end/bulletins_controller.rb | 8 +-- .../front_end/bulletins_controller.rb | 2 +- .../widget/bulletins_controller.rb | 2 +- .../panel/new_blog/widget/posts_controller.rb | 2 +- .../front_end/page_contexts_controller.rb | 2 +- .../front_end/web_links_controller.rb | 2 +- .../widget/web_links_controller.rb | 2 +- .../web_resource/web_resource.json | 1 + 23 files changed, 109 insertions(+), 40 deletions(-) rename app/views/admin/{attributes => module_apps}/_app_selector.html.erb (100%) diff --git a/app/controllers/admin/module_apps_controller.rb b/app/controllers/admin/module_apps_controller.rb index 13075a42..e93fb521 100644 --- a/app/controllers/admin/module_apps_controller.rb +++ b/app/controllers/admin/module_apps_controller.rb @@ -10,8 +10,16 @@ class Admin::ModuleAppsController < ApplicationController def reload_frontend_pages + @categories =[] @module_app = ModuleApp.find(params[:id]) - @categories = @module_app.key.eql?('announcement') ? BulletinCategory.all : nil + unless (@module_app.category.nil? rescue true) + @module_app.category.each do |category| + @categories << eval(category).all.entries + end + @categories.flatten! + else + @categories = nil + end respond_to do |format| format.js {} end diff --git a/app/controllers/admin/page_parts_controller.rb b/app/controllers/admin/page_parts_controller.rb index bb759403..1fb6752a 100644 --- a/app/controllers/admin/page_parts_controller.rb +++ b/app/controllers/admin/page_parts_controller.rb @@ -63,13 +63,16 @@ class Admin::PagePartsController < ApplicationController end def reload_widgets + @categories =[] @module_app = ModuleApp.find(params[:id]) - case @module_app.key - when 'announcement' - @categories = BulletinCategory.all - when 'web_resource' - @categories = WebLinkCategory.all + + unless (@module_app.category.nil? rescue true) + @module_app.category.each do |category| + @categories << eval(category).all.entries + end + @categories.flatten! end + respond_to do |format| format.js {} end diff --git a/app/controllers/orbit_widget_controller.rb b/app/controllers/orbit_widget_controller.rb index c2be4691..47e24fe0 100644 --- a/app/controllers/orbit_widget_controller.rb +++ b/app/controllers/orbit_widget_controller.rb @@ -1,3 +1,3 @@ -class ObitWidgetController< OrbitFrontendComponentController +class OrbitWidgetController< OrbitFrontendComponentController end \ No newline at end of file diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb index 3dd6629e..fcd6ac31 100644 --- a/app/controllers/sessions_controller.rb +++ b/app/controllers/sessions_controller.rb @@ -5,14 +5,16 @@ class SessionsController < Devise::SessionsController # POST /resource/sign_in def create + # login_password = params[:user][:password] + # login_uid = params[:user][:nccu_ldap_uid] login_password = params[:user][:password] login_uid = params[:user][:nccu_ldap_uid] result = false ldap = Net::LDAP.new - # ldap.port = '8001' - # ldap.host = '127.0.0.1' - ldap.port = '389' - ldap.host = '140.119.166.23' + ldap.port = '8001' + ldap.host = '127.0.0.1' + # ldap.port = '389' + # ldap.host = '140.119.166.23' ldap_filter = "(uid=#{login_uid})" ldap_base = 'ou=People,dc=nccu,dc=edu,dc=tw' ldap.authenticate("cn=uccn,ou=profile,dc=nccu,dc=edu,dc=tw","nccu2ucc") @@ -24,9 +26,14 @@ class SessionsController < Devise::SessionsController # resource = env['warden'].authenticate!(:check_nccu_ldap) # resource = warden.authenticate!(:scope => resource_name, :recall => "#{controller_path}#new") set_flash_message(:notice, :signed_in) if is_navigational_format? - resource_name = resource._type.downcase - sign_in(resource_name, resource) - respond_with resource, :location => redirect_location(resource_name, resource) + unless resource_name.nil? + resource_name = resource._type.downcase + sign_in(resource_name, resource) + respond_with resource, :location => redirect_location(resource_name, resource) + else + flash[:notice] = t('devise.failure.ldap_pass_but_account_not_in_orbit') + render :action => "new" + end else flash[:notice] = t('devise.failure.ldap_invalid') render :action => "new" diff --git a/app/views/admin/attributes/_app_selector.html.erb b/app/views/admin/module_apps/_app_selector.html.erb similarity index 100% rename from app/views/admin/attributes/_app_selector.html.erb rename to app/views/admin/module_apps/_app_selector.html.erb diff --git a/app/views/devise/sessions/new.html.erb b/app/views/devise/sessions/new.html.erb index d29fb5aa..78c94936 100644 --- a/app/views/devise/sessions/new.html.erb +++ b/app/views/devise/sessions/new.html.erb @@ -10,8 +10,8 @@

You need to sign in or sign up before continuing.

- <%= f.label :email %> - <%= f.email_field :email, :placeholder => t(:email), :style => "width: 330px;" %> + <%= f.label :nccu_ldap_uid %> + <%= f.text_field :nccu_ldap_uid, :placeholder => t("nccu"), :style => "width: 330px;" %> Please correct the error
diff --git a/app/views/layouts/_orbit_bar.html.erb b/app/views/layouts/_orbit_bar.html.erb index e9a91f48..4ed91275 100644 --- a/app/views/layouts/_orbit_bar.html.erb +++ b/app/views/layouts/_orbit_bar.html.erb @@ -67,7 +67,7 @@
  • - <%= f.text_field :email, :class => 'span2', :placeholder => t(:email), :size => 16 %> + <%= f.text_field :nccu_ldap_uid, :class => 'span2', :placeholder => t('nccu_c.nccu_ldap_uid'), :size => 16 %>
  • diff --git a/config/initializers/middle_site_connection.rb b/config/initializers/middle_site_connection.rb index ef20fc72..78107e69 100644 --- a/config/initializers/middle_site_connection.rb +++ b/config/initializers/middle_site_connection.rb @@ -4,8 +4,8 @@ require 'mysql2' mid_host = { - :host => 'mruling.nccu.edu.tw', #mruling.nccu.edu.tw or 127.0.0.1 - :port => 3006, #3306 or 8005 + :host => '127.0.0.1', #mruling.nccu.edu.tw or 127.0.0.1 + :port => 8005, #3306 or 8005 :username => "root", :password => "a3G6yWd9", :database => "RSS23_NCCU_MIDDLE", diff --git a/config/locales/devise.en.yml b/config/locales/devise.en.yml index 8d06c609..800f6c7a 100644 --- a/config/locales/devise.en.yml +++ b/config/locales/devise.en.yml @@ -11,6 +11,7 @@ en: unconfirmed: 'You have to confirm your account before continuing.' ldap_invalid: 'Your LDAP account is invalid' ldap_connection_failed: 'LDAP connection failed' + ldap_pass_but_account_not_in_orbit: 'LDAP account is not supported to sign up this site.' locked: 'Your account is locked.' invalid: 'Invalid email or password.' invalid_token: 'Invalid authentication token.' diff --git a/config/locales/devise.zh_tw.yml b/config/locales/devise.zh_tw.yml index d36054d5..4cb8c317 100644 --- a/config/locales/devise.zh_tw.yml +++ b/config/locales/devise.zh_tw.yml @@ -11,6 +11,7 @@ zh_tw: unconfirmed: '您的帳號需需要經過確認後,才能繼續。' ldap_invalid: '您的LDAP帳號錯誤' ldap_connection_failed: '與LDAP之間連線異常' + ldap_pass_but_account_not_in_orbit: '很抱歉,您的LDAP帳號並不支援在此網站登入' locked: '您的帳號已被鎖定。' invalid: 'Email 或密碼是無效的。' invalid_token: '無效的認證代碼。' diff --git a/config/locales/en.yml b/config/locales/en.yml index da72a4eb..0d267eb4 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -117,6 +117,8 @@ en: no_layout: You don't have a layout name: Name nccu: NCCU Custom + nccu_c: + nccu_ldap_uid: NCCU LDAP Account new_asset: New asset new_component: New component new_design: New design diff --git a/config/locales/zh_tw.yml b/config/locales/zh_tw.yml index 049be66b..8999162d 100644 --- a/config/locales/zh_tw.yml +++ b/config/locales/zh_tw.yml @@ -77,6 +77,7 @@ zh_tw: description: 描述 design: 網站版型 disable_language: 禁用語言 + edit: 編輯 editing_home: 編輯首頁 editing_layout: 編輯樣板 editing_link: 編輯連結 @@ -95,7 +96,7 @@ zh_tw: intro: 簡介 is_published: 被出版 item: 網站架構 - key: 關鍵 + key: 鍵值 language: 語言 layout: 佈局 layout_name: 佈局名字 @@ -117,6 +118,8 @@ zh_tw: no_layout: 您沒有佈局 name: 名稱 nccu: 政大客制 + nccu_c: + nccu_ldap_uid: NCCU LDAP 帳號 new_asset: 新增資產 new_component: 新增元件 new_design: 新設計 diff --git a/lib/tasks/mid_site_sync.rake b/lib/tasks/mid_site_sync.rake index 745483d0..d0bf84d3 100644 --- a/lib/tasks/mid_site_sync.rake +++ b/lib/tasks/mid_site_sync.rake @@ -1,32 +1,73 @@ # encoding: utf-8 +# require 'ruby-debug' namespace :mid_site do - attr_from_mid = %w{nccu_id psn_nam ut_chi_m eml_adr off_tel_ext sta_num} + attr_from_mid = %w{nccu_id psn_nam ut_cod up_ut_cod eml_adr off_tel_ext sta_num} officer_posgrp_code = %w{02 06 10 05} #from RSS2 admin_role = nil sub_role = nil task :sync => :environment do - users_from_mid = MID_CLIENT.query("SELECT #{attr_from_mid.join(',')} FROM rss_pautlst_ut WHERE posgrp_cod IN (#{officer_posgrp_code.join(',')})") + info_profile = Info.first(conditions: {:key => 'profile'}) + + def find_or_create_sub_role(role,ut_query=[],key='') + sub_role = role.sub_roles.get_sub_role_from_key(key) + if sub_role.nil? + ut_data = ut_query.find{|ut_data| ut_data["ut_cod"] == key } + # debugger + i18n_for_new_sub_role = I18nVariable.create!( :document_class => 'SubRole', :key => key, :en => (ut_data["ut_eng_m"] rescue ''), :zh_tw => (ut_data["ut_chi_m"] rescue ''), :parent_id => role.i18n_variable.id ) + sub_role = role.sub_roles.create!(:key => key) + sub_role.i18n_variable = i18n_for_new_sub_role + sub_role.save! + p "Created SubRole(key: #{key}): EN: #{sub_role.i18n_variable.en}, CH: #{sub_role.i18n_variable.zh_tw} ParentRole(#{role.i18n_variable.key}): #{role.i18n_variable.en}" + end + sub_role + end + + users_from_mid = MID_CLIENT.query("SELECT #{attr_from_mid.join(',')} FROM rss_pautlst_ut WHERE posgrp_cod IN (#{officer_posgrp_code.join(',')})") + ut_data_from_mid = MID_CLIENT.query("SELECT ut_odr, ut_cod, up_ut_cod, ut_chi_m, ut_eng_m FROM rss_paunit WHERE ut_tpe = '1' AND ut_grp != '3' AND up_ut_cod != 'F00' ORDER BY ut_odr, ut_cod") remote_list = users_from_mid.collect{|t| t["nccu_id"]} #remove delete user sho has been deleted at remote first local_need_remove = User.all.collect{|t| t.nccu_id rescue nil}.uniq.delete_if {|x| x == nil} - remote_list + desc "Going to delete User with IDs: #{local_need_remove.inspect}" local_need_remove.each{|user_id| (User.find user_id).destroy} + desc "Deletion completed! \n" #starting update user - users_from_mid.each do |mid_user| - local_user = User.find_or_initialize_by(:nccu_id => mid_user["nccu_id"]) - local_user.update_attributes(mid_user) + desc "Updating and Newing Users" + users_from_mid.each do |mid_user| + ut_item = ut_data_from_mid.find{|ut_data| ut_data["ut_cod"] == mid_user["ut_cod"]} + up_ut_item = ut_data_from_mid.find{|ut_data| ut_data["ut_cod"] == mid_user["up_ut_cod"] } + local_user = User.find_or_initialize_by(:nccu_ldap_uid => mid_user["nccu_id"]) + AttributeValue.find_or_create_by( :user_id => local_user.id, :attribute_field_id => info_profile.attribute_fields[0].id, :key => 'first_name', :en => '', :zh_tw => (mid_user["psn_nam"].size <= 3? mid_user["psn_nam"][1..2]:mid_user["psn_nam"][2..-1]) ) + AttributeValue.find_or_create_by( :user_id => local_user.id, :attribute_field_id => info_profile.attribute_fields[1].id, :key => 'last_name', :en => '', :zh_tw => (mid_user["psn_nam"].size <= 3? mid_user["psn_nam"][0]:mid_user["psn_nam"][0..1]) ) + + user_model_mapper = Hash[:ut_cod => mid_user["ut_cod"] ,:up_ut_cod => mid_user["up_ut_cod"],:email => mid_user["eml_adr"],:off_tel_ext => mid_user["off_tel_ext"],:sta_num => mid_user["sta_num"]] + user_model_mapper[:admin] = false + local_user.update_attributes(user_model_mapper) + + i18n_department_admin = I18nVariable.find_or_create_by( :document_class => 'Role', :key => 'department_admin', :en => 'Department Admin', :zh_tw => '系所使用者' ) + local_user.role = Role.find_or_create_by( :key => "department_admin",:build_in => true) + local_user.role.i18n_variable = i18n_department_admin + + + unless local_user.ut_cod == local_user.up_ut_cod #if the ut_cod has additions info for up ut + local_user.sub_roles << find_or_create_sub_role(local_user.role,ut_data_from_mid,local_user.up_ut_cod) + end + + local_user.sub_roles << find_or_create_sub_role(local_user.role,ut_data_from_mid,local_user.ut_cod) + local_user.save! end end task :install_admin => :before_instll_admin do admins_nccu_id = '2772' + info_profile = Info.first(conditions: {:key => 'profile'}) + # admin_role = Role.find_or_create_by( key: 'administrator') # sub_role = admin_role.sub_roles.find_or_create_by(:key => 'computer_center') - info_profile = Info.first(conditions: {:key => 'profile'}) user_from_mid = MID_CLIENT.query("SELECT #{attr_from_mid.join(',')} FROM rss_pautlst_ut WHERE posgrp_cod IN (#{officer_posgrp_code.join(',')}) AND nccu_id = '#{admins_nccu_id}' limit 1") admin_at_mid = user_from_mid.first @@ -58,7 +99,7 @@ namespace :mid_site do local_user = User.find_or_initialize_by(:nccu_id => admin_at_mid["nccu_id"]) local_user.update_attributes(:email => admin_at_mid["eml_adr"], :admin => true, :role_id => admin_role.id, :sub_role_ids => [sub_role.id]) - AttributeValue.create( :user => local_user, :attribute_field => info_profile.attribute_fields[0], :key => 'first_name', :en => user_first_name, :zh_tw => user_first_name ) + AttributeValue.create( :user_id => local_user.id, :attribute_field_id => info_profile.attribute_fields[0].id, :key => 'first_name', :en => user_first_name, :zh_tw => user_first_name ) AttributeValue.create( :user_id => local_user.id, :attribute_field_id => info_profile.attribute_fields[1].id, :key => 'last_name', :en => user_last_name, :zh_tw => user_last_name ) end @@ -95,6 +136,10 @@ namespace :mid_site do i18ns.each { |var| var.destroy } end + task :clean_ldap_users => :environment do + User.where(:nccu_ldap_id.ne => nil ).each {|t| t.destroy} + end + task :clean_admin_role_and_sub_role => :environment do data = Role.any_in( key: ['administrator','computer_center']) data.each { |var| var.destroy } diff --git a/vendor/built_in_modules/announcement/announcement.json b/vendor/built_in_modules/announcement/announcement.json index b23ec572..536318d8 100644 --- a/vendor/built_in_modules/announcement/announcement.json +++ b/vendor/built_in_modules/announcement/announcement.json @@ -8,5 +8,6 @@ "create_date": "11-11-2011", "app_pages": ["bulletins"], "widgets": ["bulletins", "bulletins_and_web_links"], + "category": ["BulletinCategory"], "enable_frontend": true } diff --git a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletin_categorys_controller.rb b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletin_categorys_controller.rb index 92bf922f..d648e2a2 100644 --- a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletin_categorys_controller.rb +++ b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletin_categorys_controller.rb @@ -1,5 +1,4 @@ -class Panel::Announcement::BackEnd::BulletinCategorysController < ApplicationController - +class Panel::Announcement::BackEnd::BulletinCategorysController < OrbitBackendController layout 'new_admin' def index diff --git a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletins_controller.rb b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletins_controller.rb index dcd3de04..a0cf8d96 100644 --- a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletins_controller.rb +++ b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletins_controller.rb @@ -1,5 +1,5 @@ -class Panel::Announcement::BackEnd::BulletinsController < ApplicationController - +class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController + include AdminHelper layout 'new_admin' before_filter :authenticate_user! @@ -151,7 +151,6 @@ class Panel::Announcement::BackEnd::BulletinsController < ApplicationController elsif is_sub_manager? @bulletin_categorys = BulletinCategory.authed_for_user(current_user,'submit_new') end -<<<<<<< HEAD end def get_sorted_bulletins @@ -196,8 +195,7 @@ class Panel::Announcement::BackEnd::BulletinsController < ApplicationController a.flatten! a.uniq end -======= ->>>>>>> 26cd6951dba43b1f6eaf5056160309c5c77a8716 + end diff --git a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/front_end/bulletins_controller.rb b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/front_end/bulletins_controller.rb index b71a4609..c0be3639 100644 --- a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/front_end/bulletins_controller.rb +++ b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/front_end/bulletins_controller.rb @@ -1,4 +1,4 @@ -class Panel::Announcement::FrontEnd::BulletinsController < ObitWidgetController +class Panel::Announcement::FrontEnd::BulletinsController < OrbitWidgetController def initialize super diff --git a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/widget/bulletins_controller.rb b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/widget/bulletins_controller.rb index 6695156a..cb18fa23 100644 --- a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/widget/bulletins_controller.rb +++ b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/widget/bulletins_controller.rb @@ -1,4 +1,4 @@ -class Panel::Announcement::Widget::BulletinsController < ObitWidgetController +class Panel::Announcement::Widget::BulletinsController < OrbitWidgetController def initialize super diff --git a/vendor/built_in_modules/new_blog/app/controllers/panel/new_blog/widget/posts_controller.rb b/vendor/built_in_modules/new_blog/app/controllers/panel/new_blog/widget/posts_controller.rb index dab532ee..b04bf455 100644 --- a/vendor/built_in_modules/new_blog/app/controllers/panel/new_blog/widget/posts_controller.rb +++ b/vendor/built_in_modules/new_blog/app/controllers/panel/new_blog/widget/posts_controller.rb @@ -1,4 +1,4 @@ -class Panel::NewBlog::Widget::PostsController < ObitWidgetController +class Panel::NewBlog::Widget::PostsController < \" # GET /posts # GET /posts.xml def index diff --git a/vendor/built_in_modules/page_content/app/controllers/panel/page_content/front_end/page_contexts_controller.rb b/vendor/built_in_modules/page_content/app/controllers/panel/page_content/front_end/page_contexts_controller.rb index 8b750dcc..027c9512 100644 --- a/vendor/built_in_modules/page_content/app/controllers/panel/page_content/front_end/page_contexts_controller.rb +++ b/vendor/built_in_modules/page_content/app/controllers/panel/page_content/front_end/page_contexts_controller.rb @@ -1,4 +1,4 @@ -class Panel::PageContent::FrontEnd::PageContextsController < ObitWidgetController +class Panel::PageContent::FrontEnd::PageContextsController < \" def initialize super diff --git a/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/front_end/web_links_controller.rb b/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/front_end/web_links_controller.rb index c230140d..5bc93896 100644 --- a/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/front_end/web_links_controller.rb +++ b/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/front_end/web_links_controller.rb @@ -1,4 +1,4 @@ -class Panel::WebResource::FrontEnd::WebLinksController < ObitWidgetController +class Panel::WebResource::FrontEnd::WebLinksController < \" def initialize super diff --git a/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/widget/web_links_controller.rb b/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/widget/web_links_controller.rb index bbe4a8d9..c4fbf4d0 100644 --- a/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/widget/web_links_controller.rb +++ b/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/widget/web_links_controller.rb @@ -1,4 +1,4 @@ -class Panel::WebResource::Widget::WebLinksController < ObitWidgetController +class Panel::WebResource::Widget::WebLinksController < \" def initialize super diff --git a/vendor/built_in_modules/web_resource/web_resource.json b/vendor/built_in_modules/web_resource/web_resource.json index f159630f..5d5a7974 100644 --- a/vendor/built_in_modules/web_resource/web_resource.json +++ b/vendor/built_in_modules/web_resource/web_resource.json @@ -8,5 +8,6 @@ "create_date": "11-11-2011", "app_pages": ["web_links"], "widgets": ["web_links"], + "category": ["WebLinkCategory"], "enable_frontend": true } From a1034f90ba422a708c28abe09fa411542e65ea17 Mon Sep 17 00:00:00 2001 From: nccu Date: Tue, 20 Mar 2012 14:38:01 +0800 Subject: [PATCH 006/231] close alpha on nccu --- Gemfile | 2 +- Gemfile.lock | 5 +- app/controllers/sessions_controller.rb | 2 +- config/config.yml | 4 +- config/environments/production.rb | 42 +- config/environments/production.rb.bak | 54 + .../production.rb.cp_from_dev_work | 44 + config/initializers/load_config.rb | 2 +- config/initializers/middle_site_connection.rb | 4 +- config/locales/en.yml | 3 + config/locales/zh_tw.yml | 3 + config/mongoid.yml | 2 +- .../75-9e78fdbcb9cc33a7c4ff3acd9912ead5.png | Bin 0 -> 923 bytes public/assets/75.png | Bin 0 -> 923 bytes .../Jobs-25fa5d89cd615962bd84da941390ed1c.jpg | Bin 0 -> 43670 bytes public/assets/Jobs.jpg | Bin 0 -> 43670 bytes .../PIE-212456f5b192ae4c335600b2db30bf37.htc | 96 + public/assets/PIE.htc | 96 + ...Thumbs-f35679bb600d7b11dd0811a704e50d42.db | Bin 0 -> 62976 bytes public/assets/Thumbs.db | Bin 0 -> 62976 bytes ...amber-e0bf1c09e7fcccd57b5552246298bb97.png | Bin 0 -> 1206 bytes public/assets/add_mamber.png | Bin 0 -> 1206 bytes ...cation-d22b654c29be380f94da4393299af1e2.js | 27 + ...ion-d22b654c29be380f94da4393299af1e2.js.gz | Bin 0 -> 120045 bytes ...ation-d4bb6cd6a735ef6a52269cb42cdc7072.css | 0 ...on-d4bb6cd6a735ef6a52269cb42cdc7072.css.gz | Bin 0 -> 20 bytes public/assets/application.css | 0 public/assets/application.css.gz | Bin 0 -> 20 bytes public/assets/application.js | 27 + public/assets/application.js.gz | Bin 0 -> 120045 bytes ...round-231ffdf8b290436ccc9fbe23147ff64b.jpg | Bin 0 -> 45492 bytes public/assets/background.jpg | Bin 0 -> 45492 bytes ...ar_bg-1013fd328e0d5df45a0f6d5005a0877e.png | Bin 0 -> 157 bytes public/assets/bar_bg.png | Bin 0 -> 157 bytes ...order-8d379bb5bf32d1dd5c7008440791cde9.png | Bin 0 -> 211 bytes public/assets/bar_border.png | Bin 0 -> 211 bytes ...r_btn-d1d39f15ca1851e2364cc30cbbf065f7.png | Bin 0 -> 393 bytes public/assets/bar_btn.png | Bin 0 -> 393 bytes ...ar_id-c57ffbabe8c591f0f09cc135d4ae1813.png | Bin 0 -> 499 bytes public/assets/bar_id.png | Bin 0 -> 499 bytes ...orbit-3a2faa88876a52f6361452e667c9cb40.png | Bin 0 -> 6475 bytes public/assets/bar_orbit.png | Bin 0 -> 6475 bytes ...ar_pw-9287090b7f5cbc04e44ce09a56da4a42.png | Bin 0 -> 504 bytes public/assets/bar_pw.png | Bin 0 -> 504 bytes .../body-22ac538da6ee98962e74ba7583839efd.jpg | Bin 0 -> 741479 bytes public/assets/body.jpg | Bin 0 -> 741479 bytes ...t_btn-fbf6c72a1e031d39f65db84969d53978.png | Bin 0 -> 1144 bytes public/assets/bought_btn.png | Bin 0 -> 1144 bytes ...y_btn-312aa89b7c42f322de139fe750b767a9.png | Bin 0 -> 798 bytes public/assets/buy_btn.png | Bin 0 -> 798 bytes ...t-img-6a80f970e1e373a587c8f09c4cbe1bc9.png | Bin 0 -> 778 bytes public/assets/default-img.png | Bin 0 -> 778 bytes ...lings-626dfac91275982059a5bb2586f29924.png | Bin 0 -> 4352 bytes ...white-3173d355c51fcd42bdae2a84857cb0a5.png | Bin 0 -> 4352 bytes public/assets/glyphicons-halflings-white.png | Bin 0 -> 4352 bytes public/assets/glyphicons-halflings.png | Bin 0 -> 4352 bytes ...h1_bg-2433e48c52a5b71dbe1b50b98761f5e5.png | Bin 0 -> 983 bytes ...h1_bg-d914a6e54b0a163b21b68ac21e21c0b4.jpg | Bin 0 -> 1510 bytes public/assets/h1_bg.jpg | Bin 0 -> 1510 bytes public/assets/h1_bg.png | Bin 0 -> 983 bytes .../home-dbed8b52e5d67c6936df66ff818fdd0b.png | Bin 0 -> 857 bytes public/assets/home.png | Bin 0 -> 857 bytes ...cover-3312b4a98953621f51d080e97a4f789d.png | Bin 0 -> 964 bytes public/assets/hr_cover.png | Bin 0 -> 964 bytes .../html-9b737a404c3d855e61b31f5ad3c3002d.png | Bin 0 -> 116 bytes public/assets/html.png | Bin 0 -> 116 bytes .../icon-5541cdfd62c7cabe8a8d1bdb61446464.png | Bin 0 -> 6869 bytes public/assets/icon.png | Bin 0 -> 6869 bytes ...icon1-6a94198ae480dcbdf993340557c06883.png | Bin 0 -> 447 bytes public/assets/icon1.png | Bin 0 -> 447 bytes ...icon2-dc9f147d42e16ee54468d097ea2d64bc.png | Bin 0 -> 386 bytes public/assets/icon2.png | Bin 0 -> 386 bytes ..._pack-c82c8f9c9ecfc96da48385e89f1a54ab.png | Bin 0 -> 37286 bytes public/assets/icons_pack.png | Bin 0 -> 37286 bytes ...white-28a4078b786bca24ac71084241e42ab3.png | Bin 0 -> 34694 bytes public/assets/icons_pack_white.png | Bin 0 -> 34694 bytes .../line-1bb59332d77ea975069418e25a877e8a.png | Bin 0 -> 929 bytes public/assets/line.png | Bin 0 -> 929 bytes ...earch-d2461b97384a489d44de3d36bc72e17a.png | Bin 0 -> 1118 bytes public/assets/main-search.png | Bin 0 -> 1118 bytes public/assets/manifest.yml | 63 + ...r-pic-24b0a5ce2e5f48e8e1325db02aa427f0.png | Bin 0 -> 3601 bytes public/assets/menber-pic.png | Bin 0 -> 3601 bytes ..._logo-52d58b11fb0645c8820617dd32efcd08.png | Bin 0 -> 1964 bytes public/assets/nccu_logo.png | Bin 0 -> 1964 bytes ...ation-72b85095be5e1061006a0d21664c4ec6.css | 1 + ...on-72b85095be5e1061006a0d21664c4ec6.css.gz | Bin 0 -> 363 bytes public/assets/new_blog/application.css | 1 + public/assets/new_blog/application.css.gz | Bin 0 -> 363 bytes ...t-bar-d258d9a552b5db529c677da803bd011b.png | Bin 0 -> 5113 bytes public/assets/orbit-bar.png | Bin 0 -> 5113 bytes ...itbar-f0456e0ea1f099ab6fdef62516776150.png | Bin 0 -> 1010 bytes public/assets/orbitbar.png | Bin 0 -> 1010 bytes ...tbar1-f0456e0ea1f099ab6fdef62516776150.png | Bin 0 -> 1010 bytes public/assets/orbitbar1.png | Bin 0 -> 1010 bytes ...erson-80d44f6898110d07723ffcdeace2ba25.png | Bin 0 -> 2428 bytes public/assets/person.png | Bin 0 -> 2428 bytes ...eview-b2639e66a275450d36580e9d7982e04c.png | Bin 0 -> 5704 bytes public/assets/preview.png | Bin 0 -> 5704 bytes ...rails-e888ac73dbf6a8f6d08eb56f0e76ae19.png | Bin 0 -> 6646 bytes public/assets/rails.png | Bin 0 -> 6646 bytes ..._type-80477c618cf79d8c4d980bd3b911c7d0.jpg | Bin 0 -> 8374 bytes public/assets/roles_type.jpg | Bin 0 -> 8374 bytes ...ch_bg-a7c67438285dd32db4570ec009ec854f.png | Bin 0 -> 2091 bytes public/assets/search_bg.png | Bin 0 -> 2091 bytes ...ck_bg-8b6c7614632f61ad66836e92e0d14b65.jpg | Bin 0 -> 1555 bytes public/assets/search_block_bg.jpg | Bin 0 -> 1555 bytes ...e_btn-e57511e1b532eaba5d8461d5c0ad054e.png | Bin 0 -> 3307 bytes public/assets/service_btn.png | Bin 0 -> 3307 bytes ...ar_li-20415179e92d2bc3a04d4bd24449c443.jpg | Bin 0 -> 1215 bytes public/assets/sidebar_li.jpg | Bin 0 -> 1215 bytes ...r_li2-0314430f3128ddf8ef0b08eb8d4d8ced.jpg | Bin 0 -> 342 bytes public/assets/sidebar_li2.jpg | Bin 0 -> 342 bytes ...-logo-96872662bbb7d39f593224ee38f4cd9b.png | Bin 0 -> 11789 bytes public/assets/sign-in-logo.png | Bin 0 -> 11789 bytes ...logo2-358e783c2338bb40a064b4685c6f292b.png | Bin 0 -> 8620 bytes public/assets/sign-in-logo2.png | Bin 0 -> 8620 bytes ...witch-2d96b86df692da8c93abddb222128965.png | Bin 0 -> 2182 bytes public/assets/switch.png | Bin 0 -> 2182 bytes ...inymce-9c38b8686e1171a0d86d287b8eb48271.js | 1 + ...mce-9c38b8686e1171a0d86d287b8eb48271.js.gz | Bin 0 -> 1453 bytes public/assets/tinymce/jquery-tinymce.js | 1 + public/assets/tinymce/jquery-tinymce.js.gz | Bin 0 -> 1453 bytes public/assets/tinymce/jquery.tinymce.js | 1 + public/assets/tinymce/langs/en.js | 1 + public/assets/tinymce/license.txt | 504 + .../tinymce/plugins/advhr/css/advhr.css | 5 + .../tinymce/plugins/advhr/editor_plugin.js | 1 + .../plugins/advhr/editor_plugin_src.js | 57 + .../assets/tinymce/plugins/advhr/js/rule.js | 43 + .../tinymce/plugins/advhr/langs/en_dlg.js | 1 + public/assets/tinymce/plugins/advhr/rule.htm | 58 + .../tinymce/plugins/advimage/css/advimage.css | 13 + .../tinymce/plugins/advimage/editor_plugin.js | 1 + .../plugins/advimage/editor_plugin_src.js | 50 + .../assets/tinymce/plugins/advimage/image.htm | 235 + .../tinymce/plugins/advimage/img/sample.gif | Bin 0 -> 1624 bytes .../tinymce/plugins/advimage/js/image.js | 462 + .../tinymce/plugins/advimage/langs/en_dlg.js | 1 + .../tinymce/plugins/advlink/css/advlink.css | 8 + .../tinymce/plugins/advlink/editor_plugin.js | 1 + .../plugins/advlink/editor_plugin_src.js | 61 + .../tinymce/plugins/advlink/js/advlink.js | 539 + .../tinymce/plugins/advlink/langs/en_dlg.js | 1 + .../assets/tinymce/plugins/advlink/link.htm | 338 + .../tinymce/plugins/advlist/editor_plugin.js | 1 + .../plugins/advlist/editor_plugin_src.js | 176 + .../tinymce/plugins/autolink/editor_plugin.js | 1 + .../plugins/autolink/editor_plugin_src.js | 172 + .../plugins/autoresize/editor_plugin.js | 1 + .../plugins/autoresize/editor_plugin_src.js | 119 + .../tinymce/plugins/autosave/editor_plugin.js | 1 + .../plugins/autosave/editor_plugin_src.js | 431 + .../tinymce/plugins/autosave/langs/en.js | 4 + .../tinymce/plugins/bbcode/editor_plugin.js | 1 + .../plugins/bbcode/editor_plugin_src.js | 120 + .../plugins/contextmenu/editor_plugin.js | 1 + .../plugins/contextmenu/editor_plugin_src.js | 161 + .../plugins/directionality/editor_plugin.js | 1 + .../directionality/editor_plugin_src.js | 82 + .../tinymce/plugins/emotions/editor_plugin.js | 1 + .../plugins/emotions/editor_plugin_src.js | 43 + .../tinymce/plugins/emotions/emotions.htm | 42 + .../plugins/emotions/img/smiley-cool.gif | Bin 0 -> 354 bytes .../plugins/emotions/img/smiley-cry.gif | Bin 0 -> 329 bytes .../emotions/img/smiley-embarassed.gif | Bin 0 -> 331 bytes .../emotions/img/smiley-foot-in-mouth.gif | Bin 0 -> 342 bytes .../plugins/emotions/img/smiley-frown.gif | Bin 0 -> 340 bytes .../plugins/emotions/img/smiley-innocent.gif | Bin 0 -> 336 bytes .../plugins/emotions/img/smiley-kiss.gif | Bin 0 -> 338 bytes .../plugins/emotions/img/smiley-laughing.gif | Bin 0 -> 343 bytes .../emotions/img/smiley-money-mouth.gif | Bin 0 -> 321 bytes .../plugins/emotions/img/smiley-sealed.gif | Bin 0 -> 323 bytes .../plugins/emotions/img/smiley-smile.gif | Bin 0 -> 344 bytes .../plugins/emotions/img/smiley-surprised.gif | Bin 0 -> 338 bytes .../emotions/img/smiley-tongue-out.gif | Bin 0 -> 328 bytes .../plugins/emotions/img/smiley-undecided.gif | Bin 0 -> 337 bytes .../plugins/emotions/img/smiley-wink.gif | Bin 0 -> 350 bytes .../plugins/emotions/img/smiley-yell.gif | Bin 0 -> 336 bytes .../tinymce/plugins/emotions/js/emotions.js | 43 + .../tinymce/plugins/emotions/langs/en_dlg.js | 1 + .../assets/tinymce/plugins/example/dialog.htm | 22 + .../tinymce/plugins/example/editor_plugin.js | 1 + .../plugins/example/editor_plugin_src.js | 84 + .../tinymce/plugins/example/img/example.gif | Bin 0 -> 87 bytes .../tinymce/plugins/example/js/dialog.js | 19 + .../tinymce/plugins/example/langs/en.js | 3 + .../tinymce/plugins/example/langs/en_dlg.js | 3 + .../example_dependency/editor_plugin.js | 1 + .../example_dependency/editor_plugin_src.js | 50 + .../tinymce/plugins/fullpage/css/fullpage.css | 143 + .../tinymce/plugins/fullpage/editor_plugin.js | 1 + .../plugins/fullpage/editor_plugin_src.js | 405 + .../tinymce/plugins/fullpage/fullpage.htm | 259 + .../tinymce/plugins/fullpage/js/fullpage.js | 232 + .../tinymce/plugins/fullpage/langs/en_dlg.js | 1 + .../plugins/fullscreen/editor_plugin.js | 1 + .../plugins/fullscreen/editor_plugin_src.js | 159 + .../tinymce/plugins/fullscreen/fullscreen.htm | 110 + .../tinymce/plugins/iespell/editor_plugin.js | 1 + .../plugins/iespell/editor_plugin_src.js | 54 + .../plugins/inlinepopups/editor_plugin.js | 1 + .../plugins/inlinepopups/editor_plugin_src.js | 699 + .../skins/clearlooks2/img/alert.gif | Bin 0 -> 810 bytes .../skins/clearlooks2/img/button.gif | Bin 0 -> 272 bytes .../skins/clearlooks2/img/buttons.gif | Bin 0 -> 1195 bytes .../skins/clearlooks2/img/confirm.gif | Bin 0 -> 907 bytes .../skins/clearlooks2/img/corners.gif | Bin 0 -> 909 bytes .../skins/clearlooks2/img/horizontal.gif | Bin 0 -> 769 bytes .../skins/clearlooks2/img/vertical.gif | Bin 0 -> 84 bytes .../inlinepopups/skins/clearlooks2/window.css | 90 + .../tinymce/plugins/inlinepopups/template.htm | 387 + .../plugins/insertdatetime/editor_plugin.js | 1 + .../insertdatetime/editor_plugin_src.js | 83 + .../tinymce/plugins/layer/editor_plugin.js | 1 + .../plugins/layer/editor_plugin_src.js | 262 + .../plugins/legacyoutput/editor_plugin.js | 1 + .../plugins/legacyoutput/editor_plugin_src.js | 139 + .../tinymce/plugins/lists/editor_plugin.js | 1 + .../plugins/lists/editor_plugin_src.js | 946 + .../tinymce/plugins/media/css/media.css | 17 + .../tinymce/plugins/media/editor_plugin.js | 1 + .../plugins/media/editor_plugin_src.js | 890 + .../assets/tinymce/plugins/media/js/embed.js | 73 + .../assets/tinymce/plugins/media/js/media.js | 464 + .../tinymce/plugins/media/langs/en_dlg.js | 1 + public/assets/tinymce/plugins/media/media.htm | 922 + .../tinymce/plugins/media/moxieplayer.swf | Bin 0 -> 19980 bytes .../plugins/nonbreaking/editor_plugin.js | 1 + .../plugins/nonbreaking/editor_plugin_src.js | 54 + .../plugins/noneditable/editor_plugin.js | 1 + .../plugins/noneditable/editor_plugin_src.js | 95 + .../plugins/pagebreak/editor_plugin.js | 1 + .../plugins/pagebreak/editor_plugin_src.js | 74 + .../tinymce/plugins/paste/editor_plugin.js | 1 + .../plugins/paste/editor_plugin_src.js | 871 + .../tinymce/plugins/paste/js/pastetext.js | 36 + .../tinymce/plugins/paste/js/pasteword.js | 51 + .../tinymce/plugins/paste/langs/en_dlg.js | 1 + .../tinymce/plugins/paste/pastetext.htm | 27 + .../tinymce/plugins/paste/pasteword.htm | 21 + .../tinymce/plugins/preview/editor_plugin.js | 1 + .../plugins/preview/editor_plugin_src.js | 53 + .../tinymce/plugins/preview/example.html | 28 + .../tinymce/plugins/preview/jscripts/embed.js | 73 + .../tinymce/plugins/preview/preview.html | 17 + .../tinymce/plugins/print/editor_plugin.js | 1 + .../plugins/print/editor_plugin_src.js | 34 + .../tinymce/plugins/save/editor_plugin.js | 1 + .../tinymce/plugins/save/editor_plugin_src.js | 101 + .../searchreplace/css/searchreplace.css | 6 + .../plugins/searchreplace/editor_plugin.js | 1 + .../searchreplace/editor_plugin_src.js | 61 + .../plugins/searchreplace/js/searchreplace.js | 142 + .../plugins/searchreplace/langs/en_dlg.js | 1 + .../plugins/searchreplace/searchreplace.htm | 100 + .../plugins/spellchecker/css/content.css | 1 + .../plugins/spellchecker/editor_plugin.js | 1 + .../plugins/spellchecker/editor_plugin_src.js | 436 + .../plugins/spellchecker/img/wline.gif | Bin 0 -> 46 bytes .../tinymce/plugins/style/css/props.css | 13 + .../tinymce/plugins/style/editor_plugin.js | 1 + .../plugins/style/editor_plugin_src.js | 55 + .../assets/tinymce/plugins/style/js/props.js | 635 + .../tinymce/plugins/style/langs/en_dlg.js | 1 + public/assets/tinymce/plugins/style/props.htm | 840 + .../tinymce/plugins/tabfocus/editor_plugin.js | 1 + .../plugins/tabfocus/editor_plugin_src.js | 122 + public/assets/tinymce/plugins/table/cell.htm | 180 + .../assets/tinymce/plugins/table/css/cell.css | 17 + .../assets/tinymce/plugins/table/css/row.css | 25 + .../tinymce/plugins/table/css/table.css | 13 + .../tinymce/plugins/table/editor_plugin.js | 1 + .../plugins/table/editor_plugin_src.js | 1408 ++ .../assets/tinymce/plugins/table/js/cell.js | 319 + .../tinymce/plugins/table/js/merge_cells.js | 27 + public/assets/tinymce/plugins/table/js/row.js | 237 + .../assets/tinymce/plugins/table/js/table.js | 488 + .../tinymce/plugins/table/langs/en_dlg.js | 1 + .../tinymce/plugins/table/merge_cells.htm | 32 + public/assets/tinymce/plugins/table/row.htm | 158 + public/assets/tinymce/plugins/table/table.htm | 188 + .../assets/tinymce/plugins/template/blank.htm | 12 + .../tinymce/plugins/template/css/template.css | 23 + .../tinymce/plugins/template/editor_plugin.js | 1 + .../plugins/template/editor_plugin_src.js | 159 + .../tinymce/plugins/template/js/template.js | 106 + .../tinymce/plugins/template/langs/en_dlg.js | 1 + .../tinymce/plugins/template/template.htm | 31 + .../plugins/visualchars/editor_plugin.js | 1 + .../plugins/visualchars/editor_plugin_src.js | 83 + .../plugins/wordcount/editor_plugin.js | 1 + .../plugins/wordcount/editor_plugin_src.js | 114 + .../tinymce/plugins/xhtmlxtras/abbr.htm | 142 + .../tinymce/plugins/xhtmlxtras/acronym.htm | 142 + .../tinymce/plugins/xhtmlxtras/attributes.htm | 149 + .../tinymce/plugins/xhtmlxtras/cite.htm | 142 + .../plugins/xhtmlxtras/css/attributes.css | 11 + .../tinymce/plugins/xhtmlxtras/css/popup.css | 9 + .../assets/tinymce/plugins/xhtmlxtras/del.htm | 162 + .../plugins/xhtmlxtras/editor_plugin.js | 1 + .../plugins/xhtmlxtras/editor_plugin_src.js | 132 + .../assets/tinymce/plugins/xhtmlxtras/ins.htm | 162 + .../tinymce/plugins/xhtmlxtras/js/abbr.js | 28 + .../tinymce/plugins/xhtmlxtras/js/acronym.js | 28 + .../plugins/xhtmlxtras/js/attributes.js | 111 + .../tinymce/plugins/xhtmlxtras/js/cite.js | 28 + .../tinymce/plugins/xhtmlxtras/js/del.js | 53 + .../plugins/xhtmlxtras/js/element_common.js | 229 + .../tinymce/plugins/xhtmlxtras/js/ins.js | 53 + .../plugins/xhtmlxtras/langs/en_dlg.js | 1 + ...reinit-5c1448a2a7ef82c6912089f183a81e32.js | 1 + ...nit-5c1448a2a7ef82c6912089f183a81e32.js.gz | Bin 0 -> 94 bytes public/assets/tinymce/preinit.js | 1 + public/assets/tinymce/preinit.js.gz | Bin 0 -> 94 bytes .../assets/tinymce/themes/advanced/about.htm | 52 + .../assets/tinymce/themes/advanced/anchor.htm | 26 + .../tinymce/themes/advanced/charmap.htm | 55 + .../tinymce/themes/advanced/color_picker.htm | 74 + .../themes/advanced/editor_template.js | 1 + .../themes/advanced/editor_template_src.js | 1362 ++ .../assets/tinymce/themes/advanced/image.htm | 80 + .../themes/advanced/img/colorpicker.jpg | Bin 0 -> 2584 bytes .../tinymce/themes/advanced/img/flash.gif | Bin 0 -> 239 bytes .../tinymce/themes/advanced/img/icons.gif | Bin 0 -> 11790 bytes .../tinymce/themes/advanced/img/iframe.gif | Bin 0 -> 600 bytes .../tinymce/themes/advanced/img/pagebreak.gif | Bin 0 -> 325 bytes .../tinymce/themes/advanced/img/quicktime.gif | Bin 0 -> 301 bytes .../tinymce/themes/advanced/img/realmedia.gif | Bin 0 -> 439 bytes .../tinymce/themes/advanced/img/shockwave.gif | Bin 0 -> 384 bytes .../tinymce/themes/advanced/img/trans.gif | Bin 0 -> 43 bytes .../tinymce/themes/advanced/img/video.gif | Bin 0 -> 597 bytes .../themes/advanced/img/windowsmedia.gif | Bin 0 -> 415 bytes .../tinymce/themes/advanced/js/about.js | 73 + .../tinymce/themes/advanced/js/anchor.js | 43 + .../tinymce/themes/advanced/js/charmap.js | 363 + .../themes/advanced/js/color_picker.js | 329 + .../tinymce/themes/advanced/js/image.js | 251 + .../assets/tinymce/themes/advanced/js/link.js | 153 + .../themes/advanced/js/source_editor.js | 56 + .../tinymce/themes/advanced/langs/en.js | 1 + .../tinymce/themes/advanced/langs/en_dlg.js | 1 + .../assets/tinymce/themes/advanced/link.htm | 57 + .../tinymce/themes/advanced/shortcuts.htm | 47 + .../themes/advanced/skins/default/content.css | 50 + .../themes/advanced/skins/default/dialog.css | 117 + .../advanced/skins/default/img/buttons.png | Bin 0 -> 3133 bytes .../advanced/skins/default/img/items.gif | Bin 0 -> 64 bytes .../advanced/skins/default/img/menu_arrow.gif | Bin 0 -> 68 bytes .../advanced/skins/default/img/menu_check.gif | Bin 0 -> 70 bytes .../advanced/skins/default/img/progress.gif | Bin 0 -> 1787 bytes .../advanced/skins/default/img/tabs.gif | Bin 0 -> 1322 bytes .../themes/advanced/skins/default/ui.css | 214 + .../advanced/skins/highcontrast/content.css | 24 + .../advanced/skins/highcontrast/dialog.css | 105 + .../themes/advanced/skins/highcontrast/ui.css | 102 + .../themes/advanced/skins/o2k7/content.css | 48 + .../themes/advanced/skins/o2k7/dialog.css | 117 + .../advanced/skins/o2k7/img/button_bg.png | Bin 0 -> 2766 bytes .../skins/o2k7/img/button_bg_black.png | Bin 0 -> 651 bytes .../skins/o2k7/img/button_bg_silver.png | Bin 0 -> 2084 bytes .../tinymce/themes/advanced/skins/o2k7/ui.css | 217 + .../themes/advanced/skins/o2k7/ui_black.css | 8 + .../themes/advanced/skins/o2k7/ui_silver.css | 5 + .../tinymce/themes/advanced/source_editor.htm | 25 + .../tinymce/themes/simple/editor_template.js | 1 + .../themes/simple/editor_template_src.js | 84 + .../tinymce/themes/simple/img/icons.gif | Bin 0 -> 806 bytes .../assets/tinymce/themes/simple/langs/en.js | 1 + .../themes/simple/skins/default/content.css | 25 + .../themes/simple/skins/default/ui.css | 32 + .../themes/simple/skins/o2k7/content.css | 17 + .../simple/skins/o2k7/img/button_bg.png | Bin 0 -> 5102 bytes .../tinymce/themes/simple/skins/o2k7/ui.css | 35 + ...ny_mce-1da73ea47a821f38c0574d5071fe56a3.js | 7 + ...mce-1da73ea47a821f38c0574d5071fe56a3.js.gz | Bin 0 -> 66670 bytes public/assets/tinymce/tiny_mce.js | 7 + public/assets/tinymce/tiny_mce.js.gz | Bin 0 -> 66670 bytes ...jquery-d449dd25bbf7aa94f73be93900141543.js | 6 + ...ery-d449dd25bbf7aa94f73be93900141543.js.gz | Bin 0 -> 62586 bytes public/assets/tinymce/tiny_mce_jquery.js | 6 + public/assets/tinymce/tiny_mce_jquery.js.gz | Bin 0 -> 62586 bytes public/assets/tinymce/tiny_mce_jquery_src.js | 15979 +++++++++++++++ public/assets/tinymce/tiny_mce_popup.js | 5 + public/assets/tinymce/tiny_mce_src.js | 16802 ++++++++++++++++ .../assets/tinymce/utils/editable_selects.js | 70 + public/assets/tinymce/utils/form_utils.js | 210 + public/assets/tinymce/utils/mctabs.js | 162 + public/assets/tinymce/utils/validate.js | 252 + ..._list-8b1bfd319d46ae4087bb356f64c6f51a.png | Bin 0 -> 181 bytes public/assets/tree_list.png | Bin 0 -> 181 bytes ...ist_h-2c8e8c22b12609bcbd09694de89c6c0d.png | Bin 0 -> 184 bytes public/assets/tree_list_h.png | Bin 0 -> 184 bytes ...d_but-c1aad9ed6935c4eeb82fda648aed0e4e.png | Bin 0 -> 963 bytes public/assets/upload_but.png | Bin 0 -> 963 bytes ...bfont-3684e7a1e7eeb5e4f17b99c64cd6871e.ttf | Bin 0 -> 12344 bytes ...bfont-37abb7b7d5692f6540f74f98792a5aa1.svg | 108 + ...font-500cf883647902466fbd5746598dfcec.woff | Bin 0 -> 7864 bytes ...bfont-a258a78a8a0f9cb535cf56f5d5ba4896.eot | Bin 0 -> 12596 bytes public/assets/websymbols-regular-webfont.eot | Bin 0 -> 12596 bytes public/assets/websymbols-regular-webfont.svg | 108 + public/assets/websymbols-regular-webfont.ttf | Bin 0 -> 12344 bytes public/assets/websymbols-regular-webfont.woff | Bin 0 -> 7864 bytes ...floor-68bca2ebc66aaa0d13b0e85a82bb9a3e.jpg | Bin 0 -> 860841 bytes public/assets/wood_floor.jpg | Bin 0 -> 860841 bytes public/index1.html | 0 tmp/restart.txt | 0 407 files changed, 57909 insertions(+), 26 deletions(-) create mode 100644 config/environments/production.rb.bak create mode 100644 config/environments/production.rb.cp_from_dev_work create mode 100644 public/assets/75-9e78fdbcb9cc33a7c4ff3acd9912ead5.png create mode 100644 public/assets/75.png create mode 100644 public/assets/Jobs-25fa5d89cd615962bd84da941390ed1c.jpg create mode 100644 public/assets/Jobs.jpg create mode 100644 public/assets/PIE-212456f5b192ae4c335600b2db30bf37.htc create mode 100644 public/assets/PIE.htc create mode 100644 public/assets/Thumbs-f35679bb600d7b11dd0811a704e50d42.db create mode 100644 public/assets/Thumbs.db create mode 100644 public/assets/add_mamber-e0bf1c09e7fcccd57b5552246298bb97.png create mode 100644 public/assets/add_mamber.png create mode 100644 public/assets/application-d22b654c29be380f94da4393299af1e2.js create mode 100644 public/assets/application-d22b654c29be380f94da4393299af1e2.js.gz create mode 100644 public/assets/application-d4bb6cd6a735ef6a52269cb42cdc7072.css create mode 100644 public/assets/application-d4bb6cd6a735ef6a52269cb42cdc7072.css.gz create mode 100644 public/assets/application.css create mode 100644 public/assets/application.css.gz create mode 100644 public/assets/application.js create mode 100644 public/assets/application.js.gz create mode 100644 public/assets/background-231ffdf8b290436ccc9fbe23147ff64b.jpg create mode 100644 public/assets/background.jpg create mode 100644 public/assets/bar_bg-1013fd328e0d5df45a0f6d5005a0877e.png create mode 100644 public/assets/bar_bg.png create mode 100644 public/assets/bar_border-8d379bb5bf32d1dd5c7008440791cde9.png create mode 100644 public/assets/bar_border.png create mode 100644 public/assets/bar_btn-d1d39f15ca1851e2364cc30cbbf065f7.png create mode 100644 public/assets/bar_btn.png create mode 100644 public/assets/bar_id-c57ffbabe8c591f0f09cc135d4ae1813.png create mode 100644 public/assets/bar_id.png create mode 100644 public/assets/bar_orbit-3a2faa88876a52f6361452e667c9cb40.png create mode 100644 public/assets/bar_orbit.png create mode 100644 public/assets/bar_pw-9287090b7f5cbc04e44ce09a56da4a42.png create mode 100644 public/assets/bar_pw.png create mode 100644 public/assets/body-22ac538da6ee98962e74ba7583839efd.jpg create mode 100644 public/assets/body.jpg create mode 100644 public/assets/bought_btn-fbf6c72a1e031d39f65db84969d53978.png create mode 100644 public/assets/bought_btn.png create mode 100644 public/assets/buy_btn-312aa89b7c42f322de139fe750b767a9.png create mode 100644 public/assets/buy_btn.png create mode 100644 public/assets/default-img-6a80f970e1e373a587c8f09c4cbe1bc9.png create mode 100644 public/assets/default-img.png create mode 100644 public/assets/glyphicons-halflings-626dfac91275982059a5bb2586f29924.png create mode 100644 public/assets/glyphicons-halflings-white-3173d355c51fcd42bdae2a84857cb0a5.png create mode 100644 public/assets/glyphicons-halflings-white.png create mode 100644 public/assets/glyphicons-halflings.png create mode 100644 public/assets/h1_bg-2433e48c52a5b71dbe1b50b98761f5e5.png create mode 100644 public/assets/h1_bg-d914a6e54b0a163b21b68ac21e21c0b4.jpg create mode 100644 public/assets/h1_bg.jpg create mode 100644 public/assets/h1_bg.png create mode 100644 public/assets/home-dbed8b52e5d67c6936df66ff818fdd0b.png create mode 100644 public/assets/home.png create mode 100644 public/assets/hr_cover-3312b4a98953621f51d080e97a4f789d.png create mode 100644 public/assets/hr_cover.png create mode 100644 public/assets/html-9b737a404c3d855e61b31f5ad3c3002d.png create mode 100644 public/assets/html.png create mode 100644 public/assets/icon-5541cdfd62c7cabe8a8d1bdb61446464.png create mode 100644 public/assets/icon.png create mode 100644 public/assets/icon1-6a94198ae480dcbdf993340557c06883.png create mode 100644 public/assets/icon1.png create mode 100644 public/assets/icon2-dc9f147d42e16ee54468d097ea2d64bc.png create mode 100644 public/assets/icon2.png create mode 100644 public/assets/icons_pack-c82c8f9c9ecfc96da48385e89f1a54ab.png create mode 100644 public/assets/icons_pack.png create mode 100644 public/assets/icons_pack_white-28a4078b786bca24ac71084241e42ab3.png create mode 100644 public/assets/icons_pack_white.png create mode 100644 public/assets/line-1bb59332d77ea975069418e25a877e8a.png create mode 100644 public/assets/line.png create mode 100644 public/assets/main-search-d2461b97384a489d44de3d36bc72e17a.png create mode 100644 public/assets/main-search.png create mode 100644 public/assets/manifest.yml create mode 100644 public/assets/menber-pic-24b0a5ce2e5f48e8e1325db02aa427f0.png create mode 100644 public/assets/menber-pic.png create mode 100644 public/assets/nccu_logo-52d58b11fb0645c8820617dd32efcd08.png create mode 100644 public/assets/nccu_logo.png create mode 100644 public/assets/new_blog/application-72b85095be5e1061006a0d21664c4ec6.css create mode 100644 public/assets/new_blog/application-72b85095be5e1061006a0d21664c4ec6.css.gz create mode 100644 public/assets/new_blog/application.css create mode 100644 public/assets/new_blog/application.css.gz create mode 100644 public/assets/orbit-bar-d258d9a552b5db529c677da803bd011b.png create mode 100644 public/assets/orbit-bar.png create mode 100644 public/assets/orbitbar-f0456e0ea1f099ab6fdef62516776150.png create mode 100644 public/assets/orbitbar.png create mode 100644 public/assets/orbitbar1-f0456e0ea1f099ab6fdef62516776150.png create mode 100644 public/assets/orbitbar1.png create mode 100644 public/assets/person-80d44f6898110d07723ffcdeace2ba25.png create mode 100644 public/assets/person.png create mode 100644 public/assets/preview-b2639e66a275450d36580e9d7982e04c.png create mode 100644 public/assets/preview.png create mode 100644 public/assets/rails-e888ac73dbf6a8f6d08eb56f0e76ae19.png create mode 100644 public/assets/rails.png create mode 100644 public/assets/roles_type-80477c618cf79d8c4d980bd3b911c7d0.jpg create mode 100644 public/assets/roles_type.jpg create mode 100644 public/assets/search_bg-a7c67438285dd32db4570ec009ec854f.png create mode 100644 public/assets/search_bg.png create mode 100644 public/assets/search_block_bg-8b6c7614632f61ad66836e92e0d14b65.jpg create mode 100644 public/assets/search_block_bg.jpg create mode 100644 public/assets/service_btn-e57511e1b532eaba5d8461d5c0ad054e.png create mode 100644 public/assets/service_btn.png create mode 100644 public/assets/sidebar_li-20415179e92d2bc3a04d4bd24449c443.jpg create mode 100644 public/assets/sidebar_li.jpg create mode 100644 public/assets/sidebar_li2-0314430f3128ddf8ef0b08eb8d4d8ced.jpg create mode 100644 public/assets/sidebar_li2.jpg create mode 100644 public/assets/sign-in-logo-96872662bbb7d39f593224ee38f4cd9b.png create mode 100644 public/assets/sign-in-logo.png create mode 100644 public/assets/sign-in-logo2-358e783c2338bb40a064b4685c6f292b.png create mode 100644 public/assets/sign-in-logo2.png create mode 100644 public/assets/switch-2d96b86df692da8c93abddb222128965.png create mode 100644 public/assets/switch.png create mode 100644 public/assets/tinymce/jquery-tinymce-9c38b8686e1171a0d86d287b8eb48271.js create mode 100644 public/assets/tinymce/jquery-tinymce-9c38b8686e1171a0d86d287b8eb48271.js.gz create mode 100644 public/assets/tinymce/jquery-tinymce.js create mode 100644 public/assets/tinymce/jquery-tinymce.js.gz create mode 100644 public/assets/tinymce/jquery.tinymce.js create mode 100644 public/assets/tinymce/langs/en.js create mode 100644 public/assets/tinymce/license.txt create mode 100644 public/assets/tinymce/plugins/advhr/css/advhr.css create mode 100644 public/assets/tinymce/plugins/advhr/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/advhr/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/advhr/js/rule.js create mode 100644 public/assets/tinymce/plugins/advhr/langs/en_dlg.js create mode 100644 public/assets/tinymce/plugins/advhr/rule.htm create mode 100644 public/assets/tinymce/plugins/advimage/css/advimage.css create mode 100644 public/assets/tinymce/plugins/advimage/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/advimage/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/advimage/image.htm create mode 100644 public/assets/tinymce/plugins/advimage/img/sample.gif create mode 100644 public/assets/tinymce/plugins/advimage/js/image.js create mode 100644 public/assets/tinymce/plugins/advimage/langs/en_dlg.js create mode 100644 public/assets/tinymce/plugins/advlink/css/advlink.css create mode 100644 public/assets/tinymce/plugins/advlink/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/advlink/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/advlink/js/advlink.js create mode 100644 public/assets/tinymce/plugins/advlink/langs/en_dlg.js create mode 100644 public/assets/tinymce/plugins/advlink/link.htm create mode 100644 public/assets/tinymce/plugins/advlist/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/advlist/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/autolink/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/autolink/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/autoresize/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/autoresize/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/autosave/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/autosave/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/autosave/langs/en.js create mode 100644 public/assets/tinymce/plugins/bbcode/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/bbcode/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/contextmenu/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/contextmenu/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/directionality/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/directionality/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/emotions/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/emotions/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/emotions/emotions.htm create mode 100644 public/assets/tinymce/plugins/emotions/img/smiley-cool.gif create mode 100644 public/assets/tinymce/plugins/emotions/img/smiley-cry.gif create mode 100644 public/assets/tinymce/plugins/emotions/img/smiley-embarassed.gif create mode 100644 public/assets/tinymce/plugins/emotions/img/smiley-foot-in-mouth.gif create mode 100644 public/assets/tinymce/plugins/emotions/img/smiley-frown.gif create mode 100644 public/assets/tinymce/plugins/emotions/img/smiley-innocent.gif create mode 100644 public/assets/tinymce/plugins/emotions/img/smiley-kiss.gif create mode 100644 public/assets/tinymce/plugins/emotions/img/smiley-laughing.gif create mode 100644 public/assets/tinymce/plugins/emotions/img/smiley-money-mouth.gif create mode 100644 public/assets/tinymce/plugins/emotions/img/smiley-sealed.gif create mode 100644 public/assets/tinymce/plugins/emotions/img/smiley-smile.gif create mode 100644 public/assets/tinymce/plugins/emotions/img/smiley-surprised.gif create mode 100644 public/assets/tinymce/plugins/emotions/img/smiley-tongue-out.gif create mode 100644 public/assets/tinymce/plugins/emotions/img/smiley-undecided.gif create mode 100644 public/assets/tinymce/plugins/emotions/img/smiley-wink.gif create mode 100644 public/assets/tinymce/plugins/emotions/img/smiley-yell.gif create mode 100644 public/assets/tinymce/plugins/emotions/js/emotions.js create mode 100644 public/assets/tinymce/plugins/emotions/langs/en_dlg.js create mode 100644 public/assets/tinymce/plugins/example/dialog.htm create mode 100644 public/assets/tinymce/plugins/example/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/example/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/example/img/example.gif create mode 100644 public/assets/tinymce/plugins/example/js/dialog.js create mode 100644 public/assets/tinymce/plugins/example/langs/en.js create mode 100644 public/assets/tinymce/plugins/example/langs/en_dlg.js create mode 100644 public/assets/tinymce/plugins/example_dependency/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/example_dependency/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/fullpage/css/fullpage.css create mode 100644 public/assets/tinymce/plugins/fullpage/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/fullpage/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/fullpage/fullpage.htm create mode 100644 public/assets/tinymce/plugins/fullpage/js/fullpage.js create mode 100644 public/assets/tinymce/plugins/fullpage/langs/en_dlg.js create mode 100644 public/assets/tinymce/plugins/fullscreen/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/fullscreen/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/fullscreen/fullscreen.htm create mode 100644 public/assets/tinymce/plugins/iespell/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/iespell/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/inlinepopups/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/inlinepopups/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif create mode 100644 public/assets/tinymce/plugins/inlinepopups/skins/clearlooks2/img/button.gif create mode 100644 public/assets/tinymce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif create mode 100644 public/assets/tinymce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif create mode 100644 public/assets/tinymce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif create mode 100644 public/assets/tinymce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif create mode 100644 public/assets/tinymce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif create mode 100644 public/assets/tinymce/plugins/inlinepopups/skins/clearlooks2/window.css create mode 100644 public/assets/tinymce/plugins/inlinepopups/template.htm create mode 100644 public/assets/tinymce/plugins/insertdatetime/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/insertdatetime/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/layer/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/layer/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/legacyoutput/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/legacyoutput/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/lists/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/lists/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/media/css/media.css create mode 100644 public/assets/tinymce/plugins/media/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/media/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/media/js/embed.js create mode 100644 public/assets/tinymce/plugins/media/js/media.js create mode 100644 public/assets/tinymce/plugins/media/langs/en_dlg.js create mode 100644 public/assets/tinymce/plugins/media/media.htm create mode 100644 public/assets/tinymce/plugins/media/moxieplayer.swf create mode 100644 public/assets/tinymce/plugins/nonbreaking/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/nonbreaking/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/noneditable/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/noneditable/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/pagebreak/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/pagebreak/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/paste/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/paste/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/paste/js/pastetext.js create mode 100644 public/assets/tinymce/plugins/paste/js/pasteword.js create mode 100644 public/assets/tinymce/plugins/paste/langs/en_dlg.js create mode 100644 public/assets/tinymce/plugins/paste/pastetext.htm create mode 100644 public/assets/tinymce/plugins/paste/pasteword.htm create mode 100644 public/assets/tinymce/plugins/preview/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/preview/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/preview/example.html create mode 100644 public/assets/tinymce/plugins/preview/jscripts/embed.js create mode 100644 public/assets/tinymce/plugins/preview/preview.html create mode 100644 public/assets/tinymce/plugins/print/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/print/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/save/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/save/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/searchreplace/css/searchreplace.css create mode 100644 public/assets/tinymce/plugins/searchreplace/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/searchreplace/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/searchreplace/js/searchreplace.js create mode 100644 public/assets/tinymce/plugins/searchreplace/langs/en_dlg.js create mode 100644 public/assets/tinymce/plugins/searchreplace/searchreplace.htm create mode 100644 public/assets/tinymce/plugins/spellchecker/css/content.css create mode 100644 public/assets/tinymce/plugins/spellchecker/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/spellchecker/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/spellchecker/img/wline.gif create mode 100644 public/assets/tinymce/plugins/style/css/props.css create mode 100644 public/assets/tinymce/plugins/style/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/style/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/style/js/props.js create mode 100644 public/assets/tinymce/plugins/style/langs/en_dlg.js create mode 100644 public/assets/tinymce/plugins/style/props.htm create mode 100644 public/assets/tinymce/plugins/tabfocus/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/tabfocus/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/table/cell.htm create mode 100644 public/assets/tinymce/plugins/table/css/cell.css create mode 100644 public/assets/tinymce/plugins/table/css/row.css create mode 100644 public/assets/tinymce/plugins/table/css/table.css create mode 100644 public/assets/tinymce/plugins/table/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/table/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/table/js/cell.js create mode 100644 public/assets/tinymce/plugins/table/js/merge_cells.js create mode 100644 public/assets/tinymce/plugins/table/js/row.js create mode 100644 public/assets/tinymce/plugins/table/js/table.js create mode 100644 public/assets/tinymce/plugins/table/langs/en_dlg.js create mode 100644 public/assets/tinymce/plugins/table/merge_cells.htm create mode 100644 public/assets/tinymce/plugins/table/row.htm create mode 100644 public/assets/tinymce/plugins/table/table.htm create mode 100644 public/assets/tinymce/plugins/template/blank.htm create mode 100644 public/assets/tinymce/plugins/template/css/template.css create mode 100644 public/assets/tinymce/plugins/template/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/template/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/template/js/template.js create mode 100644 public/assets/tinymce/plugins/template/langs/en_dlg.js create mode 100644 public/assets/tinymce/plugins/template/template.htm create mode 100644 public/assets/tinymce/plugins/visualchars/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/visualchars/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/wordcount/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/wordcount/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/xhtmlxtras/abbr.htm create mode 100644 public/assets/tinymce/plugins/xhtmlxtras/acronym.htm create mode 100644 public/assets/tinymce/plugins/xhtmlxtras/attributes.htm create mode 100644 public/assets/tinymce/plugins/xhtmlxtras/cite.htm create mode 100644 public/assets/tinymce/plugins/xhtmlxtras/css/attributes.css create mode 100644 public/assets/tinymce/plugins/xhtmlxtras/css/popup.css create mode 100644 public/assets/tinymce/plugins/xhtmlxtras/del.htm create mode 100644 public/assets/tinymce/plugins/xhtmlxtras/editor_plugin.js create mode 100644 public/assets/tinymce/plugins/xhtmlxtras/editor_plugin_src.js create mode 100644 public/assets/tinymce/plugins/xhtmlxtras/ins.htm create mode 100644 public/assets/tinymce/plugins/xhtmlxtras/js/abbr.js create mode 100644 public/assets/tinymce/plugins/xhtmlxtras/js/acronym.js create mode 100644 public/assets/tinymce/plugins/xhtmlxtras/js/attributes.js create mode 100644 public/assets/tinymce/plugins/xhtmlxtras/js/cite.js create mode 100644 public/assets/tinymce/plugins/xhtmlxtras/js/del.js create mode 100644 public/assets/tinymce/plugins/xhtmlxtras/js/element_common.js create mode 100644 public/assets/tinymce/plugins/xhtmlxtras/js/ins.js create mode 100644 public/assets/tinymce/plugins/xhtmlxtras/langs/en_dlg.js create mode 100644 public/assets/tinymce/preinit-5c1448a2a7ef82c6912089f183a81e32.js create mode 100644 public/assets/tinymce/preinit-5c1448a2a7ef82c6912089f183a81e32.js.gz create mode 100644 public/assets/tinymce/preinit.js create mode 100644 public/assets/tinymce/preinit.js.gz create mode 100644 public/assets/tinymce/themes/advanced/about.htm create mode 100644 public/assets/tinymce/themes/advanced/anchor.htm create mode 100644 public/assets/tinymce/themes/advanced/charmap.htm create mode 100644 public/assets/tinymce/themes/advanced/color_picker.htm create mode 100644 public/assets/tinymce/themes/advanced/editor_template.js create mode 100644 public/assets/tinymce/themes/advanced/editor_template_src.js create mode 100644 public/assets/tinymce/themes/advanced/image.htm create mode 100644 public/assets/tinymce/themes/advanced/img/colorpicker.jpg create mode 100644 public/assets/tinymce/themes/advanced/img/flash.gif create mode 100644 public/assets/tinymce/themes/advanced/img/icons.gif create mode 100644 public/assets/tinymce/themes/advanced/img/iframe.gif create mode 100644 public/assets/tinymce/themes/advanced/img/pagebreak.gif create mode 100644 public/assets/tinymce/themes/advanced/img/quicktime.gif create mode 100644 public/assets/tinymce/themes/advanced/img/realmedia.gif create mode 100644 public/assets/tinymce/themes/advanced/img/shockwave.gif create mode 100644 public/assets/tinymce/themes/advanced/img/trans.gif create mode 100644 public/assets/tinymce/themes/advanced/img/video.gif create mode 100644 public/assets/tinymce/themes/advanced/img/windowsmedia.gif create mode 100644 public/assets/tinymce/themes/advanced/js/about.js create mode 100644 public/assets/tinymce/themes/advanced/js/anchor.js create mode 100644 public/assets/tinymce/themes/advanced/js/charmap.js create mode 100644 public/assets/tinymce/themes/advanced/js/color_picker.js create mode 100644 public/assets/tinymce/themes/advanced/js/image.js create mode 100644 public/assets/tinymce/themes/advanced/js/link.js create mode 100644 public/assets/tinymce/themes/advanced/js/source_editor.js create mode 100644 public/assets/tinymce/themes/advanced/langs/en.js create mode 100644 public/assets/tinymce/themes/advanced/langs/en_dlg.js create mode 100644 public/assets/tinymce/themes/advanced/link.htm create mode 100644 public/assets/tinymce/themes/advanced/shortcuts.htm create mode 100644 public/assets/tinymce/themes/advanced/skins/default/content.css create mode 100644 public/assets/tinymce/themes/advanced/skins/default/dialog.css create mode 100644 public/assets/tinymce/themes/advanced/skins/default/img/buttons.png create mode 100644 public/assets/tinymce/themes/advanced/skins/default/img/items.gif create mode 100644 public/assets/tinymce/themes/advanced/skins/default/img/menu_arrow.gif create mode 100644 public/assets/tinymce/themes/advanced/skins/default/img/menu_check.gif create mode 100644 public/assets/tinymce/themes/advanced/skins/default/img/progress.gif create mode 100644 public/assets/tinymce/themes/advanced/skins/default/img/tabs.gif create mode 100644 public/assets/tinymce/themes/advanced/skins/default/ui.css create mode 100644 public/assets/tinymce/themes/advanced/skins/highcontrast/content.css create mode 100644 public/assets/tinymce/themes/advanced/skins/highcontrast/dialog.css create mode 100644 public/assets/tinymce/themes/advanced/skins/highcontrast/ui.css create mode 100644 public/assets/tinymce/themes/advanced/skins/o2k7/content.css create mode 100644 public/assets/tinymce/themes/advanced/skins/o2k7/dialog.css create mode 100644 public/assets/tinymce/themes/advanced/skins/o2k7/img/button_bg.png create mode 100644 public/assets/tinymce/themes/advanced/skins/o2k7/img/button_bg_black.png create mode 100644 public/assets/tinymce/themes/advanced/skins/o2k7/img/button_bg_silver.png create mode 100644 public/assets/tinymce/themes/advanced/skins/o2k7/ui.css create mode 100644 public/assets/tinymce/themes/advanced/skins/o2k7/ui_black.css create mode 100644 public/assets/tinymce/themes/advanced/skins/o2k7/ui_silver.css create mode 100644 public/assets/tinymce/themes/advanced/source_editor.htm create mode 100644 public/assets/tinymce/themes/simple/editor_template.js create mode 100644 public/assets/tinymce/themes/simple/editor_template_src.js create mode 100644 public/assets/tinymce/themes/simple/img/icons.gif create mode 100644 public/assets/tinymce/themes/simple/langs/en.js create mode 100644 public/assets/tinymce/themes/simple/skins/default/content.css create mode 100644 public/assets/tinymce/themes/simple/skins/default/ui.css create mode 100644 public/assets/tinymce/themes/simple/skins/o2k7/content.css create mode 100644 public/assets/tinymce/themes/simple/skins/o2k7/img/button_bg.png create mode 100644 public/assets/tinymce/themes/simple/skins/o2k7/ui.css create mode 100644 public/assets/tinymce/tiny_mce-1da73ea47a821f38c0574d5071fe56a3.js create mode 100644 public/assets/tinymce/tiny_mce-1da73ea47a821f38c0574d5071fe56a3.js.gz create mode 100644 public/assets/tinymce/tiny_mce.js create mode 100644 public/assets/tinymce/tiny_mce.js.gz create mode 100644 public/assets/tinymce/tiny_mce_jquery-d449dd25bbf7aa94f73be93900141543.js create mode 100644 public/assets/tinymce/tiny_mce_jquery-d449dd25bbf7aa94f73be93900141543.js.gz create mode 100644 public/assets/tinymce/tiny_mce_jquery.js create mode 100644 public/assets/tinymce/tiny_mce_jquery.js.gz create mode 100644 public/assets/tinymce/tiny_mce_jquery_src.js create mode 100644 public/assets/tinymce/tiny_mce_popup.js create mode 100644 public/assets/tinymce/tiny_mce_src.js create mode 100644 public/assets/tinymce/utils/editable_selects.js create mode 100644 public/assets/tinymce/utils/form_utils.js create mode 100644 public/assets/tinymce/utils/mctabs.js create mode 100644 public/assets/tinymce/utils/validate.js create mode 100644 public/assets/tree_list-8b1bfd319d46ae4087bb356f64c6f51a.png create mode 100644 public/assets/tree_list.png create mode 100644 public/assets/tree_list_h-2c8e8c22b12609bcbd09694de89c6c0d.png create mode 100644 public/assets/tree_list_h.png create mode 100644 public/assets/upload_but-c1aad9ed6935c4eeb82fda648aed0e4e.png create mode 100644 public/assets/upload_but.png create mode 100644 public/assets/websymbols-regular-webfont-3684e7a1e7eeb5e4f17b99c64cd6871e.ttf create mode 100644 public/assets/websymbols-regular-webfont-37abb7b7d5692f6540f74f98792a5aa1.svg create mode 100644 public/assets/websymbols-regular-webfont-500cf883647902466fbd5746598dfcec.woff create mode 100644 public/assets/websymbols-regular-webfont-a258a78a8a0f9cb535cf56f5d5ba4896.eot create mode 100644 public/assets/websymbols-regular-webfont.eot create mode 100644 public/assets/websymbols-regular-webfont.svg create mode 100644 public/assets/websymbols-regular-webfont.ttf create mode 100644 public/assets/websymbols-regular-webfont.woff create mode 100644 public/assets/wood_floor-68bca2ebc66aaa0d13b0e85a82bb9a3e.jpg create mode 100644 public/assets/wood_floor.jpg create mode 100644 public/index1.html create mode 100644 tmp/restart.txt diff --git a/Gemfile b/Gemfile index 7977f2ed..662a0b09 100644 --- a/Gemfile +++ b/Gemfile @@ -22,13 +22,13 @@ gem 'radius' gem 'rake' gem 'ruby-debug19' gem 'rubyzip' +gem 'therubyracer' gem 'sinatra' gem 'sprockets' gem 'tinymce-rails' gem 'therubyracer' if RUBY_PLATFORM.downcase.include?("linux") - # Gems used only for assets and not required # in production environments by default. group :assets do diff --git a/Gemfile.lock b/Gemfile.lock index 7d40024d..c3076a2e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -114,10 +114,10 @@ GEM activemodel (~> 3.1) mongo (~> 1.3) tzinfo (~> 0.3.22) + multi_json (1.1.0) mysql2 (0.3.11) mysql2 (0.3.11-x86-mingw32) net-ldap (0.3.1) - multi_json (1.1.0) orm_adapter (0.0.6) pdf-writer (1.1.8) color (>= 1.4.0) @@ -209,6 +209,8 @@ GEM rack (~> 1.0) tilt (~> 1.1, != 1.3.0) subexec (0.2.1) + therubyracer (0.9.10) + libv8 (~> 3.3.10) thor (0.14.6) tilt (1.3.3) tinymce-rails (3.4.8) @@ -270,6 +272,7 @@ DEPENDENCIES sinatra spork sprockets + therubyracer tinymce-rails uglifier watchr diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb index fcd6ac31..2c8b9707 100644 --- a/app/controllers/sessions_controller.rb +++ b/app/controllers/sessions_controller.rb @@ -60,4 +60,4 @@ private # # p rss_paunit # end -end \ No newline at end of file +end diff --git a/config/config.yml b/config/config.yml index 71234da0..439386fb 100644 --- a/config/config.yml +++ b/config/config.yml @@ -5,4 +5,6 @@ defaults: &defaults ruling_digital: 'RulingDigital' development: - <<: *defaults \ No newline at end of file + <<: *defaults +production: + <<: *defaults diff --git a/config/environments/production.rb b/config/environments/production.rb index 001ff2c6..d55e06e5 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -1,22 +1,34 @@ Orbit::Application.configure do # Settings specified here will take precedence over those in config/application.rb - # The production environment is meant for finished, "live" apps. # Code is not reloaded between requests - config.cache_classes = true + config.cache_classes = false # 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 = true + + # Generate digests for assets URLs + config.assets.digest = true + + # Defaults to Rails.root.join("public/assets") + # config.assets.manifest = YOUR_PATH + # Specifies the header that your server uses for sending files - config.action_dispatch.x_sendfile_header = "X-Sendfile" + # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache + # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx - # For nginx: - # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' - - # If you have no front-end server that supports something like X-Sendfile, - # just comment this out and Rails will serve the files + # 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 @@ -27,13 +39,12 @@ Orbit::Application.configure do # Use a different cache store in production # config.cache_store = :mem_cache_store - # Disable Rails's static asset server - # In production, Apache or nginx will already do this - config.serve_static_assets = false - - # Enable serving of images, stylesheets, and javascripts from an asset server + # 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 @@ -46,9 +57,4 @@ Orbit::Application.configure do # Send deprecation notices to registered listeners config.active_support.deprecation = :notify - - - #compress both stylesheets and Javascripts - config.assets.js_compressor = :uglifier - config.assets.css_compressor = :scss end diff --git a/config/environments/production.rb.bak b/config/environments/production.rb.bak new file mode 100644 index 00000000..f52ead13 --- /dev/null +++ b/config/environments/production.rb.bak @@ -0,0 +1,54 @@ +PrototypeR4::Application.configure do + # Settings specified here will take precedence over those in config/application.rb + + # The production environment is meant for finished, "live" apps. + # 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 + + # Specifies the header that your server uses for sending files + config.action_dispatch.x_sendfile_header = "X-Sendfile" + + # For nginx: + # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' + + # If you have no front-end server that supports something like X-Sendfile, + # just comment this out and Rails will serve the files + + # See everything in the log (default is :info) + # config.log_level = :debug + + # Use a different logger for distributed setups + # config.logger = SyslogLogger.new + + # Use a different cache store in production + # config.cache_store = :mem_cache_store + + # Disable Rails's static asset server + # In production, Apache or nginx will already do this + config.serve_static_assets = false + + # Enable serving of images, stylesheets, and javascripts from an asset server + # config.action_controller.asset_host = "http://assets.example.com" + + # 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 + + + #compress both stylesheets and Javascripts + config.assets.js_compressor = :uglifier + config.assets.css_compressor = :scss +end diff --git a/config/environments/production.rb.cp_from_dev_work b/config/environments/production.rb.cp_from_dev_work new file mode 100644 index 00000000..d1b671e5 --- /dev/null +++ b/config/environments/production.rb.cp_from_dev_work @@ -0,0 +1,44 @@ +PrototypeR4::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 webserver 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 = false + #config.action_view.debug_rjs = 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 + + + config.middleware.use ExceptionNotifier, + :email_prefix => "[R4_error]", + :sender_address => %{"notifier" }, + :exception_recipients => %w{chris@rulingcom.com} + + config.action_mailer.delivery_method = :smtp + config.action_mailer.smtp_settings = { + :tls => true, + :enable_starttls_auto => true, + :address => "smtp.gmail.com", + :port => '587', + :domain => "smtp.gmail.com", + :authentication => "plain", + :user_name => "redmine@rulingcom.com", + :password => "rulingredmine" } + +end + diff --git a/config/initializers/load_config.rb b/config/initializers/load_config.rb index 46b175b5..e6874293 100644 --- a/config/initializers/load_config.rb +++ b/config/initializers/load_config.rb @@ -1 +1 @@ -APP_CONFIG = YAML.load_file("#{Rails.root}/config/config.yml")[Rails.env] \ No newline at end of file +APP_CONFIG = YAML.load_file("#{Rails.root}/config/config.yml")[Rails.env] diff --git a/config/initializers/middle_site_connection.rb b/config/initializers/middle_site_connection.rb index 78107e69..4f20995a 100644 --- a/config/initializers/middle_site_connection.rb +++ b/config/initializers/middle_site_connection.rb @@ -4,8 +4,8 @@ require 'mysql2' mid_host = { - :host => '127.0.0.1', #mruling.nccu.edu.tw or 127.0.0.1 - :port => 8005, #3306 or 8005 + :host => 'mruling.nccu.edu.tw', #mruling.nccu.edu.tw or 127.0.0.1 + :port => 3306, #3306 or 8005 :username => "root", :password => "a3G6yWd9", :database => "RSS23_NCCU_MIDDLE", diff --git a/config/locales/en.yml b/config/locales/en.yml index 0d267eb4..5a52d42e 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -28,6 +28,9 @@ en: logout: Logout no_: "No" nothing: Nothing + nccu: NCCU + nccu_c: + nccu_ldap_uid: NCCU LDAP Account or_lower: or password: Password register: Register diff --git a/config/locales/zh_tw.yml b/config/locales/zh_tw.yml index 8999162d..64116abb 100644 --- a/config/locales/zh_tw.yml +++ b/config/locales/zh_tw.yml @@ -23,6 +23,9 @@ zh_tw: homepage: 首頁 login: 登入 logout: 登出 + nccu: 政大 + nccu_c: + nccu_ldap_uid: 政大LDAP帳號 no_: "No" nothing: 無 or_lower: 或 diff --git a/config/mongoid.yml b/config/mongoid.yml index dbb126f6..16405831 100644 --- a/config/mongoid.yml +++ b/config/mongoid.yml @@ -22,4 +22,4 @@ production: # password: <%= ENV['MONGOID_PASSWORD'] %> # database: <%= ENV['MONGOID_DATABASE'] %> <<: *defaults - database: prototype_r4_development \ No newline at end of file + database: prototype_r4_ldap0229 diff --git a/public/assets/75-9e78fdbcb9cc33a7c4ff3acd9912ead5.png b/public/assets/75-9e78fdbcb9cc33a7c4ff3acd9912ead5.png new file mode 100644 index 0000000000000000000000000000000000000000..ff8aef6e9e3343651e3add7d973dc6c40e3613ab GIT binary patch literal 923 zcmaJ=O^?z*7_KoQlY9=1fr6zBJSpuC_OC| z44QgL5c7aVpip!tY{_+5INhcY#(UW)-CdKoFqpeB#0n}>DuK5Be`px)(J6Q6gWrD& zr^8iDp+i%)OgvGz>1h!vCY^-3oFzlXZpvHi&lzXwoW-Cs&=d@=gUDxDy20Bvv7(f_ zkw+~3_& literal 0 HcmV?d00001 diff --git a/public/assets/75.png b/public/assets/75.png new file mode 100644 index 0000000000000000000000000000000000000000..ff8aef6e9e3343651e3add7d973dc6c40e3613ab GIT binary patch literal 923 zcmaJ=O^?z*7_KoQlY9=1fr6zBJSpuC_OC| z44QgL5c7aVpip!tY{_+5INhcY#(UW)-CdKoFqpeB#0n}>DuK5Be`px)(J6Q6gWrD& zr^8iDp+i%)OgvGz>1h!vCY^-3oFzlXZpvHi&lzXwoW-Cs&=d@=gUDxDy20Bvv7(f_ zkw+~3_& literal 0 HcmV?d00001 diff --git a/public/assets/Jobs-25fa5d89cd615962bd84da941390ed1c.jpg b/public/assets/Jobs-25fa5d89cd615962bd84da941390ed1c.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6d6627e402cd9036638f6b09147047346f8749cc GIT binary patch literal 43670 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 IdL3e2&{xQ3)V=Al=Kp;k39s?{n3 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 literal 0 HcmV?d00001 diff --git a/public/assets/Jobs.jpg b/public/assets/Jobs.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6d6627e402cd9036638f6b09147047346f8749cc GIT binary patch literal 43670 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 IdL3e2&{xQ3)V=Al=Kp;k39s?{n3 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 literal 0 HcmV?d00001 diff --git a/public/assets/PIE-212456f5b192ae4c335600b2db30bf37.htc b/public/assets/PIE-212456f5b192ae4c335600b2db30bf37.htc new file mode 100644 index 00000000..00b63838 --- /dev/null +++ b/public/assets/PIE-212456f5b192ae4c335600b2db30bf37.htc @@ -0,0 +1,96 @@ + + + + + + + + + diff --git a/public/assets/PIE.htc b/public/assets/PIE.htc new file mode 100644 index 00000000..00b63838 --- /dev/null +++ b/public/assets/PIE.htc @@ -0,0 +1,96 @@ + + + + + + + + + diff --git a/public/assets/Thumbs-f35679bb600d7b11dd0811a704e50d42.db b/public/assets/Thumbs-f35679bb600d7b11dd0811a704e50d42.db new file mode 100644 index 0000000000000000000000000000000000000000..f9d32b5f625bf17a3cde65784f73ba03f1ea1bdd GIT binary patch literal 62976 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 literal 0 HcmV?d00001 diff --git a/public/assets/add_mamber.png b/public/assets/add_mamber.png new file mode 100644 index 0000000000000000000000000000000000000000..1af415902486de600e1f5cfece00b7055f3fd84c GIT binary patch literal 1206 zcmeAS@N?(olHy`uVBq!ia0vp^qCl*|!3HGL3=8K0DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_cg49rTIArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XP}#GU}mUbW};_k zVqj@vsiRh+i#(Mch>H3D2mX`VkM*2oZxQ#zd*q`*i_F@Av`lL zCBM8Ftlrnx$}_LHBrz{J)zigR321^|W@d_&g_*I1i-nVuft#6yp`ojxlevYNqnV+z zv9qbOlZ&f4Os`9Ra%paAUI|QZ3PP_lPQ9R{kXrz>*(J3ovn(~mttdZN0qkX~Ox$j< z#AzN>ZwhX=IO5c+4|I$^C}NQ!8YToxJs>7L*#bH6grAxROzlO$WbL;`SB-&zQOncC zF{I*Fl1&zmwy`IrDcErwIqLAIiIIE5wr$4*l3k2NQXWVuOmhfkH@d*m zF+a)hyZw~{w;2q=vzp>`*o+*GR!MfSylAU>5ct}0%|acXBg|62NZg6(AUN~~!@#zCWA1{}?>`Ar?acsSr0c+N`blqL9;^WxnY8=3jpm&z> zQFXxj2Zt3*e`a*f7rgn}V7eOf#}p;mg&aqO7rg2G5p&CmdKI;Vst02nKn>Hq)$ literal 0 HcmV?d00001 diff --git a/public/assets/application-d22b654c29be380f94da4393299af1e2.js b/public/assets/application-d22b654c29be380f94da4393299af1e2.js new file mode 100644 index 00000000..94509768 --- /dev/null +++ b/public/assets/application-d22b654c29be380f94da4393299af1e2.js @@ -0,0 +1,27 @@ +/*! + * jQuery JavaScript Library v1.7.1 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Mon Nov 21 21:11:03 2011 -0500 + */ +function r_editor(a,b,c,d){d||(d=new Array),d.width||(d.width=400),d.height||(d.height=300);var e=this;e.filename=c,e.getUrl=a,e.postUrl=b,e.nodeToBeChanged="",e.width=d.width,e.height=d.height;var f="";e.init=function(){return code="",f=$(code),f.children("textarea").load(e.getUrl),f.children("input.discard").click(function(){e.destroy()}),f.children("input.send").click(function(){e.send()}),f},e.reload=function(){$.get(e.getUrl,function(a){f.children("textarea").text(a)})},e.send=function(){$.post(e.postUrl,{filename:e.filename,context:f.children("textarea").val(),authenticity_token:$("meta[name=csrf-token]").attr("content")},null,"script")},e.destroy=function(){f.remove()}}function resize(){viewportheight=$(window).height(),viewportwidth=$(window).width(),window.navigator.userAgent.indexOf("MSIE")>0&&(windH=document.clientHeight,windW=document.clientWidht)}function mainTablePosition(){var a=$("#main-wrap > .subnav").height(),b=$("#main-wrap > .table");b.stop().animate({marginTop:a},500)}function dropmenu(){if(!$(".rc_dm").length)return;$(".rc_dm").each(function(){$(this).find(".dm_ctrl").click(function(){var a=$(this).attr("rel"),b=$(this).outerWidth(),c=$(this).outerHeight(),d=$(this).position();return $(".dm_list").not("#"+a).hide(),$("#"+a).css({width:b,zIndex:999,left:d.left,top:d.top+c}).toggle(),!1})}),$(document).click(function(){$(".dm_list").hide()})}function tab(){if(!$(".rc_tab").length)return;$(".rc_tab").each(function(){$(this).find(".tab_ctrl:first").addClass("recent"),$(this).find(".tab_content:not(:first)").hide(),$(this).find(".tab_ctrl").click(function(){var a=$(this).attr("href");return $(this).parents(".rc_tab").find(".tab_content").hide().end().find(".tab_ctrl").removeClass("recent"),$(this).addClass("recent"),$(a).show(),!1})})}function tooltip(){if(!$(".rc_tip").length)return;$(".rc_tip").each(function(){$(this).css({position:"relative"});var a=$(this).data("tip");$(this).mouseover(function(){var b=$(this).find(".td").outerHeight(),c=$(this).offset();$(this).append(''+a+""),$(this).find(".td").show().css("display","inline-block"),$(document).mousemove(function(a){$(this).find(".td").css({left:a.pageX-c.left+16,top:a.pageY-c.top-b-20})})}).mouseout(function(){$(this).find(".td").hide().detach()})})}function accordion(){if(!$(".rc_accor").length)return;$(".rc_accor").each(function(){$(this).find(".ac_ctrl:first").addClass("recent"),$(this).find(".ac_content:not(:first)").hide();if($(this).hasClass("av"))$(this).find(".ac_ctrl").click(function(){var a=$(this).parents(".av").find(".ac_ctrl").index(this);return $(this).siblings(".ac_ctrl").removeClass("recent"),$(this).addClass("recent"),$(this).parents(".rc_accor").find(".ac_content:not(:eq("+a+"))").stop().slideUp(),$(this).parents(".rc_accor").find(".ac_content:eq("+a+")").stop().slideToggle(),!1});else if($(this).hasClass("ah")){var a=$(this).find(".ac_content").css("width");$(this).find(".ac_content:not(:eq(0))").css({width:0}),$(this).find(".ac_ctrl").click(function(){var b=$(this).parents(".ah").find(".ac_ctrl").index(this);return $(this).siblings(".ac_ctrl").removeClass("recent"),$(this).addClass("recent"),$(this).parents(".rc_accor").find(".ac_content:not(:eq("+b+"))").stop().animate({width:0}),$(this).parents(".rc_accor").find(".ac_content:eq("+b+")").stop().show().animate({width:a}),!1})}})}(function(a,b){function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c=0===c})}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function bj(a,b){if(b.nodeType!==1||!f.hasData(a))return;var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d0){if(c!=="border")for(;g").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"":"")+""),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(e.isReady)return;try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};return e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(a==="body"&&!d&&c.body)return this.context=c,this[0]=c.body,this.selector=a,this.length=1,this;if(typeof a=="string"){a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3?g=[null,a,null]:g=i.exec(a);if(g&&(g[1]||!d)){if(g[1])return d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes),e.merge(this,a);h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}return this.context=c,this.selector=a,this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}return e.isFunction(a)?f.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),e.makeArray(a,this))},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();return e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")"),d},each:function(a,b){return e.each(this,a,b)},ready:function(a){return e.bindReady(),A.add(a),this},eq:function(a){return a=+a,a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(A)return;A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}return(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c),d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}function m(a){return function(b){e[a]=arguments.length>1?i.call(arguments,0):b,j.notifyWith(k,e)}}var b=i.call(arguments,0),c=0,d=b.length,e=new Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
    a",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;return k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];if(!r)return;j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="
    "+""+"
    ",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="
    t
    ",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
    ",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i)}),b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){return a=a.nodeType?f.cache[a[f.expando]]:a[f.expando],!!a&&!m(a)},data:function(a,c,d,e){if(!f.acceptData(a))return;var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);return g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d),o&&!h[c]?g.events:(k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h,i)},removeData:function(a,b,c){if(!f.acceptData(a))return;var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];if(!arguments.length){if(g)return c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type],c&&"get"in c&&(d=c.get(g,"value"))!==b?d:(d=g.value,typeof d=="string"?d.replace(q,""):d==null?"":d);return}return e=f.isFunction(a),this.each(function(d){var g=f(this),h;if(this.nodeType!==1)return;e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1),c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!a||j===3||j===8||j===2)return;if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}return h&&"set"in h&&i&&(g=h.set(a,d,c))!==b?g:(a.setAttribute(c,""+d),d)}return h&&"get"in h&&i&&(g=h.get(a,c))!==null?g:(g=a.getAttribute(c),g===null?b:g)},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1 +){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);return b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)")),b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))return;d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f=="undefined"||!!a&&f.event.triggered===a.type?b:f.event.dispatch.apply(i.elem,arguments)},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function w(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){return i=!1,0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length!==1||w[0]!=="~"&&w[0]!=="+"||!d.parentNode?d:d.parentNode,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);return l&&(m(l,h,e,f),m.uniqueSort(e)),e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);return a[0]=e++,a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");return!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" "),a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not"){if(!((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))){var g=m.filter(b[3],c,d,!0^f);return d||e.push.apply(e,g),!1}b[3]=m(b[3],null,null,c)}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){return a.unshift(!0),a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){return a=Array.prototype.slice.call(a,0),b?(b.push.apply(b,a),b):a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

    ";if(b.querySelectorAll&&b.querySelectorAll(".TEST").length===0)return;m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
    ";if(!a.getElementsByClassName||a.getElementsByClassName("e").length===0)return;a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}return c=c.length>1?f.unique(c):c,this.pushStack(c,"closest",a)},index:function(a){return a?typeof a=="string"?f.inArray(this[0],f(a)):f.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);return L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this +.length>1||N.test(d))&&M.test(a)&&(e=e.reverse()),this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){return c&&(a=":not("+a+")"),b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
    ","
    "]),f.fn.extend({text:function(a){return f.isFunction(a)?this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))}):typeof a!="object"&&a!==b?this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a)):f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return f.isFunction(a)?this.each(function(b){f(this).wrapInner(a.call(this,b))}):this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);return a.push.apply(a,this.toArray()),this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);return a.push.apply(a,f.clean(arguments)),a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){return a=a==null?!1:a,b=b==null?a:b,this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}return d=e=null,h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;return f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight}),c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;return b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b))),c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;return f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d)),f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;return f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
    ").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}}),this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){return f.isFunction(d)&&(g=g||e,e=d,d=b),f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){return b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b),a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s===2)return;s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){return s||(d.mimeType=a),this},abort:function(a){return a=a||"abort",p&&p.abort(a),w(0,a),this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(!d.beforeSend||d.beforeSend.call(e,v,d)!==!1&&s!==2){for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(!(s<2))throw z;w(-1,z)}}return v}return v.abort(),!1},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";return b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){return g||f.error(h+" was not called"),g[0]},b.dataTypes[0]="json","script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){return f.globalEval(a),a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}return i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update(),!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();return c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0,{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;return c===b?(e=this[0],e?(g=cy(e),g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]):null):this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window),function(a,b){var c;a.rails=c={linkClickSelector:"a[data-confirm], a[data-method], a[data-remote], a[data-disable-with]",inputChangeSelector:"select[data-remote], input[data-remote], textarea[data-remote]",formSubmitSelector:"form",formInputClickSelector:"form input[type=submit], form input[type=image], form button[type=submit], form button:not(button[type])",disableSelector:"input[data-disable-with], button[data-disable-with], textarea[data-disable-with]",enableSelector:"input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled",requiredInputSelector:"input[name][required]:not([disabled]),textarea[name][required]:not([disabled])" +,fileInputSelector:"input:file",linkDisableSelector:"a[data-disable-with]",CSRFProtection:function(b){var c=a('meta[name="csrf-token"]').attr("content");c&&b.setRequestHeader("X-CSRF-Token",c)},fire:function(b,c,d){var e=a.Event(c);return b.trigger(e,d),e.result!==!1},confirm:function(a){return confirm(a)},ajax:function(b){return a.ajax(b)},handleRemote:function(d){var e,f,g,h=d.data("cross-domain")||null,i=d.data("type")||a.ajaxSettings&&a.ajaxSettings.dataType,j;if(c.fire(d,"ajax:before")){if(d.is("form")){e=d.attr("method"),f=d.attr("action"),g=d.serializeArray();var k=d.data("ujs:submit-button");k&&(g.push(k),d.data("ujs:submit-button",null))}else d.is(c.inputChangeSelector)?(e=d.data("method"),f=d.data("url"),g=d.serialize(),d.data("params")&&(g=g+"&"+d.data("params"))):(e=d.data("method"),f=d.attr("href"),g=d.data("params")||null);return j={type:e||"GET",data:g,dataType:i,crossDomain:h,beforeSend:function(a,e){return e.dataType===b&&a.setRequestHeader("accept","*/*;q=0.5, "+e.accepts.script),c.fire(d,"ajax:beforeSend",[a,e])},success:function(a,b,c){d.trigger("ajax:success",[a,b,c])},complete:function(a,b){d.trigger("ajax:complete",[a,b])},error:function(a,b,c){d.trigger("ajax:error",[a,b,c])}},f&&(j.url=f),c.ajax(j)}return!1},handleMethod:function(c){var d=c.attr("href"),e=c.data("method"),f=c.attr("target"),g=a("meta[name=csrf-token]").attr("content"),h=a("meta[name=csrf-param]").attr("content"),i=a('
    '),j='';h!==b&&g!==b&&(j+=''),f&&i.attr("target",f),i.hide().append(j).appendTo("body"),i.submit()},disableFormElements:function(b){b.find(c.disableSelector).each(function(){var b=a(this),c=b.is("button")?"html":"val";b.data("ujs:enable-with",b[c]()),b[c](b.data("disable-with")),b.prop("disabled",!0)})},enableFormElements:function(b){b.find(c.enableSelector).each(function(){var b=a(this),c=b.is("button")?"html":"val";b.data("ujs:enable-with")&&b[c](b.data("ujs:enable-with")),b.prop("disabled",!1)})},allowAction:function(a){var b=a.data("confirm"),d=!1,e;return b?(c.fire(a,"confirm")&&(d=c.confirm(b),e=c.fire(a,"confirm:complete",[d])),d&&e):!0},blankInputs:function(b,c,d){var e=a(),f,g=c||"input,textarea";return b.find(g).each(function(){f=a(this);if(d?f.val():!f.val())e=e.add(f)}),e.length?e:!1},nonBlankInputs:function(a,b){return c.blankInputs(a,b,!0)},stopEverything:function(b){return a(b.target).trigger("ujs:everythingStopped"),b.stopImmediatePropagation(),!1},callFormSubmitBindings:function(c,d){var e=c.data("events"),f=!0;return e!==b&&e.submit!==b&&a.each(e.submit,function(a,b){if(typeof b.handler=="function")return f=b.handler(d)}),f},disableElement:function(a){a.data("ujs:enable-with",a.html()),a.html(a.data("disable-with")),a.bind("click.railsDisable",function(a){return c.stopEverything(a)})},enableElement:function(a){a.data("ujs:enable-with")!==b&&(a.html(a.data("ujs:enable-with")),a.data("ujs:enable-with",!1)),a.unbind("click.railsDisable")}},a.ajaxPrefilter(function(a,b,d){a.crossDomain||c.CSRFProtection(d)}),a(document).delegate(c.linkDisableSelector,"ajax:complete",function(){c.enableElement(a(this))}),a(document).delegate(c.linkClickSelector,"click.rails",function(d){var e=a(this),f=e.data("method"),g=e.data("params");if(!c.allowAction(e))return c.stopEverything(d);e.is(c.linkDisableSelector)&&c.disableElement(e);if(e.data("remote")!==b)return(d.metaKey||d.ctrlKey)&&(!f||f==="GET")&&!g?!0:(c.handleRemote(e)===!1&&c.enableElement(e),!1);if(e.data("method"))return c.handleMethod(e),!1}),a(document).delegate(c.inputChangeSelector,"change.rails",function(b){var d=a(this);return c.allowAction(d)?(c.handleRemote(d),!1):c.stopEverything(b)}),a(document).delegate(c.formSubmitSelector,"submit.rails",function(d){var e=a(this),f=e.data("remote")!==b,g=c.blankInputs(e,c.requiredInputSelector),h=c.nonBlankInputs(e,c.fileInputSelector);if(!c.allowAction(e))return c.stopEverything(d);if(g&&e.attr("novalidate")==b&&c.fire(e,"ajax:aborted:required",[g]))return c.stopEverything(d);if(f)return h?c.fire(e,"ajax:aborted:file",[h]):!a.support.submitBubbles&&a().jquery<"1.7"&&c.callFormSubmitBindings(e,d)===!1?c.stopEverything(d):(c.handleRemote(e),!1);setTimeout(function(){c.disableFormElements(e)},13)}),a(document).delegate(c.formInputClickSelector,"click.rails",function(b){var d=a(this);if(!c.allowAction(d))return c.stopEverything(b);var e=d.attr("name"),f=e?{name:e,value:d.val()}:null;d.closest("form").data("ujs:submit-button",f)}),a(document).delegate(c.formSubmitSelector,"ajax:beforeSend.rails",function(b){this==b.target&&c.disableFormElements(a(this))}),a(document).delegate(c.formSubmitSelector,"ajax:complete.rails",function(b){this==b.target&&c.enableFormElements(a(this))})}(jQuery),$("button.multi_files").live("click",function(){return $("#new_add_banner_file_holder").append("
  • "+$(this).val()+"Time:"+$(this).siblings(".ad_time").val()+"Link:"+$(this).siblings(".ad_out_link").val()+"
  • "),new_node=$(this).parent().clone(),$(this).parent().css("display","none"),new_node.children("input.multi_files").val(""),$(this).parent().before(new_node),!1}),$("a.remove_mark").live("click",function(){return $(this).prev("input").val("true"),$(this).parent().css("text-decoration","line-through"),$(this).parent().removeClass("r_snapshot"),$(this).next().remove(),$(this).remove(),!1}),function(a){function b(){if(!a.fn.ajaxSubmit.debug)return;var b="[jquery.form] "+Array.prototype.join.call(arguments,"");window.console&&window.console.log?window.console.log(b):window.opera&&window.opera.postError&&window.opera.postError(b)}a.fn.ajaxSubmit=function(c){function w(b){var d=new FormData;for(var e=0;e').attr("value",j.extraData[k]).appendTo(f)[0]);j.iframeTarget||(m.appendTo("body"),n.attachEvent?n.attachEvent("onload",E):n.addEventListener("load",E,!1)),setTimeout(h,15),f.submit()}finally{f.setAttribute("action",e),c?f.setAttribute("target",c):g.removeAttr("target"),a(i).remove()}}function E(c){if(o.aborted||D)return;try{B=w(n)}catch(d){b("cannot access response document: ",d),c=v}if(c===u&&o){o.abort("timeout");return}if(c==v&&o){o.abort("server abort");return}if(!B||B.location.href==j.iframeSrc)if(!r)return;n.detachEvent?n.detachEvent("onload",E):n.removeEventListener("load",E,!1);var e="success",f;try{if(r)throw"timeout";var g=j.dataType=="xml"||B.XMLDocument||a.isXMLDoc(B);b("isXml="+g);if(!g&&window.opera&&(B.body==null||B.body.innerHTML=="")&&--C){b("requeing onLoad callback, DOM not available"),setTimeout(E,250);return}var h=B.body?B.body:B.documentElement;o.responseText=h?h.innerHTML:null,o.responseXML=B.XMLDocument?B.XMLDocument:B,g&&(j.dataType="xml"),o.getResponseHeader=function(a){var b={"content-type":j.dataType};return b[a]},h&&(o.status=Number(h.getAttribute("status"))||o.status,o.statusText=h.getAttribute("statusText")||o.statusText);var i=(j.dataType||"").toLowerCase(),l=/(json|script|text)/.test(i);if(l||j.textarea){var p=B.getElementsByTagName("textarea")[0];if(p)o.responseText=p.value,o.status=Number(p.getAttribute("status"))||o.status,o.statusText=p.getAttribute("statusText")||o.statusText;else if(l){var q=B.getElementsByTagName("pre")[0],t=B.getElementsByTagName("body")[0];q?o.responseText=q.textContent?q.textContent:q.innerText:t&&(o.responseText=t.textContent?t.textContent:t.innerText)}}else i=="xml"&&!o.responseXML&&o.responseText!=null&&(o.responseXML=F(o.responseText));try{A=H(o,i,j)}catch(c){e="parsererror",o.error=f=c||e}}catch(c){b("error caught: ",c),e="error",o.error=f=c||e}o.aborted&&(b("upload aborted"),e=null),o.status&&(e=o.status>=200&&o.status<300||o.status===304?"success":"error"),e==="success"?(j.success&&j.success.call(j.context,A,"success",o),k&&a.event.trigger("ajaxSuccess",[o,j])):e&&(f==undefined&&(f=o.statusText),j.error&&j.error.call(j.context,o,e,f),k&&a.event.trigger("ajaxError",[o,j,f])),k&&a.event.trigger("ajaxComplete",[o,j]),k&&!--a.active&&a.event.trigger("ajaxStop"),j.complete&&j.complete.call(j.context,o,e),D=!0,j.timeout&&clearTimeout(s),setTimeout(function(){j.iframeTarget||m.remove(),o.responseXML=null},100)}var f=g[0],h,i,j,k,l,m,n,o,p,q,r,s,t=!!a.fn.prop;if(e)if(t)for(i=0;i'),m.css({position:"absolute",top:"-1000px",left:"-1000px"})),n=m[0],o={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(c){var d=c==="timeout"?"timeout":"aborted";b("aborting upload... "+d),this.aborted=1,m.attr("src",j.iframeSrc),o.error=d,j.error&&j.error.call(j.context,o,d,c),k&&a.event.trigger("ajaxError",[o,j,d]),j.complete&&j.complete.call(j.context,o,d)}},k=j.global,k&&!(a.active++)&&a.event.trigger("ajaxStart"),k&&a.event.trigger("ajaxSend",[o,j]);if(j.beforeSend&&j.beforeSend.call(j.context,o,j)===!1){j.global&&a.active--;return}if(o.aborted)return;p=f.clk,p&&(q=p.name,q&&!p.disabled&&(j.extraData=j.extraData||{},j.extraData[q]=p.value,p.type=="image"&&(j.extraData[q+".x"]=f.clk_x,j.extraData[q+".y"]=f.clk_y)));var u=1,v=2,x=a("meta[name=csrf-token]").attr("content"),y=a("meta[name=csrf-param]").attr("content");y&&x&&(j.extraData=j.extraData||{},j.extraData[y]=x),j.forceSync?z():setTimeout(z,10);var A,B,C=50,D,F=a.parseXML||function(a,b){return window.ActiveXObject?(b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)):b=(new DOMParser).parseFromString(a,"text/xml"),b&&b.documentElement&&b.documentElement.nodeName!="parsererror"?b:null},G=a.parseJSON||function(a){return window.eval("("+a+")")},H=function(b,c,d){var e=b.getResponseHeader("content-type")||"",f=c==="xml"||!c&&e.indexOf("xml")>=0,g=f?b.responseXML:b.responseText;return f&&g.documentElement.nodeName==="parsererror"&&a.error&&a.error("parsererror"),d&&d.dataFilter&&(g=d.dataFilter(g,c)),typeof g=="string"&&(c==="json"||!c&&e.indexOf("json")>=0?g=G(g):(c==="script"||!c&&e.indexOf("javascript")>=0)&&a.globalEval(g)),g}}if(!this.length)return b("ajaxSubmit: skipping submit process - no element selected"),this;var d,e,f,g=this;typeof c=="function"&&(c={success:c}),d=this.attr("method"),e=this.attr("action"),f=typeof e=="string"?a.trim(e):"",f=f||window.location.href||"",f&&(f=(f.match(/^([^#]+)/)||[])[1]),c=a.extend(!0,{url:f,success:a.ajaxSettings.success,type:d||"GET",iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank"},c);var h={};this.trigger("form-pre-serialize",[this,c,h]);if(h.veto)return b("ajaxSubmit: submit vetoed via form-pre-serialize trigger"),this;if(c.beforeSerialize&&c.beforeSerialize(this,c)===!1)return b("ajaxSubmit: submit aborted via beforeSerialize callback"),this;var i=c.traditional;i===undefined&&(i=a.ajaxSettings.traditional);var j,k,l,m=this.formToArray(c.semantic);c.data&&(c.extraData=c.data,j=a.param(c.data,i));if(c.beforeSubmit&&c.beforeSubmit(m,this,c)===!1)return b("ajaxSubmit: submit aborted via beforeSubmit callback"),this;this.trigger("form-submit-validate",[m,this,c,h]);if(h.veto)return b("ajaxSubmit: submit vetoed via form-submit-validate trigger"),this;var n=a.param(m,i);j&&(n=n?n+"&"+j:j),c.type.toUpperCase()=="GET"?(c.url+=(c.url.indexOf("?")>=0?"&":"?")+n,c.data=null):c.data=n;var o=[];c.resetForm&&o.push(function(){g.resetForm()}),c.clearForm&&o.push(function(){g.clearForm(c.includeHidden)});if(!c.dataType&&c.target){var p=c.success||function(){};o.push(function(b){var d=c.replaceTarget?"replaceWith":"html";a(c.target)[d](b).each(p,arguments)})}else c.success&&o.push(c.success);c.success=function(a,b,d){var e=c.context||c;for(var f=0,h=o.length;f0,s="multipart/form-data",t=g.attr("enctype")==s||g.attr("encoding")==s,u=!!(r&&q.get(0).files&&window.FormData);b("fileAPI :"+u);var v=(r||t)&&!u;return c.iframe!==!1&&(c.iframe||v)?c.closeKeepAlive?a.get(c.closeKeepAlive,function(){x(m)}):x(m):(r||t)&&u?(c.progress=c.progress||a.noop,w(m)):a.ajax(c),this.trigger("form-submit-notify",[this,c]),this},a.fn.ajaxForm=function(c){if(this.length===0){var d={s:this.selector,c:this.context};return!a.isReady&&d.s?(b("DOM not ready, queuing ajaxForm"),a(function(){a(d.s,d.c).ajaxForm(c)}),this):(b("terminating; zero elements found by selector"+(a.isReady?"":" (DOM not ready)")),this)}return this.ajaxFormUnbind().bind("submit.form-plugin",function(b){b.isDefaultPrevented()||(b.preventDefault(),a(this).ajaxSubmit(c))}).bind("click.form-plugin",function(b){var c=b.target,d=a(c);if(!d.is(":submit,input:image")){var e=d.closest(":submit");if(e.length==0)return;c=e[0]}var f=this;f.clk=c;if(c.type=="image")if(b.offsetX!=undefined)f.clk_x=b.offsetX,f.clk_y=b.offsetY;else if(typeof a.fn.offset=="function"){var g=d.offset();f.clk_x=b.pageX-g.left,f.clk_y=b.pageY-g.top}else f.clk_x=b.pageX-c.offsetLeft,f.clk_y=b.pageY-c.offsetTop;setTimeout(function(){f.clk=f.clk_x=f.clk_y=null},100)})},a.fn.ajaxFormUnbind=function(){return this.unbind("submit.form-plugin click.form-plugin")},a.fn.formToArray=function(b){var c=[];if(this.length===0)return c;var d=this[0],e=b?d.getElementsByTagName("*"):d.elements;if(!e)return c;var f,g,h,i,j,k,l;for(f=0,k=e.length;f";for(i=current_year;i>=b;i--)d+="";d+=" Date: Month: ",a.html(d)},loadingWrapper:function(a,b){b?(a.prepend("
    "),$rss("#loading_wrapper").height(a.height()),$rss("#loading_wrapper").width(a.width())):(domId=a.attr("id"),$rss("#"+domId+" #loading_wrapper").remove())},validate:function(a,b,c){var d=a.val(),e=!1,f="",g="";switch(b){case"required":d==""&&(e=!0),g="Cannot be empty.";break;case"email":f=/^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/,g="Invalid Email Address.";break;case"number":f=/^\d*[0-9](|.\d*[0-9]|,\d*[0-9])?$/,g="Only numbers are accepted.";break;case"alphanumeric":f=/^\s*[a-zA-Z0-9,\s]+\s*$/,g="Only numbers, alphabets and spaces are allowed."}return domId=a.attr("name"),c==""&&(c=g),f!=""&&(f.test(d)||(e=!0)),e?($rss("#"+domId+"_error").remove(),a.after(""+c+""),!1):($rss("#"+domId+"_error").remove(),!0)},bindToSpinner:function(a,b,c){var d=a.attr("id"),e="",f=Array(),g=Array();$rss.each(b,function(a,c){$rss.each(b[a],function(a,b){f.push(b)})}),e="",a.html(e),typeof c=="function"&&c.call(this,e)},bindToTable:function(a,b,c,d,e,f){e||(e="");var g="
    ",h=a.attr("id");if(d){var i=Array(),j=Array();$rss.each(d,function(a,b){i.push(a),j.push(b)}),rcom.translate(i,function(d){i=d.slice(),rcom.translate(c,function(d){c=d;if(!b)return;$rss.each(c,function(a,b){g+=""}),g+="",b.length==0&&(g+=""),$rss.each(b,function(a,b){var c="";a%2!=0&&(c="even"),g+="",$rss.each(b,function(a,b){a!="id"&&(b==null&&(b="Not Set"),g+="")}),g+="",g+=""}),g+="
    "+b+"
    No Data
    "+b+"";for(x=0;x"+i[x]+"";g+="
    ",a.html(g)})})}else rcom.translate(c,function(d){c=d;if(!b)return;c.length>0&&$rss.each(c,function(a,b){g+=""+b+""}),g+="",b.length==0&&(g+="No Data"),$rss.each(b,function(a,b){var c="";a%2!=0&&(c="even"),g+="",$rss.each(b,function(a,b){a!="id"&&(b==null&&(b="Not Set"),g+=""+b+"")}),g+=""}),g+="",a.html(g)});typeof f=="function"&&f.call(this,g)},convertToInsertableDate:function(a,b,c,d){var e="";b<10&&(b="0"+b),c<10&&(c="0"+c);switch(d){case"yyyy-mm-dd":e=a+"-"+b+"-"+c;break;case"dd-mm-yyyy":e=c+"-"+b+"-"+a;break;case"mm-dd-yyyy":e=b+"-"+c+"-"+a;break;default:e=a+"-"+b+"-"+c}return e},showDoms:function(a){$rss("body").find("div").each(function(){$rss(this).hide()}),$rss.each(a,function(a,b){b.show()})},translate:function(a,b){var c="",d=!0;a||(typeof b=="function"&&b.call(this,c),d=!1),a==""&&(typeof b=="function"&&b.call(this,c),d=!1),d&&$rss.getJSON("../../classes/translate.php",{fn:"translateThis",tData:a},function(a){typeof b=="function"&&b.call(this,a)})},bindToList:function(a,b,c){var d=a.attr("id"),e="",f=Array(),g=Array();$rss.each(b,function(a,c){$rss.each(b[a],function(a,b){f.push(b)})}),e="
      ";for(i=0,y=1,z=0;i"+f[y]+"";e+="
    ",a.html(e),typeof c=="function"&&c.call(this,e)},makeDraggable:function(a,b){a.css("position","absolute"),b.css("position","absolute");var c=0,d=0,e=0,f=0,g="",h=b.css("z-index");a.mousedown(function(a){c=a.clientX,e=a.clientY,g=b.offset(),$rss(this).mousemove(function(a){d=a.clientX-c,d+=g.left,f=a.clientY-e,f+=g.top,b.css({left:d+"px",top:f+"px","z-index":"9999"})})}).mouseup(function(){$rss(this).unbind("mousemove"),b.css("z-index",h)})},scrollToBottom:function(a){var b=a.attr("id"),c=document.getElementById(b);c.scrollTop+100>=c.scrollHeight-c.offsetHeight&&a.scrollTop(c.scrollHeight)},loadImages:function(settings,callbackFn){var dom=settings.dom,domid=dom.attr("id"),temp_array=Array(),starting=$rss("#"+domid+" img:last").attr("id");typeof starting!="undefined"?starting=starting.substr(4,starting.length-1):starting=0;var temp_var="",json="",dhtml="",extraparam="";typeof settings.extraParam!="undefined"&&(extraparam=settings.extraParam),$rss.getJSON(settings.url,{fn:settings.fn,id:settings.whereId,limit:settings.limit,start:starting,extra:extraparam},function(images){json=eval(images),$rss.each(images,function(a,b){var c=Array(),d=Array(),e="",f="";$rss.each(b,function(a,b){c.push(b)}),c.length>=4&&(e=""+c[3]+"
  • "),c[2]==null?f="":f=c[2],typeof settings.bindTo!="undefined"?(d[1]="onclick='"+settings.bindTo+"("+c[0]+");return false;'",d[0]=""):(d[0]="?"+settings.urlKey+"="+c[0],d[1]=""),dhtml="
    "+e,dom.delay(100).append(dhtml),$rss("#pic_"+b.id).delay(100).fadeIn(200)}),typeof callbackFn=="function"&&callbackFn.call(this,json)})},getUrlVars:function(){var a=[],b,c=window.location.href.slice(window.location.href.indexOf("?")+1).split("&");for(var d=0;dj&&(h=j),l=(f-h)/2),i!="auto"?m=(g-i)/2:(i=$rss("#rgWindow").width(),i>k&&(i=k),m=(g-i)/2),i=parseInt(i)+25,$rss("#rgWindow").empty().show();var a="";e&&(a='X'),$rss("#rgWindow").animate({width:i+"px",height:h+"px",top:l+"px",left:m+"px"},500,function(){$rss("#rgWindow").html(a+"
    "+d+"
    "),$rss("#close_modal").mouseover(function(){$rss(this).css("color","#999")}).mouseout(function(){$rss(this).css("color","#666")}),$rss("#close_modal").click(function(){$rss("#rgWindow").empty();var a=(f-20)/2,b=(g-20)/2;return $rss("#rgWindow").animate({top:a+"px",left:b+"px",width:"50px",height:"50px"},300,function(){$rss(this).fadeOut(100).remove(),$rss("#rgsheath").fadeOut(500).remove()}),!1}),c&&$rss("#rgsheath").click(function(){$rss("#rgWindow").empty();var a=(f-20)/2,b=(g-20)/2;$rss("#rgWindow").animate({top:a+"px",left:b+"px",width:"50px",height:"50px"},300,function(){$rss(this).fadeOut(100).remove(),$rss("#rgsheath").fadeOut(500).remove()})}),typeof b=="function"&&b.call(this,d)})}var c=a.envClose,d="";typeof c=="undefined"&&(c=!0);var e=a.closeBtn;typeof e=="undefined"&&(e=!0);var f=$rss(window).height(),g=$rss(window).width(),h=a.height,i=a.width,j=f*85/100,k=g*85/100;typeof h!="undefined"?(h.charAt(h.length-1)=="%"&&(h=f*parseInt(h.substr(0,h.length))/100),h>j&&(h=j)):h="auto",typeof i!="undefined"?(i.charAt(i.length-1)=="%"&&(i=g*parseInt(i.substr(0,i.length))/100),i>k&&(i=k)):i="auto",$rss("body").append('
    '),$rss("#rgsheath").css({background:"#000",width:"100%",position:"fixed",top:0,left:0,opacity:.5,"z-index":199}),$rss("body").append('
    '),$rss("#rgWindow").css({position:"fixed","z-index":"999",background:"#fff",border:"solid 1px #ccc",padding:"10px","border-radius":"5px","-webkit-border-radius":"5px","-moz-border-radius":"5px","-ms-border-radius":"5px","box-shadow":"0 0 20px rgba(0,0,0,0.7)","-webkit-box-shadow":"0 0 20px rgba(0,0,0,0.7)","-moz-box-shadow":"0 0 20px rgba(0,0,0,0.7)","-ms-box-shadow":"0 0 20px rgba(0,0,0,0.7)"});var l=(f-20)/2,m=(g-20)/2;$rss("#rgWindow").css({top:l+"px",left:m+"px"}),typeof a.loadDiv!="undefined"&&(d=$rss("#"+a.loadDiv).html(),$rss("#rgWindow").html(d).hide(),n()),typeof a.loadHtml!="undefined"&&(d=a.loadHtml,$rss("#rgWindow").html(d).hide(),n()),typeof a.loadPage!="undefined"&&$rss("#rgWindow").load(a.loadPage,function(){$rss(this).hide(),d=$rss(this).html(),n()})},modalWindowUpdate:function(a,b){function j(){e!="auto"?rgWTop=(c-e)/2:(e=$rss("#rgwindow_temp_div").height(),e>h&&(e=h),rgWTop=(c-e)/2),f!="auto"?rgWLeft=(d-f)/2:(f=$rss("#rgwindow_temp_div").width(),f>i&&(f=i),rgWLeft=(d-f)/2),f=parseInt(f)+25,$rss("#rgContent").empty(),$rss("#rgWindow").animate({width:f+"px",height:e+"px",top:rgWTop+"px",left:rgWLeft+"px"},500,function(){$rss("#rgContent").css("height",e+"px").html(g)}),$rss("#rgwindow_temp_div").remove()}var c=$rss(window).height(),d=$rss(window).width(),e=a.height,f=a.width,g="",h=c*85/100,i=d*85/100;typeof e!="undefined"?(e.charAt(e.length-1)=="%"&&(e=c*parseInt(e.substr(0,e.length))/100),e>h&&(e=h)):e="auto",typeof f!="undefined"?(f.charAt(f.length-1)=="%"&&(f=d*parseInt(f.substr(0,f.length))/100),f>i&&(f=i)):f="auto",$rss("body").append("
    "),typeof a.loadDiv!="undefined"&&(g=$rss("#"+a.loadDiv).html(),$rss("#rgwindow_temp_div").html(g).hide(),j()),typeof a.loadHtml!="undefined"&&(g=a.loadHtml,$rss("#rgwindow_temp_div").html(g).hide(),j()),typeof a.loadPage!="undefined"&&$rss("#rgwindow_temp_div").load(a.loadPage,function(){$rss(this).hide(),g=$rss(this).html(),j()})},modalWindowClose:function(a){if($rss("#rgWindow").length>0){$rss("#rgWindow").empty();var b=$rss(window).height(),c=$rss(window).width(),d=(b-20)/2,e=(c-20)/2;$rss("#rgWindow").animate({top:d+"px",left:e+"px",width:"50px",height:"50px"},300,function(){$rss(this).fadeOut(100).remove(),$rss("#rgsheath").fadeOut(500).remove()})}typeof a=="function"&&a.call(this,"harry")},bindDomToHead:function(a){var b=a.css("background"),c=a.offset(),d=a.width();$rss(window).scroll(function(){var e=$rss(window).scrollTop();if(e>c.top){var f={position:"fixed",top:0,width:d,background:b,"box-shadow":"0 1px 0 rgba(0,0,0,0.2)","z-index":99};a.css(f)}else a.attr("style","")})},progressBar:function(a,b){var c=a.prop("id");$rss("#rss_progressbar_div_"+c).length==0&&(typeof b.top=="undefined"&&(b.value=1),typeof b.top=="undefined"&&(b.top=(a.height()-12)/2),a.append(""),$rss("#rss_progressbar_div_"+c).fadeIn(500))},progressBarValue:function(a,b){var c=a.prop("id");$rss("#rss_progressbar_div_"+c).length==1&&$rss("#rss_progressbar_"+c).animate({width:b+"%"},100)},progressBarClose:function(a){var b=a.prop("id");$rss("#rss_progressbar_div_"+b).fadeOut(500,function(){$(this).remove()})},getInternetExplorerVersion:function(){var a=-1;if(navigator.appName=="Microsoft Internet Explorer"){var b=navigator.userAgent,c=new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})");c.exec(b)!=null&&(a=parseFloat(RegExp.$1))}return a}};$=jQuery.noConflict(),$("#submit_button").live("click",function(){$("#ajaxForm").ajaxSubmit({beforeSubmit:function(a,b,c){c.dataType="script"}})}),$(".attributes_block a.delete").live("click",function(){$(this).parents(".list_item").remove()}),$(".action a.remove_existing_record").live("click",function(){$(this).next(".should_destroy").attr("value",1),$("#attribute_"+$(this).prev().attr("value")).hide()}),$(".action a.switch").live("click",function(){$(this).parent().toggleClass("disable");var a=$(this).next(".built_in_state");a.attr("value",a.attr("value")=="false"?"true":"false")}),$(".select_type select").live("change",function(){this.value=="select"?$(this).next().show():$(this).next().hide()}),!function(a){a(function(){"use strict",a.support.transition=function(){var b=document.body||document.documentElement,c=b.style,d=c.transition!==undefined||c.WebkitTransition!==undefined||c.MozTransition!==undefined||c.MsTransition!==undefined||c.OTransition!==undefined;return d&&{end:function(){var b="TransitionEnd";return a.browser.webkit?b="webkitTransitionEnd":a.browser.mozilla?b="transitionend":a.browser.opera&&(b="oTransitionEnd"),b}()}}()})}(window.jQuery),!function(a){function c(){var b=this,c=setTimeout(function(){b.$element.off(a.support.transition.end),d.call(b)},500);this.$element.one(a.support.transition.end,function(){clearTimeout(c),d.call(b)})}function d(a){this.$element.hide().trigger("hidden"),e.call(this)}function e(b){var c=this,d=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var e=a.support.transition&&d;this.$backdrop=a('