finish ask module
This commit is contained in:
		
							parent
							
								
									0904978292
								
							
						
					
					
						commit
						ce180839f0
					
				
							
								
								
									
										1
									
								
								Gemfile
								
								
								
								
							
							
						
						
									
										1
									
								
								Gemfile
								
								
								
								
							|  | @ -64,6 +64,7 @@ gem 'rmmseg-cpp-huacnlee', '0.2.9' | |||
| gem 'redis-namespace' | ||||
| gem 'redis-search' | ||||
| gem 'syslog-logger' | ||||
| gem "recaptcha", :require => "recaptcha/rails" | ||||
| 
 | ||||
| # Gems used only for assets and not required | ||||
| # in production environments by default. | ||||
|  |  | |||
|  | @ -0,0 +1,7 @@ | |||
| .bundle/ | ||||
| log/*.log | ||||
| pkg/ | ||||
| test/dummy/db/*.sqlite3 | ||||
| test/dummy/log/*.log | ||||
| test/dummy/tmp/ | ||||
| test/dummy/.sass-cache | ||||
|  | @ -0,0 +1,17 @@ | |||
| source "http://rubygems.org" | ||||
| 
 | ||||
| # Declare your gem's dependencies in ask.gemspec. | ||||
| # Bundler will treat runtime dependencies like base dependencies, and | ||||
| # development dependencies will be added by default to the :development group. | ||||
| gemspec | ||||
| 
 | ||||
| # jquery-rails is used by the dummy application | ||||
| gem "jquery-rails" | ||||
| 
 | ||||
| # Declare any dependencies that are still in development here instead of in | ||||
| # your gemspec. These might include edge Rails or gems from your path or | ||||
| # Git. Remember to move these dependencies to your gemspec before releasing | ||||
| # your gem to rubygems.org. | ||||
| 
 | ||||
| # To use debugger | ||||
| # gem 'debugger' | ||||
|  | @ -0,0 +1,20 @@ | |||
| Copyright 2013 YOURNAME | ||||
| 
 | ||||
| Permission is hereby granted, free of charge, to any person obtaining | ||||
| a copy of this software and associated documentation files (the | ||||
| "Software"), to deal in the Software without restriction, including | ||||
| without limitation the rights to use, copy, modify, merge, publish, | ||||
| distribute, sublicense, and/or sell copies of the Software, and to | ||||
| permit persons to whom the Software is furnished to do so, subject to | ||||
| the following conditions: | ||||
| 
 | ||||
| The above copyright notice and this permission notice shall be | ||||
| included in all copies or substantial portions of the Software. | ||||
| 
 | ||||
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||||
| EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||||
| MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||||
| NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE | ||||
| LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION | ||||
| OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | ||||
| WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||||
|  | @ -0,0 +1,3 @@ | |||
| = Ask | ||||
| 
 | ||||
| This project rocks and uses MIT-LICENSE. | ||||
|  | @ -0,0 +1,38 @@ | |||
| #!/usr/bin/env rake | ||||
| begin | ||||
|   require 'bundler/setup' | ||||
| rescue LoadError | ||||
|   puts 'You must `gem install bundler` and `bundle install` to run rake tasks' | ||||
| end | ||||
| begin | ||||
|   require 'rdoc/task' | ||||
| rescue LoadError | ||||
|   require 'rdoc/rdoc' | ||||
|   require 'rake/rdoctask' | ||||
|   RDoc::Task = Rake::RDocTask | ||||
| end | ||||
| 
 | ||||
| RDoc::Task.new(:rdoc) do |rdoc| | ||||
|   rdoc.rdoc_dir = 'rdoc' | ||||
|   rdoc.title    = 'Ask' | ||||
|   rdoc.options << '--line-numbers' | ||||
|   rdoc.rdoc_files.include('README.rdoc') | ||||
|   rdoc.rdoc_files.include('lib/**/*.rb') | ||||
| end | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Bundler::GemHelper.install_tasks | ||||
| 
 | ||||
| require 'rake/testtask' | ||||
| 
 | ||||
| Rake::TestTask.new(:test) do |t| | ||||
|   t.libs << 'lib' | ||||
|   t.libs << 'test' | ||||
|   t.pattern = 'test/**/*_test.rb' | ||||
|   t.verbose = false | ||||
| end | ||||
| 
 | ||||
| 
 | ||||
| task :default => :test | ||||
|  | @ -0,0 +1,23 @@ | |||
| class ApplicationController < ActionController::Base | ||||
|   protect_from_forgery | ||||
|   before_filter :set_locale | ||||
| 
 | ||||
|   # Set I18n.locale | ||||
|   def set_locale | ||||
|     # update session if passed | ||||
|     session[:locale] = params[:locale] if params[:locale] | ||||
| 
 | ||||
|     # set locale based on session or default | ||||
|     begin | ||||
|       # check if locale is valid for non site pages | ||||
|       if !VALID_LOCALES.include?(session[:locale]) | ||||
|         I18n.locale = I18n.default_locale | ||||
|       else | ||||
|         I18n.locale = session[:locale] | ||||
|       end | ||||
|     rescue | ||||
|       I18n.locale = I18n.default_locale | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
| end | ||||
							
								
								
									
										55
									
								
								vendor/built_in_modules/ask/app/controllers/panel/ask/back_end/ask_categories_controller.rb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										55
									
								
								vendor/built_in_modules/ask/app/controllers/panel/ask/back_end/ask_categories_controller.rb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,55 @@ | |||
| class Panel::Ask::BackEnd::AskCategoriesController < OrbitBackendController | ||||
| 
 | ||||
|   include AdminHelper | ||||
|   include OrbitControllerLib::DivisionForDisable | ||||
| 
 | ||||
|   def initialize | ||||
|     super | ||||
|     @app_title = 'ask_categories' | ||||
|   end | ||||
| 
 | ||||
|   def index | ||||
| 		@ask_categories = AskCategory.admin_manager_all | ||||
| 		@ask_category = AskCategory.new | ||||
|     @url = panel_ask_back_end_ask_categories_path | ||||
|   end | ||||
| 
 | ||||
|   def create | ||||
|     @ask_category = AskCategory.new(params[:ask_category]) | ||||
|     @ask_category.save! | ||||
| 
 | ||||
|     respond_to do |format| | ||||
|       format.js | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   def edit | ||||
|     @ask_category = AskCategory.find(params[:id]) | ||||
|     @url = panel_ask_back_end_ask_category_path(@ask_category) | ||||
| 
 | ||||
|     respond_to do |format| | ||||
|       format.js | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   def update | ||||
|     @ask_category = AskCategory.find(params[:id]) | ||||
|     @url = panel_ask_back_end_ask_category_path(@ask_category) | ||||
|     @ask_category.update_attributes(params[:ask_category]) | ||||
| 
 | ||||
|     respond_to do |format| | ||||
|       format.js | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   def destroy | ||||
|     @ask_category = AskCategory.find(params[:id]) | ||||
|     @ask_category.disable = !@ask_category.disable | ||||
|     @ask_category.save! | ||||
| 
 | ||||
|     respond_to do |format| | ||||
|       format.js | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
| end | ||||
							
								
								
									
										85
									
								
								vendor/built_in_modules/ask/app/controllers/panel/ask/back_end/ask_questions_controller.rb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										85
									
								
								vendor/built_in_modules/ask/app/controllers/panel/ask/back_end/ask_questions_controller.rb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,85 @@ | |||
| require 'csv' | ||||
| 
 | ||||
| class Panel::Ask::BackEnd::AskQuestionsController < OrbitBackendController | ||||
| 
 | ||||
|   include AdminHelper | ||||
|   include OrbitControllerLib::DivisionForDisable | ||||
| 
 | ||||
|   def initialize | ||||
|     super | ||||
|     @app_title = 'ask_questions' | ||||
|   end | ||||
| 
 | ||||
|   def index | ||||
|     @ask_questions = (params[:sort]) ? get_sorted_and_filtered('ask_questions') : get_viewable('ask_questions') | ||||
| 
 | ||||
|     respond_to do |format| | ||||
|       format.html | ||||
|       format.js | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   def edit | ||||
|     @ask_question = AskQuestion.find(params[:id]) | ||||
|     if @ask_question.ask_reply | ||||
|       @url = panel_ask_back_end_ask_question_ask_reply_path(@ask_question, @ask_question.ask_reply) | ||||
|     else | ||||
|       @ask_question.ask_reply = AskReply.new | ||||
|       @url = panel_ask_back_end_ask_question_ask_replies_path(@ask_question) | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   def destroy | ||||
|     @ask_question = AskQuestion.find(params[:id]) | ||||
|     @ask_question.destroy | ||||
| 
 | ||||
|     respond_to do |format| | ||||
|       format.js | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   def delete | ||||
|     if params[:ids] | ||||
|       ask_questions = AskQuestion.any_in(:_id => params[:ids]).destroy_all | ||||
|     end | ||||
|     redirect_to panel_ask_back_end_ask_questions_url(:direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options]) | ||||
|   end | ||||
| 
 | ||||
|   def export | ||||
| 
 | ||||
|   end | ||||
| 
 | ||||
|   def do_export | ||||
|     Rails.application.config.mongoid.use_activesupport_time_zone = true | ||||
|     date_start = "#{params[:export]['start(1i)']}-#{params[:export]['start(2i)']}-#{params[:export]['start(3i)']}" | ||||
|     date_end = "#{params[:export]['end(1i)']}-#{params[:export]['end(2i)']}-#{params[:export]['end(3i)']}" | ||||
|     @ask_questions = AskQuestion.includes(:ask_category).includes(:ask_reply).where(:created_at.gte => date_start, :created_at.lte => date_end) | ||||
| 
 | ||||
|     csv = CSV.generate do |csv| | ||||
|       csv << [ t('category'), | ||||
|                AskQuestion.human_attribute_name(:name), | ||||
|                AskQuestion.human_attribute_name(:identity), | ||||
|                AskQuestion.human_attribute_name(:email), | ||||
|                AskQuestion.human_attribute_name(:phone), | ||||
|                AskQuestion.human_attribute_name(:tax), | ||||
|                AskQuestion.human_attribute_name(:title), | ||||
|                AskQuestion.human_attribute_name(:content), | ||||
|                AskReply.human_attribute_name(:content), | ||||
|                AskReply.human_attribute_name(:comment)] | ||||
|       @ask_questions.each do |ask_question| | ||||
|         ask_question.ask_reply ||= AskReply.new | ||||
|         csv << [ ask_question.ask_category.name, | ||||
|                  ask_question.name, | ||||
|                  ask_question.identity, | ||||
|                  ask_question.email, | ||||
|                  ask_question.phone, | ||||
|                  ask_question.tax, | ||||
|                  ask_question.title, | ||||
|                  ask_question.content, | ||||
|                  ask_question.ask_reply.content, | ||||
|                  ask_question.ask_reply.comment ] | ||||
|       end | ||||
|     end | ||||
|     send_data csv, type: 'text/csv',  filename: "#{t('ask.ask')}#{date_start}-#{date_end}.csv" | ||||
|   end | ||||
| end | ||||
							
								
								
									
										34
									
								
								vendor/built_in_modules/ask/app/controllers/panel/ask/back_end/ask_replies_controller.rb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										34
									
								
								vendor/built_in_modules/ask/app/controllers/panel/ask/back_end/ask_replies_controller.rb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,34 @@ | |||
| require File.expand_path('../../../../../mailers/ask_mailer', __FILE__) | ||||
| 
 | ||||
| class Panel::Ask::BackEnd::AskRepliesController < OrbitBackendController | ||||
| 
 | ||||
|   include AdminHelper | ||||
|   include OrbitControllerLib::DivisionForDisable | ||||
| 
 | ||||
|   def initialize | ||||
|     super | ||||
|     @app_title = 'ask_replies' | ||||
|   end | ||||
| 
 | ||||
|   def create | ||||
|     @ask_question = AskQuestion.find(params[:ask_question_id]) | ||||
|     @ask_question.ask_reply.create(params[:ask_reply]) | ||||
|     if @ask_question.ask_reply.send_email? | ||||
|       ::AskMailer.reply(@ask_question).deliver | ||||
|     end | ||||
|     respond_to do |format| | ||||
|       format.js | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   def update | ||||
|     @ask_reply = AskReply.find(params[:id]) | ||||
|     @ask_reply.update_attributes(params[:ask_reply]) | ||||
|     if @ask_reply.send_email? | ||||
|       ::AskMailer.reply(@ask_reply.ask_question).deliver | ||||
|     end | ||||
|     respond_to do |format| | ||||
|       format.js | ||||
|     end | ||||
|   end | ||||
| end | ||||
							
								
								
									
										21
									
								
								vendor/built_in_modules/ask/app/controllers/panel/ask/front_end/ask_questions_controller.rb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										21
									
								
								vendor/built_in_modules/ask/app/controllers/panel/ask/front_end/ask_questions_controller.rb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,21 @@ | |||
| class Panel::Ask::FrontEnd::AskQuestionsController < OrbitWidgetController | ||||
| 
 | ||||
|   layout false | ||||
| 
 | ||||
|   def initialize | ||||
|     super | ||||
|     @app_title = 'ask' | ||||
|   end | ||||
| 
 | ||||
|   def index | ||||
|     @ask_question = AskQuestion.new | ||||
|   end | ||||
| 
 | ||||
|   def create | ||||
|     @ask_question = AskQuestion.new(params[:ask_question]) | ||||
|     if verify_recaptcha model: @ask_question,  private_key: '6Lfl7OESAAAAAD4rl5S16-zjt5yiKNYJ6jsqdwmL' | ||||
|       @ask_question.save | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
| end | ||||
|  | @ -0,0 +1,9 @@ | |||
| # encoding: utf-8 | ||||
| class AskMailer < ActionMailer::Base | ||||
|   default from: 'orbit_test@rulingcom.com' | ||||
| 
 | ||||
|   def reply(ask_question) | ||||
|     @ask_question = ask_question | ||||
|     mail(:to => @ask_question.email, :subject => "#{t('ask.reply')}:#{@ask_question.title}") | ||||
|   end | ||||
| end | ||||
|  | @ -0,0 +1,10 @@ | |||
| class AskCategory | ||||
|   include Mongoid::Document | ||||
|   include Mongoid::Timestamps | ||||
|   include OrbitCoreLib::ObjectDisable | ||||
| 
 | ||||
|   field :name, localize: true | ||||
|   field :key | ||||
| 
 | ||||
|   has_many :ask_questions | ||||
| end | ||||
|  | @ -0,0 +1,19 @@ | |||
| class AskQuestion | ||||
|   include Mongoid::Document | ||||
|   include Mongoid::Timestamps | ||||
|   include OrbitCoreLib::ObjectDisable | ||||
| 
 | ||||
|   field :department, type: String | ||||
|   field :name, type: String | ||||
|   field :identity, type: String | ||||
|   field :email, type: String | ||||
|   field :phone, type: String | ||||
|   field :tax, type: String | ||||
|   field :title, type: String | ||||
|   field :content, type: String | ||||
| 
 | ||||
|   validates_presence_of :department, :name, :identity, :email, :title, :content | ||||
| 
 | ||||
|   belongs_to :ask_category | ||||
|   has_one :ask_reply, dependent: :destroy | ||||
| end | ||||
|  | @ -0,0 +1,11 @@ | |||
| class AskReply | ||||
|   include Mongoid::Document | ||||
|   include Mongoid::Timestamps | ||||
| 
 | ||||
|   field :content, type: String | ||||
|   field :comment, type: String | ||||
|   field :status, type: String | ||||
|   field :send_email, type: Boolean, detault: false | ||||
| 
 | ||||
|   belongs_to :ask_question | ||||
| end | ||||
|  | @ -0,0 +1,11 @@ | |||
| <!DOCTYPE html> | ||||
| <html> | ||||
|   <head> | ||||
|     <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> | ||||
|   </head> | ||||
|   <body> | ||||
|     <p> | ||||
|       <%= @ask_question.ask_reply.content %> | ||||
|     </p> | ||||
|   </body> | ||||
| </html> | ||||
							
								
								
									
										17
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/back_end/ask_categories/_ask_category.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										17
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/back_end/ask_categories/_ask_category.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,17 @@ | |||
| <tr id="<%= dom_id ask_category %>" class="with_action"> | ||||
|   <td> | ||||
|     <%= ask_category.key %> | ||||
|     <%if at_least_module_manager %> | ||||
|       <div class="quick-edit"> | ||||
|       <ul class="nav nav-pills hide"> | ||||
|         <li><%= link_to t(:edit), edit_panel_ask_back_end_ask_category_path(ask_category), :remote => true %></li> | ||||
|         <li><%= link_to   show_toggle_archive_btn(ask_category), panel_ask_back_end_ask_category_path(ask_category), :confirm => t(:sure?), :method => :delete, :remote => true ,:class=> "archive_toggle"%></li> | ||||
|         <li><%#= show_ask_permission_link ask_category %></li> | ||||
|       </ul> | ||||
|     </div> | ||||
|   <% end -%> | ||||
|   </td> | ||||
|   <% @site_valid_locales.each do |locale| %> | ||||
|     <td><%= ask_category.name_translations[locale] rescue nil %></td> | ||||
|   <% end %> | ||||
| </tr> | ||||
							
								
								
									
										28
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/back_end/ask_categories/_form.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										28
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/back_end/ask_categories/_form.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,28 @@ | |||
| <%= form_for(@ask_category, :remote => true, :url => @url) do |f| %> | ||||
| 
 | ||||
| 	<h2><%= (@ask_category.new_record? ? t(:add) : t(:edit)) %></h2> | ||||
| 
 | ||||
| 	<div id="widget-title"> | ||||
| 		<%= f.label :key, t(:key) %> | ||||
| 		<%= f.text_field :key %> | ||||
| 	</div> | ||||
| 
 | ||||
| 	<div id="widget-title"> | ||||
| 		<%= f.fields_for :name_translations do |f| %> | ||||
| 		  <% @site_valid_locales.each do |locale| %> | ||||
| 				<div class="control-group"> | ||||
| 					<%= label_tag "name-#{locale}", "#{t(:name)}-#{I18nVariable.from_locale(locale)}", :class => 'control-label' %> | ||||
| 					<div class="controls"> | ||||
| 						<%= f.text_field locale, :class => 'input-xxlarge', :value => (@ask_category.name_translations[locale] rescue nil) %> | ||||
| 					</div> | ||||
| 				</div> | ||||
| 		  <% end %> | ||||
| 		<% end %> | ||||
| 	</div> | ||||
| 
 | ||||
|   <div class="form-actions"> | ||||
|     <%= f.submit t(:submit), :class=>'btn btn-primary' %> | ||||
|   </div> | ||||
| 
 | ||||
| <% end %> | ||||
| 
 | ||||
							
								
								
									
										2
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/back_end/ask_categories/create.js.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										2
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/back_end/ask_categories/create.js.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,2 @@ | |||
| $('<%= j render :partial => 'ask_category', :collection => [@ask_category] %>').appendTo('#ask_categories').hide().fadeIn(); | ||||
| $("#new_ask_category")[0].reset(); | ||||
							
								
								
									
										1
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/back_end/ask_categories/destroy.js.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										1
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/back_end/ask_categories/destroy.js.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1 @@ | |||
| $("#<%= dom_id @ask_category %>").find(".archive_toggle").text("<%= show_toggle_archive_btn(@ask_category) %>  "); | ||||
							
								
								
									
										1
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/back_end/ask_categories/edit.js.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										1
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/back_end/ask_categories/edit.js.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1 @@ | |||
| $("#form > form").replaceWith("<%= j render "form" %>"); | ||||
							
								
								
									
										34
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/back_end/ask_categories/index.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										34
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/back_end/ask_categories/index.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,34 @@ | |||
| <%= flash_messages %> | ||||
| <div id="filter" class="subnav"> | ||||
|   <div class="filters"> | ||||
|     <div id="sort_headers" class="table-label"> | ||||
|       <table class="table main-list"> | ||||
|         <thead> | ||||
|           <tr> | ||||
|             <th class="span1-2"><%= t(:key) %></th> | ||||
|             <% %w[服務 Service].each do |name| %> | ||||
|               <th class="span1-2"><%= name %></th> | ||||
|             <% end %> | ||||
|           </tr> | ||||
|         </thead> | ||||
|       </table> | ||||
|     </div> | ||||
|   </div> | ||||
| </div> | ||||
| 
 | ||||
| <table id="ask_categories" class="table main-list"> | ||||
|   <thead> | ||||
|     <tr> | ||||
|       <th class="span1-2"></th> | ||||
|       <% @site_valid_locales.each do |locale| %> | ||||
|         <th class="span1-2"></th> | ||||
|     <% end %> | ||||
|     </tr> | ||||
|   </thead> | ||||
|   <tbody class="sort-holder"> | ||||
|     <%= render :partial => 'ask_category', :collection => @ask_categories %> | ||||
|   </tbody> | ||||
| </table> | ||||
| 
 | ||||
| <div id="form"><%= render :partial => "form"  if at_least_module_manager%></div> | ||||
| 
 | ||||
							
								
								
									
										4
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/back_end/ask_categories/update.js.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										4
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/back_end/ask_categories/update.js.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,4 @@ | |||
| $("#<%= dom_id @ask_category %>").replaceWith("<%= j render :partial => 'ask_category', :collection => [@ask_category] %>"); | ||||
| <% @ask_category = QaCategory.new(:display => 'List') # reset for new form %> | ||||
| $(".edit_ask_category").replaceWith("<%= j render "form" %>") | ||||
| $(".new_ask_category")[0].reset(); | ||||
							
								
								
									
										29
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/back_end/ask_questions/_ask_question.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										29
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/back_end/ask_questions/_ask_question.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,29 @@ | |||
| <tr id="<%= dom_id ask_question %>" class="with_action"> | ||||
|   <td> | ||||
|     <%= check_box_tag 'to_delete[]', ask_question.id, false, :class => "checkbox_in_list" %> | ||||
|   </td> | ||||
|   <td> | ||||
|     <%= ask_question.ask_reply ? ask_question.ask_reply.status : '' %> | ||||
|   </td> | ||||
|   <td> | ||||
|     <%= ask_question.ask_category.name %> | ||||
|   </td> | ||||
|   <td> | ||||
|     <%= ask_question.title %> | ||||
| 	  <div class="quick-edit"> | ||||
| 	  	<ul class="nav nav-pills hide"> | ||||
| 	  		<%if at_least_module_manager || ask_question.ask_category.cur_user_is_sub_manager_of(:edit)%> | ||||
| 	  		<li><%= link_to t('edit'), edit_panel_ask_back_end_ask_question_path(ask_question, :page => params[:page]) %></li> | ||||
| 	  		<li><%= link_to t(:delete_), panel_ask_back_end_ask_question_path(ask_question), :confirm => t('sure?'), :method => :delete, :remote => true %></li> | ||||
| 	  		<% end -%> | ||||
| 	  	</ul> | ||||
| 	  </div> | ||||
|   </td> | ||||
|   <td> | ||||
|     <%= ask_question.name %> | ||||
|   </td> | ||||
|   <td> | ||||
|     <%= ask_question.created_at.strftime "%Y-%m-%d %H:%M:%S" %> | ||||
|   </td> | ||||
| </tr> | ||||
| 
 | ||||
							
								
								
									
										11
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/back_end/ask_questions/_filter.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										11
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/back_end/ask_questions/_filter.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,11 @@ | |||
| <div id='filter' class="subnav"> | ||||
|   <div class="filters accordion-group"> | ||||
|     <div id="sort_headers" class="table-label"> | ||||
|       <%= render 'sort_headers' %> | ||||
|     </div> | ||||
|   </div> | ||||
| </div> | ||||
| 
 | ||||
| <% content_for :page_specific_javascript do %> | ||||
|   <%= javascript_include_tag 'sort_header' %> | ||||
| <% end %> | ||||
|  | @ -0,0 +1,6 @@ | |||
| <%= render_sort_bar(true, delete_panel_ask_back_end_ask_questions_path(direction: params[:direction], sort: params[:sort], sort_options: params[:sort_options]), | ||||
|   ['status', 'ask_reply.status','span1', :status], | ||||
|   ['ask_category', 'ask_category','span1', :category], | ||||
|   ['title', 'title','span3', :title], | ||||
|   ['name', 'name','span1', 'mongoid.attributes.ask_question.name'], | ||||
|   ['created_at', 'created_at','span1', 'mongoid.attributes.ask_question.created_at']).html_safe %> | ||||
							
								
								
									
										1
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/back_end/ask_questions/destroy.js.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										1
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/back_end/ask_questions/destroy.js.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1 @@ | |||
| $("#<%= dom_id @ask_question %>").remove(); | ||||
							
								
								
									
										55
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/back_end/ask_questions/edit.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										55
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/back_end/ask_questions/edit.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,55 @@ | |||
| <div id="ask_question_reply"> | ||||
|   <%= form_for @ask_question.ask_reply, url: @url, remote: true do |f| %> | ||||
|     <table class="table"> | ||||
|       <tr> | ||||
|         <td><%= AskQuestion.human_attribute_name(:name) %>:<%= @ask_question.name %></td> | ||||
|         <td><%= AskQuestion.human_attribute_name(:identity) %>:<%= @ask_question.identity %></td> | ||||
|         <td><%= AskQuestion.human_attribute_name(:email) %>:<%= @ask_question.email %></td> | ||||
|         <td><%= AskQuestion.human_attribute_name(:phone) %>:<%= @ask_question.phone %></td> | ||||
|         <td><%= AskQuestion.human_attribute_name(:tax) %>:<%= @ask_question.tax %></td> | ||||
|       </tr> | ||||
|       <tr> | ||||
|         <td colspan="5"><%= AskQuestion.human_attribute_name(:title) %>:<%= @ask_question.title %></td> | ||||
|       </tr> | ||||
|       <tr> | ||||
|         <td colspan="5"><%= AskQuestion.human_attribute_name(:content) %>:<br/><%= @ask_question.content %></td> | ||||
|       </tr> | ||||
|       <tr> | ||||
|         <td colspan="5"> | ||||
|           <%= f.label :content %> | ||||
|           <br/> <%= f.text_area :content, rows: 10, style: 'width: 500px' %> | ||||
|         </td> | ||||
|       </tr> | ||||
|       <tr> | ||||
|         <td colspan="5"> | ||||
|           <%= f.label :comment %> | ||||
|           <br/> <%= f.text_field :comment, style: 'width: 500px' %></td> | ||||
|       </tr> | ||||
|       <tr> | ||||
|         <td colspan="5"><%= f.label :status %> <%= f.select :status, [ | ||||
|           ['待處理', '待處理'], | ||||
|           ['已處理', '已處理'], | ||||
|           ['轉介其他單位', '轉介其他單位'] | ||||
|         ] %></td> | ||||
|       </tr> | ||||
|       <tr> | ||||
|         <td colspan="5"> | ||||
|           <%= f.label :send_email %><%= f.radio_button :send_email, 1, checked: @ask_question.ask_reply.send_email? %><%= t('ask.yes') %> | ||||
|             | ||||
|             | ||||
|             | ||||
|             | ||||
|           <%= f.radio_button :send_email, 0, checked: !@ask_question.ask_reply.send_email? %><%= t('ask.no') %> | ||||
|         </td> | ||||
|       </tr> | ||||
|       <tr> | ||||
|         <td colspan="5"> | ||||
|           <div class="form-actions"> | ||||
|             <%= f.submit t('submit'), class: 'btn btn-primary' %> | ||||
|             <%= f.button t('cancel'), type: 'reset', class: 'btn' %> | ||||
|           </div> | ||||
|         </td> | ||||
|       </tr> | ||||
|     </table> | ||||
|   <% end %> | ||||
| </div> | ||||
							
								
								
									
										21
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/back_end/ask_questions/export.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										21
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/back_end/ask_questions/export.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,21 @@ | |||
| <div id="ask-questions-export"> | ||||
|   <%= form_tag export_panel_ask_back_end_ask_questions_path, method: 'post' do |f| %> | ||||
|     <table> | ||||
|       <tr> | ||||
|         <td><%= t('date_') %></td> | ||||
|         <td><%= date_select 'export', :start %> <%= t('ask.to') %></td> | ||||
|       </tr> | ||||
|       <tr> | ||||
|         <td></td> | ||||
|         <td><%= date_select 'export', :end %></td> | ||||
|       </tr> | ||||
|       <tr> | ||||
|         <td colspan="2"> | ||||
|           <div class="form-actions"> | ||||
|             <%= submit_tag t('submit'), class: 'btn btn-primary' %> | ||||
|           </div> | ||||
|         </td> | ||||
|       </tr> | ||||
|     </table> | ||||
|   <% end %> | ||||
| </div> | ||||
							
								
								
									
										23
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/back_end/ask_questions/index.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										23
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/back_end/ask_questions/index.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,23 @@ | |||
| <%= render 'filter' %> | ||||
| 
 | ||||
| <table class="table main-list"> | ||||
|   <thead> | ||||
|     <tr> | ||||
|       <th class="span1"></th> | ||||
|       <th class="span1"></th> | ||||
|       <th class="span1"></th> | ||||
|       <th class="span3"></th> | ||||
|       <th class="span1"></th> | ||||
|       <th class="span1"></th> | ||||
|     </tr> | ||||
|   </thead> | ||||
|   <tbody id="tbody_surveys" class="sort-holder"> | ||||
|     <%= render :partial => 'ask_question', :collection => @ask_questions %> | ||||
|   </tbody> | ||||
| </table> | ||||
| 
 | ||||
| <div class="form-actions form-fixed pagination-right"> | ||||
|   <div id="ask_questions_pagination" class="paginationFixed"> | ||||
|   <%= paginate @ask_questions %> | ||||
|   </div> | ||||
| </div> | ||||
							
								
								
									
										4
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/back_end/ask_questions/index.js.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										4
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/back_end/ask_questions/index.js.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,4 @@ | |||
| $("#delete_all").attr("action", "<%= delete_panel_ask_back_end_ask_questions_path(:direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil, :sort_options => params[:sort_options]) %>"); | ||||
| $("#sort_headers").html("<%= j render 'sort_headers' %>"); | ||||
| $("#tbody_surveys").html("<%= j render :partial => 'ask_question', :collection => @ask_questions %>"); | ||||
| $("#ask_questions_pagination").html("<%= j paginate @ask_questions %>"); | ||||
							
								
								
									
										1
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/back_end/ask_replies/create.js.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										1
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/back_end/ask_replies/create.js.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1 @@ | |||
| alert('<%= t('ask.reply_success') %>'); | ||||
							
								
								
									
										1
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/back_end/ask_replies/update.js.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										1
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/back_end/ask_replies/update.js.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1 @@ | |||
| alert('<%= t('ask.reply_success') %>'); | ||||
							
								
								
									
										5
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/front_end/ask_questions/create.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										5
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/front_end/ask_questions/create.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,5 @@ | |||
| <% if @ask_question.errors.empty? %> | ||||
|     alert('<%= t('ask.ask_question_success') %>'); | ||||
| <% else %> | ||||
|     alert('<%= @ask_question.errors.full_messages.join('\n') %>'); | ||||
| <% end %> | ||||
							
								
								
									
										93
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/front_end/ask_questions/index.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										93
									
								
								vendor/built_in_modules/ask/app/views/panel/ask/front_end/ask_questions/index.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,93 @@ | |||
| <div id="new-ask-question"> | ||||
|   <%= form_for @ask_question, url: panel_ask_front_end_ask_questions_path(standalone: true), remote: true, | ||||
|     html: {class: 'form-horizontal'} do |f| %> | ||||
|     <div class="control-group"> | ||||
|       <div class="controls"> | ||||
|         <%= f.select :department, options_for_select([ | ||||
|           ['文書組', '文書組'], | ||||
|           ['事務租', '事務租'], | ||||
|           ['保管組', '保管組'], | ||||
|           ['出納組', '出納組'], | ||||
|           ['采購組', '采購組'], | ||||
|           ['經營管理組', '經營管理組'], | ||||
|           ['駐警隊', '駐警隊'], | ||||
|           ['社科院總務分處', '社科院總務分處'], | ||||
|           ['醫學院總務分處', '醫學院總務分處'], | ||||
|           ['總務處秘書室', '總務處秘書室'], | ||||
|         ]) %> | ||||
|       </div> | ||||
|     </div> | ||||
|     <div class="control-group"> | ||||
|       <%= f.label :ask_category_id, class: 'control-label required' %> | ||||
|       <div class="controls"> | ||||
|         <%= f.collection_select :ask_category_id, AskCategory.all, :id, :name  %> | ||||
|       </div> | ||||
|     </div> | ||||
|     <div class="control-group"> | ||||
|       <%= f.label :name, class: 'control-label required' %> | ||||
|       <div class="controls"> | ||||
|         <%= f.text_field :name  %> | ||||
|       </div> | ||||
|     </div> | ||||
|     <div class="control-group"> | ||||
|       <%= f.label :identity, class: 'control-label required' %> | ||||
|       <div class="controls"> | ||||
|         <%= f.text_field :identity %> | ||||
|       </div> | ||||
|     </div> | ||||
|     <div class="control-group"> | ||||
|       <%= f.label :email, class: 'control-label required' %> | ||||
|       <div class="controls"> | ||||
|         <%= f.text_field :email %> | ||||
|       </div> | ||||
|     </div> | ||||
|     <div class="control-group"> | ||||
|       <%= f.label :phone, class: 'control-label' %> | ||||
|       <div class="controls"> | ||||
|         <%= f.text_field :phone %> | ||||
|       </div> | ||||
|     </div> | ||||
|     <div class="control-group"> | ||||
|       <%= f.label :tax, class: 'control-label' %> | ||||
|       <div class="controls"> | ||||
|         <%= f.text_field :tax %> | ||||
|       </div> | ||||
|     </div> | ||||
|     <div class="control-group"> | ||||
|       <%= f.label :title, class: 'control-label required' %> | ||||
|       <div class="controls"> | ||||
|         <%= f.text_field :title %> | ||||
|       </div> | ||||
|     </div> | ||||
|     <div class="control-group"> | ||||
|       <%= f.label :content, class: 'control-label required' %> | ||||
|       <div class="controls"> | ||||
|         <%= f.text_area :content, rows: 8, class: 'input-xlarge' %> | ||||
|       </div> | ||||
|     </div> | ||||
|     <div class="control-group"> | ||||
|       <div class="controls"> | ||||
|         <%= recaptcha_tags ajax: true, public_key: '6Lfl7OESAAAAAKdxTSSmWSOWlL__04A9AqQzD7_z' %> | ||||
|       </div> | ||||
|     </div> | ||||
|     <div class="form-actions"> | ||||
|       <%= f.submit t('submit'), class: 'btn btn-primary' %> | ||||
|       <%= f.button t('cancel'), type: 'reset', class: 'btn' %> | ||||
|     </div> | ||||
|   <% end %> | ||||
| </div> | ||||
| <script type="text/javascript"> | ||||
|   $(function() { | ||||
|     $('#new-ask-question .required').each(function() { | ||||
|       $(this).text('*' + $(this).text()); | ||||
|     }); | ||||
| 
 | ||||
|     $('#new-ask-question form') .submit(function() { | ||||
|       $.post($(this).attr('action'), $(this).serializeArray(), function(response) { | ||||
|         eval(response) | ||||
|         Recaptcha.reload() | ||||
|       }); | ||||
|       return false; | ||||
|     }); | ||||
|   }); | ||||
| </script> | ||||
|  | @ -0,0 +1,22 @@ | |||
| $:.push File.expand_path("../lib", __FILE__) | ||||
| 
 | ||||
| # Maintain your gem's version: | ||||
| require "ask/version" | ||||
| 
 | ||||
| # Describe your gem and declare its dependencies: | ||||
| Gem::Specification.new do |s| | ||||
|   s.name        = "ask" | ||||
|   s.version     = Ask::VERSION | ||||
|   s.authors     = ["TODO: Your name"] | ||||
|   s.email       = ["TODO: Your email"] | ||||
|   s.homepage    = "TODO" | ||||
|   s.summary     = "TODO: Summary of Ask." | ||||
|   s.description = "TODO: Description of Ask." | ||||
| 
 | ||||
|   s.files = Dir["{app,config,db,lib}/**/*"] + ["MIT-LICENSE", "Rakefile", "README.rdoc"] | ||||
|   s.test_files = Dir["test/**/*"] | ||||
| 
 | ||||
|   s.add_dependency "rails", "~> 3.2.13" | ||||
| 
 | ||||
|   s.add_development_dependency "sqlite3" | ||||
| end | ||||
|  | @ -0,0 +1,12 @@ | |||
| { | ||||
|   "title": "ask", | ||||
|   "version": "0.1", | ||||
|   "organization": "Rulingcom", | ||||
|   "author": "RD dep", | ||||
|   "intro": "ask", | ||||
|   "update_info": "Some info", | ||||
|   "create_date": "05-23-2013", | ||||
|   "widgets": ["index"], | ||||
|   "category": ["gallery_categories"], | ||||
|   "enable_frontend": true | ||||
| } | ||||
|  | @ -0,0 +1,15 @@ | |||
| en: | ||||
|   ask: | ||||
|     ask: Ask | ||||
|     export: Export | ||||
|     reply: Reply | ||||
|     reply_success: Reply success | ||||
|     to: To | ||||
|     widget: | ||||
|       index: Form | ||||
|     ask_question_success: Successfully saved,jump back now | ||||
|   mongoid: | ||||
|     attributes: | ||||
|       ask_question: | ||||
|         ask_category_id: Ask Category | ||||
| 
 | ||||
|  | @ -0,0 +1,34 @@ | |||
| zh_tw: | ||||
|   recaptcha: | ||||
|     errors: | ||||
|       verification_failed: 驗證碼錯誤 | ||||
|   ask: | ||||
|     ask: 發問 | ||||
|     export: 匯出 | ||||
|     reply: 回覆 | ||||
|     reply_success: 回覆成功 | ||||
|     to: 至 | ||||
|     yes: 是 | ||||
|     no: 否 | ||||
|     widget: | ||||
|       index: 表單 | ||||
|     ask_question_success: 儲存成功 | ||||
|   mongoid: | ||||
|     attributes: | ||||
|       ask_question: | ||||
|         department: 單位 | ||||
|         ask_category_id: 諮詢類別 | ||||
|         name: 姓名 | ||||
|         identity: 身份 | ||||
|         email: Email | ||||
|         phone: 聯絡電話 | ||||
|         tax: 傳真 | ||||
|         title: 主旨 | ||||
|         content: 內容 | ||||
|         created_at: 日期 | ||||
|       ask_reply: | ||||
|         content: 回覆 | ||||
|         comment: 備註 | ||||
|         status: 狀態 | ||||
|         send_email: 是否回信 | ||||
| 
 | ||||
|  | @ -0,0 +1,25 @@ | |||
| Rails.application.routes.draw do | ||||
| 
 | ||||
|   namespace :panel do | ||||
|     namespace :ask do | ||||
|       namespace :back_end do | ||||
|         resources :ask_questions do | ||||
|           collection do | ||||
|             get 'delete' | ||||
|             get 'export' | ||||
|             post 'export', to: 'ask_questions#do_export' | ||||
|           end | ||||
|           resources :ask_replies | ||||
|         end | ||||
| 
 | ||||
| 
 | ||||
|         resources :ask_categories | ||||
|       end | ||||
| 
 | ||||
|       namespace :front_end do | ||||
|         resources :ask_questions | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
| end | ||||
|  | @ -0,0 +1,41 @@ | |||
| module Ask | ||||
|   OrbitApp.registration "Ask",:type=> 'ModuleApp' do | ||||
|     module_label 'ask.ask' | ||||
|     base_url File.expand_path File.dirname(__FILE__) | ||||
|     # personal_plugin :enable => true,:path=>"panel/faq/plugin/profile",:i18n=>'admin.faq' | ||||
| 
 | ||||
|     version "0.1" | ||||
|     organization "Rulingcom" | ||||
|     author "RD dep" | ||||
|     intro "I am intro" | ||||
|     update_info 'some update_info' | ||||
| 
 | ||||
|     front_end do | ||||
|       app_page 'ask_questions' do | ||||
|         frontend_i18n 'ask.ask' | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
|     widgets do | ||||
|       default_widget do | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
|     side_bar do | ||||
|       head_label_i18n 'ask.ask', icon_class: 'icons-text' | ||||
|       available_for [:admin,:manager,:sub_manager] | ||||
|       active_for_controllers({ private: ['ask_questions'] }) | ||||
|       head_link_path "panel_ask_back_end_ask_questions_path" | ||||
| 
 | ||||
|       context_link 'categories', link_path: 'panel_ask_back_end_ask_categories_path', | ||||
|                                priority: 1, | ||||
|                                active_for_action: {:ask_categories=>:index}, | ||||
|                                available_for: [:all] | ||||
| 
 | ||||
|       context_link 'ask.export', link_path: 'export_panel_ask_back_end_ask_questions_path', | ||||
|                                priority: 1, | ||||
|                                available_for: [:all] | ||||
|     end | ||||
| 
 | ||||
|   end | ||||
| end | ||||
|  | @ -0,0 +1,2 @@ | |||
| module Ask | ||||
| end | ||||
|  | @ -0,0 +1,3 @@ | |||
| module Ask | ||||
|   VERSION = "0.0.1" | ||||
| end | ||||
|  | @ -0,0 +1,4 @@ | |||
| # desc "Explaining what the task does" | ||||
| # task :ask do | ||||
| #   # Task goes here | ||||
| # end | ||||
|  | @ -0,0 +1,7 @@ | |||
| require 'test_helper' | ||||
| 
 | ||||
| class AskTest < ActiveSupport::TestCase | ||||
|   test "truth" do | ||||
|     assert_kind_of Module, Ask | ||||
|   end | ||||
| end | ||||
|  | @ -0,0 +1,261 @@ | |||
| == Welcome to Rails | ||||
| 
 | ||||
| Rails is a web-application framework that includes everything needed to create | ||||
| database-backed web applications according to the Model-View-Control pattern. | ||||
| 
 | ||||
| This pattern splits the view (also called the presentation) into "dumb" | ||||
| templates that are primarily responsible for inserting pre-built data in between | ||||
| HTML tags. The model contains the "smart" domain objects (such as Account, | ||||
| Product, Person, Post) that holds all the business logic and knows how to | ||||
| persist themselves to a database. The controller handles the incoming requests | ||||
| (such as Save New Account, Update Product, Show Post) by manipulating the model | ||||
| and directing data to the view. | ||||
| 
 | ||||
| In Rails, the model is handled by what's called an object-relational mapping | ||||
| layer entitled Active Record. This layer allows you to present the data from | ||||
| database rows as objects and embellish these data objects with business logic | ||||
| methods. You can read more about Active Record in | ||||
| link:files/vendor/rails/activerecord/README.html. | ||||
| 
 | ||||
| The controller and view are handled by the Action Pack, which handles both | ||||
| layers by its two parts: Action View and Action Controller. These two layers | ||||
| are bundled in a single package due to their heavy interdependence. This is | ||||
| unlike the relationship between the Active Record and Action Pack that is much | ||||
| more separate. Each of these packages can be used independently outside of | ||||
| Rails. You can read more about Action Pack in | ||||
| link:files/vendor/rails/actionpack/README.html. | ||||
| 
 | ||||
| 
 | ||||
| == Getting Started | ||||
| 
 | ||||
| 1. At the command prompt, create a new Rails application: | ||||
|        <tt>rails new myapp</tt> (where <tt>myapp</tt> is the application name) | ||||
| 
 | ||||
| 2. Change directory to <tt>myapp</tt> and start the web server: | ||||
|        <tt>cd myapp; rails server</tt> (run with --help for options) | ||||
| 
 | ||||
| 3. Go to http://localhost:3000/ and you'll see: | ||||
|        "Welcome aboard: You're riding Ruby on Rails!" | ||||
| 
 | ||||
| 4. Follow the guidelines to start developing your application. You can find | ||||
| the following resources handy: | ||||
| 
 | ||||
| * The Getting Started Guide: http://guides.rubyonrails.org/getting_started.html | ||||
| * Ruby on Rails Tutorial Book: http://www.railstutorial.org/ | ||||
| 
 | ||||
| 
 | ||||
| == Debugging Rails | ||||
| 
 | ||||
| Sometimes your application goes wrong. Fortunately there are a lot of tools that | ||||
| will help you debug it and get it back on the rails. | ||||
| 
 | ||||
| First area to check is the application log files. Have "tail -f" commands | ||||
| running on the server.log and development.log. Rails will automatically display | ||||
| debugging and runtime information to these files. Debugging info will also be | ||||
| shown in the browser on requests from 127.0.0.1. | ||||
| 
 | ||||
| You can also log your own messages directly into the log file from your code | ||||
| using the Ruby logger class from inside your controllers. Example: | ||||
| 
 | ||||
|   class WeblogController < ActionController::Base | ||||
|     def destroy | ||||
|       @weblog = Weblog.find(params[:id]) | ||||
|       @weblog.destroy | ||||
|       logger.info("#{Time.now} Destroyed Weblog ID ##{@weblog.id}!") | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
| The result will be a message in your log file along the lines of: | ||||
| 
 | ||||
|   Mon Oct 08 14:22:29 +1000 2007 Destroyed Weblog ID #1! | ||||
| 
 | ||||
| More information on how to use the logger is at http://www.ruby-doc.org/core/ | ||||
| 
 | ||||
| Also, Ruby documentation can be found at http://www.ruby-lang.org/. There are | ||||
| several books available online as well: | ||||
| 
 | ||||
| * Programming Ruby: http://www.ruby-doc.org/docs/ProgrammingRuby/ (Pickaxe) | ||||
| * Learn to Program: http://pine.fm/LearnToProgram/ (a beginners guide) | ||||
| 
 | ||||
| These two books will bring you up to speed on the Ruby language and also on | ||||
| programming in general. | ||||
| 
 | ||||
| 
 | ||||
| == Debugger | ||||
| 
 | ||||
| Debugger support is available through the debugger command when you start your | ||||
| Mongrel or WEBrick server with --debugger. This means that you can break out of | ||||
| execution at any point in the code, investigate and change the model, and then, | ||||
| resume execution! You need to install ruby-debug to run the server in debugging | ||||
| mode. With gems, use <tt>sudo gem install ruby-debug</tt>. Example: | ||||
| 
 | ||||
|   class WeblogController < ActionController::Base | ||||
|     def index | ||||
|       @posts = Post.all | ||||
|       debugger | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
| So the controller will accept the action, run the first line, then present you | ||||
| with a IRB prompt in the server window. Here you can do things like: | ||||
| 
 | ||||
|   >> @posts.inspect | ||||
|   => "[#<Post:0x14a6be8 | ||||
|           @attributes={"title"=>nil, "body"=>nil, "id"=>"1"}>, | ||||
|        #<Post:0x14a6620 | ||||
|           @attributes={"title"=>"Rails", "body"=>"Only ten..", "id"=>"2"}>]" | ||||
|   >> @posts.first.title = "hello from a debugger" | ||||
|   => "hello from a debugger" | ||||
| 
 | ||||
| ...and even better, you can examine how your runtime objects actually work: | ||||
| 
 | ||||
|   >> f = @posts.first | ||||
|   => #<Post:0x13630c4 @attributes={"title"=>nil, "body"=>nil, "id"=>"1"}> | ||||
|   >> f. | ||||
|   Display all 152 possibilities? (y or n) | ||||
| 
 | ||||
| Finally, when you're ready to resume execution, you can enter "cont". | ||||
| 
 | ||||
| 
 | ||||
| == Console | ||||
| 
 | ||||
| The console is a Ruby shell, which allows you to interact with your | ||||
| application's domain model. Here you'll have all parts of the application | ||||
| configured, just like it is when the application is running. You can inspect | ||||
| domain models, change values, and save to the database. Starting the script | ||||
| without arguments will launch it in the development environment. | ||||
| 
 | ||||
| To start the console, run <tt>rails console</tt> from the application | ||||
| directory. | ||||
| 
 | ||||
| Options: | ||||
| 
 | ||||
| * Passing the <tt>-s, --sandbox</tt> argument will rollback any modifications | ||||
|   made to the database. | ||||
| * Passing an environment name as an argument will load the corresponding | ||||
|   environment. Example: <tt>rails console production</tt>. | ||||
| 
 | ||||
| To reload your controllers and models after launching the console run | ||||
| <tt>reload!</tt> | ||||
| 
 | ||||
| More information about irb can be found at: | ||||
| link:http://www.rubycentral.org/pickaxe/irb.html | ||||
| 
 | ||||
| 
 | ||||
| == dbconsole | ||||
| 
 | ||||
| You can go to the command line of your database directly through <tt>rails | ||||
| dbconsole</tt>. You would be connected to the database with the credentials | ||||
| defined in database.yml. Starting the script without arguments will connect you | ||||
| to the development database. Passing an argument will connect you to a different | ||||
| database, like <tt>rails dbconsole production</tt>. Currently works for MySQL, | ||||
| PostgreSQL and SQLite 3. | ||||
| 
 | ||||
| == Description of Contents | ||||
| 
 | ||||
| The default directory structure of a generated Ruby on Rails application: | ||||
| 
 | ||||
|   |-- app | ||||
|   |   |-- assets | ||||
|   |   |   |-- images | ||||
|   |   |   |-- javascripts | ||||
|   |   |   `-- stylesheets | ||||
|   |   |-- controllers | ||||
|   |   |-- helpers | ||||
|   |   |-- mailers | ||||
|   |   |-- models | ||||
|   |   `-- views | ||||
|   |       `-- layouts | ||||
|   |-- config | ||||
|   |   |-- environments | ||||
|   |   |-- initializers | ||||
|   |   `-- locales | ||||
|   |-- db | ||||
|   |-- doc | ||||
|   |-- lib | ||||
|   |   |-- assets | ||||
|   |   `-- tasks | ||||
|   |-- log | ||||
|   |-- public | ||||
|   |-- script | ||||
|   |-- test | ||||
|   |   |-- fixtures | ||||
|   |   |-- functional | ||||
|   |   |-- integration | ||||
|   |   |-- performance | ||||
|   |   `-- unit | ||||
|   |-- tmp | ||||
|   |   `-- cache | ||||
|   |       `-- assets | ||||
|   `-- vendor | ||||
|       |-- assets | ||||
|       |   |-- javascripts | ||||
|       |   `-- stylesheets | ||||
|       `-- plugins | ||||
| 
 | ||||
| app | ||||
|   Holds all the code that's specific to this particular application. | ||||
| 
 | ||||
| app/assets | ||||
|   Contains subdirectories for images, stylesheets, and JavaScript files. | ||||
| 
 | ||||
| app/controllers | ||||
|   Holds controllers that should be named like weblogs_controller.rb for | ||||
|   automated URL mapping. All controllers should descend from | ||||
|   ApplicationController which itself descends from ActionController::Base. | ||||
| 
 | ||||
| app/models | ||||
|   Holds models that should be named like post.rb. Models descend from | ||||
|   ActiveRecord::Base by default. | ||||
| 
 | ||||
| app/views | ||||
|   Holds the template files for the view that should be named like | ||||
|   weblogs/index.html.erb for the WeblogsController#index action. All views use | ||||
|   eRuby syntax by default. | ||||
| 
 | ||||
| app/views/layouts | ||||
|   Holds the template files for layouts to be used with views. This models the | ||||
|   common header/footer method of wrapping views. In your views, define a layout | ||||
|   using the <tt>layout :default</tt> and create a file named default.html.erb. | ||||
|   Inside default.html.erb, call <% yield %> to render the view using this | ||||
|   layout. | ||||
| 
 | ||||
| app/helpers | ||||
|   Holds view helpers that should be named like weblogs_helper.rb. These are | ||||
|   generated for you automatically when using generators for controllers. | ||||
|   Helpers can be used to wrap functionality for your views into methods. | ||||
| 
 | ||||
| config | ||||
|   Configuration files for the Rails environment, the routing map, the database, | ||||
|   and other dependencies. | ||||
| 
 | ||||
| db | ||||
|   Contains the database schema in schema.rb. db/migrate contains all the | ||||
|   sequence of Migrations for your schema. | ||||
| 
 | ||||
| doc | ||||
|   This directory is where your application documentation will be stored when | ||||
|   generated using <tt>rake doc:app</tt> | ||||
| 
 | ||||
| lib | ||||
|   Application specific libraries. Basically, any kind of custom code that | ||||
|   doesn't belong under controllers, models, or helpers. This directory is in | ||||
|   the load path. | ||||
| 
 | ||||
| public | ||||
|   The directory available for the web server. Also contains the dispatchers and the | ||||
|   default HTML files. This should be set as the DOCUMENT_ROOT of your web | ||||
|   server. | ||||
| 
 | ||||
| script | ||||
|   Helper scripts for automation and generation. | ||||
| 
 | ||||
| test | ||||
|   Unit and functional tests along with fixtures. When using the rails generate | ||||
|   command, template test files will be generated for you and placed in this | ||||
|   directory. | ||||
| 
 | ||||
| vendor | ||||
|   External libraries that the application depends on. Also includes the plugins | ||||
|   subdirectory. If the app has frozen rails, those gems also go here, under | ||||
|   vendor/rails/. This directory is in the load path. | ||||
|  | @ -0,0 +1,7 @@ | |||
| #!/usr/bin/env rake | ||||
| # Add your own tasks in files placed in lib/tasks ending in .rake, | ||||
| # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. | ||||
| 
 | ||||
| require File.expand_path('../config/application', __FILE__) | ||||
| 
 | ||||
| Dummy::Application.load_tasks | ||||
							
								
								
									
										15
									
								
								vendor/built_in_modules/ask/test/dummy/app/assets/javascripts/application.js
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										15
									
								
								vendor/built_in_modules/ask/test/dummy/app/assets/javascripts/application.js
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,15 @@ | |||
| // This is a manifest file that'll be compiled into application.js, which will include all the files
 | ||||
| // listed below.
 | ||||
| //
 | ||||
| // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
 | ||||
| // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
 | ||||
| //
 | ||||
| // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
 | ||||
| // the compiled file.
 | ||||
| //
 | ||||
| // WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
 | ||||
| // GO AFTER THE REQUIRES BELOW.
 | ||||
| //
 | ||||
| //= require jquery
 | ||||
| //= require jquery_ujs
 | ||||
| //= require_tree .
 | ||||
							
								
								
									
										13
									
								
								vendor/built_in_modules/ask/test/dummy/app/assets/stylesheets/application.css
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										13
									
								
								vendor/built_in_modules/ask/test/dummy/app/assets/stylesheets/application.css
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,13 @@ | |||
| /* | ||||
|  * This is a manifest file that'll be compiled into application.css, which will include all the files | ||||
|  * listed below. | ||||
|  * | ||||
|  * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets, | ||||
|  * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path. | ||||
|  * | ||||
|  * You're free to add application-wide styles to this file and they'll appear at the top of the | ||||
|  * compiled file, but it's generally better to create a new file per style scope. | ||||
|  * | ||||
|  *= require_self | ||||
|  *= require_tree . | ||||
|  */ | ||||
							
								
								
									
										3
									
								
								vendor/built_in_modules/ask/test/dummy/app/controllers/application_controller.rb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										3
									
								
								vendor/built_in_modules/ask/test/dummy/app/controllers/application_controller.rb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,3 @@ | |||
| class ApplicationController < ActionController::Base | ||||
|   protect_from_forgery | ||||
| end | ||||
|  | @ -0,0 +1,2 @@ | |||
| module ApplicationHelper | ||||
| end | ||||
							
								
								
									
										14
									
								
								vendor/built_in_modules/ask/test/dummy/app/views/layouts/application.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										14
									
								
								vendor/built_in_modules/ask/test/dummy/app/views/layouts/application.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,14 @@ | |||
| <!DOCTYPE html> | ||||
| <html> | ||||
| <head> | ||||
|   <title>Dummy</title> | ||||
|   <%= stylesheet_link_tag    "application", :media => "all" %> | ||||
|   <%= javascript_include_tag "application" %> | ||||
|   <%= csrf_meta_tags %> | ||||
| </head> | ||||
| <body> | ||||
| 
 | ||||
| <%= yield %> | ||||
| 
 | ||||
| </body> | ||||
| </html> | ||||
|  | @ -0,0 +1,4 @@ | |||
| # This file is used by Rack-based servers to start the application. | ||||
| 
 | ||||
| require ::File.expand_path('../config/environment',  __FILE__) | ||||
| run Dummy::Application | ||||
|  | @ -0,0 +1,59 @@ | |||
| require File.expand_path('../boot', __FILE__) | ||||
| 
 | ||||
| require 'rails/all' | ||||
| 
 | ||||
| Bundler.require(*Rails.groups) | ||||
| require "ask" | ||||
| 
 | ||||
| module Dummy | ||||
|   class Application < Rails::Application | ||||
|     # Settings in config/environments/* take precedence over those specified here. | ||||
|     # Application configuration should go into files in config/initializers | ||||
|     # -- all .rb files in that directory are automatically loaded. | ||||
| 
 | ||||
|     # Custom directories with classes and modules you want to be autoloadable. | ||||
|     # config.autoload_paths += %W(#{config.root}/extras) | ||||
| 
 | ||||
|     # Only load the plugins named here, in the order given (default is alphabetical). | ||||
|     # :all can be used as a placeholder for all plugins not explicitly named. | ||||
|     # config.plugins = [ :exception_notification, :ssl_requirement, :all ] | ||||
| 
 | ||||
|     # Activate observers that should always be running. | ||||
|     # config.active_record.observers = :cacher, :garbage_collector, :forum_observer | ||||
| 
 | ||||
|     # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone. | ||||
|     # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC. | ||||
|     # config.time_zone = 'Central Time (US & Canada)' | ||||
| 
 | ||||
|     # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. | ||||
|     # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] | ||||
|     # config.i18n.default_locale = :de | ||||
| 
 | ||||
|     # Configure the default encoding used in templates for Ruby 1.9. | ||||
|     config.encoding = "utf-8" | ||||
| 
 | ||||
|     # Configure sensitive parameters which will be filtered from the log file. | ||||
|     config.filter_parameters += [:password] | ||||
| 
 | ||||
|     # Enable escaping HTML in JSON. | ||||
|     config.active_support.escape_html_entities_in_json = true | ||||
| 
 | ||||
|     # Use SQL instead of Active Record's schema dumper when creating the database. | ||||
|     # This is necessary if your schema can't be completely dumped by the schema dumper, | ||||
|     # like if you have constraints or database-specific column types | ||||
|     # config.active_record.schema_format = :sql | ||||
| 
 | ||||
|     # Enforce whitelist mode for mass assignment. | ||||
|     # This will create an empty whitelist of attributes available for mass-assignment for all models | ||||
|     # in your app. As such, your models will need to explicitly whitelist or blacklist accessible | ||||
|     # parameters by using an attr_accessible or attr_protected declaration. | ||||
|     config.active_record.whitelist_attributes = true | ||||
| 
 | ||||
|     # Enable the asset pipeline | ||||
|     config.assets.enabled = true | ||||
| 
 | ||||
|     # Version of your assets, change this if you want to expire all your assets | ||||
|     config.assets.version = '1.0' | ||||
|   end | ||||
| end | ||||
| 
 | ||||
|  | @ -0,0 +1,10 @@ | |||
| require 'rubygems' | ||||
| gemfile = File.expand_path('../../../../Gemfile', __FILE__) | ||||
| 
 | ||||
| if File.exist?(gemfile) | ||||
|   ENV['BUNDLE_GEMFILE'] = gemfile | ||||
|   require 'bundler' | ||||
|   Bundler.setup | ||||
| end | ||||
| 
 | ||||
| $:.unshift File.expand_path('../../../../lib', __FILE__) | ||||
|  | @ -0,0 +1,25 @@ | |||
| # SQLite version 3.x | ||||
| #   gem install sqlite3 | ||||
| # | ||||
| #   Ensure the SQLite 3 gem is defined in your Gemfile | ||||
| #   gem 'sqlite3' | ||||
| development: | ||||
|   adapter: sqlite3 | ||||
|   database: db/development.sqlite3 | ||||
|   pool: 5 | ||||
|   timeout: 5000 | ||||
| 
 | ||||
| # Warning: The database defined as "test" will be erased and | ||||
| # re-generated from your development database when you run "rake". | ||||
| # Do not set this db to the same as development or production. | ||||
| test: | ||||
|   adapter: sqlite3 | ||||
|   database: db/test.sqlite3 | ||||
|   pool: 5 | ||||
|   timeout: 5000 | ||||
| 
 | ||||
| production: | ||||
|   adapter: sqlite3 | ||||
|   database: db/production.sqlite3 | ||||
|   pool: 5 | ||||
|   timeout: 5000 | ||||
|  | @ -0,0 +1,5 @@ | |||
| # Load the rails application | ||||
| require File.expand_path('../application', __FILE__) | ||||
| 
 | ||||
| # Initialize the rails application | ||||
| Dummy::Application.initialize! | ||||
|  | @ -0,0 +1,37 @@ | |||
| Dummy::Application.configure do | ||||
|   # Settings specified here will take precedence over those in config/application.rb | ||||
| 
 | ||||
|   # In the development environment your application's code is reloaded on | ||||
|   # every request. This slows down response time but is perfect for development | ||||
|   # since you don't have to restart the web server when you make code changes. | ||||
|   config.cache_classes = false | ||||
| 
 | ||||
|   # Log error messages when you accidentally call methods on nil. | ||||
|   config.whiny_nils = true | ||||
| 
 | ||||
|   # Show full error reports and disable caching | ||||
|   config.consider_all_requests_local       = true | ||||
|   config.action_controller.perform_caching = false | ||||
| 
 | ||||
|   # Don't care if the mailer can't send | ||||
|   config.action_mailer.raise_delivery_errors = false | ||||
| 
 | ||||
|   # Print deprecation notices to the Rails logger | ||||
|   config.active_support.deprecation = :log | ||||
| 
 | ||||
|   # Only use best-standards-support built into browsers | ||||
|   config.action_dispatch.best_standards_support = :builtin | ||||
| 
 | ||||
|   # Raise exception on mass assignment protection for Active Record models | ||||
|   config.active_record.mass_assignment_sanitizer = :strict | ||||
| 
 | ||||
|   # Log the query plan for queries taking more than this (works | ||||
|   # with SQLite, MySQL, and PostgreSQL) | ||||
|   config.active_record.auto_explain_threshold_in_seconds = 0.5 | ||||
| 
 | ||||
|   # Do not compress assets | ||||
|   config.assets.compress = false | ||||
| 
 | ||||
|   # Expands the lines which load the assets | ||||
|   config.assets.debug = true | ||||
| end | ||||
|  | @ -0,0 +1,67 @@ | |||
| Dummy::Application.configure do | ||||
|   # Settings specified here will take precedence over those in config/application.rb | ||||
| 
 | ||||
|   # Code is not reloaded between requests | ||||
|   config.cache_classes = true | ||||
| 
 | ||||
|   # Full error reports are disabled and caching is turned on | ||||
|   config.consider_all_requests_local       = false | ||||
|   config.action_controller.perform_caching = true | ||||
| 
 | ||||
|   # Disable Rails's static asset server (Apache or nginx will already do this) | ||||
|   config.serve_static_assets = false | ||||
| 
 | ||||
|   # Compress JavaScripts and CSS | ||||
|   config.assets.compress = true | ||||
| 
 | ||||
|   # Don't fallback to assets pipeline if a precompiled asset is missed | ||||
|   config.assets.compile = false | ||||
| 
 | ||||
|   # Generate digests for assets URLs | ||||
|   config.assets.digest = true | ||||
| 
 | ||||
|   # Defaults to nil and saved in location specified by config.assets.prefix | ||||
|   # config.assets.manifest = YOUR_PATH | ||||
| 
 | ||||
|   # Specifies the header that your server uses for sending files | ||||
|   # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache | ||||
|   # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx | ||||
| 
 | ||||
|   # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. | ||||
|   # config.force_ssl = true | ||||
| 
 | ||||
|   # See everything in the log (default is :info) | ||||
|   # config.log_level = :debug | ||||
| 
 | ||||
|   # Prepend all log lines with the following tags | ||||
|   # config.log_tags = [ :subdomain, :uuid ] | ||||
| 
 | ||||
|   # Use a different logger for distributed setups | ||||
|   # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new) | ||||
| 
 | ||||
|   # Use a different cache store in production | ||||
|   # config.cache_store = :mem_cache_store | ||||
| 
 | ||||
|   # Enable serving of images, stylesheets, and JavaScripts from an asset server | ||||
|   # config.action_controller.asset_host = "http://assets.example.com" | ||||
| 
 | ||||
|   # Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added) | ||||
|   # config.assets.precompile += %w( search.js ) | ||||
| 
 | ||||
|   # Disable delivery errors, bad email addresses will be ignored | ||||
|   # config.action_mailer.raise_delivery_errors = false | ||||
| 
 | ||||
|   # Enable threaded mode | ||||
|   # config.threadsafe! | ||||
| 
 | ||||
|   # Enable locale fallbacks for I18n (makes lookups for any locale fall back to | ||||
|   # the I18n.default_locale when a translation can not be found) | ||||
|   config.i18n.fallbacks = true | ||||
| 
 | ||||
|   # Send deprecation notices to registered listeners | ||||
|   config.active_support.deprecation = :notify | ||||
| 
 | ||||
|   # Log the query plan for queries taking more than this (works | ||||
|   # with SQLite, MySQL, and PostgreSQL) | ||||
|   # config.active_record.auto_explain_threshold_in_seconds = 0.5 | ||||
| end | ||||
|  | @ -0,0 +1,37 @@ | |||
| Dummy::Application.configure do | ||||
|   # Settings specified here will take precedence over those in config/application.rb | ||||
| 
 | ||||
|   # The test environment is used exclusively to run your application's | ||||
|   # test suite. You never need to work with it otherwise. Remember that | ||||
|   # your test database is "scratch space" for the test suite and is wiped | ||||
|   # and recreated between test runs. Don't rely on the data there! | ||||
|   config.cache_classes = true | ||||
| 
 | ||||
|   # Configure static asset server for tests with Cache-Control for performance | ||||
|   config.serve_static_assets = true | ||||
|   config.static_cache_control = "public, max-age=3600" | ||||
| 
 | ||||
|   # Log error messages when you accidentally call methods on nil | ||||
|   config.whiny_nils = true | ||||
| 
 | ||||
|   # Show full error reports and disable caching | ||||
|   config.consider_all_requests_local       = true | ||||
|   config.action_controller.perform_caching = false | ||||
| 
 | ||||
|   # Raise exceptions instead of rendering exception templates | ||||
|   config.action_dispatch.show_exceptions = false | ||||
| 
 | ||||
|   # Disable request forgery protection in test environment | ||||
|   config.action_controller.allow_forgery_protection    = false | ||||
| 
 | ||||
|   # Tell Action Mailer not to deliver emails to the real world. | ||||
|   # The :test delivery method accumulates sent emails in the | ||||
|   # ActionMailer::Base.deliveries array. | ||||
|   config.action_mailer.delivery_method = :test | ||||
| 
 | ||||
|   # Raise exception on mass assignment protection for Active Record models | ||||
|   config.active_record.mass_assignment_sanitizer = :strict | ||||
| 
 | ||||
|   # Print deprecation notices to the stderr | ||||
|   config.active_support.deprecation = :stderr | ||||
| end | ||||
							
								
								
									
										7
									
								
								vendor/built_in_modules/ask/test/dummy/config/initializers/backtrace_silencers.rb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										7
									
								
								vendor/built_in_modules/ask/test/dummy/config/initializers/backtrace_silencers.rb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,7 @@ | |||
| # Be sure to restart your server when you modify this file. | ||||
| 
 | ||||
| # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. | ||||
| # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ } | ||||
| 
 | ||||
| # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code. | ||||
| # Rails.backtrace_cleaner.remove_silencers! | ||||
|  | @ -0,0 +1,15 @@ | |||
| # Be sure to restart your server when you modify this file. | ||||
| 
 | ||||
| # Add new inflection rules using the following format | ||||
| # (all these examples are active by default): | ||||
| # ActiveSupport::Inflector.inflections do |inflect| | ||||
| #   inflect.plural /^(ox)$/i, '\1en' | ||||
| #   inflect.singular /^(ox)en/i, '\1' | ||||
| #   inflect.irregular 'person', 'people' | ||||
| #   inflect.uncountable %w( fish sheep ) | ||||
| # end | ||||
| # | ||||
| # These inflection rules are supported but not enabled by default: | ||||
| # ActiveSupport::Inflector.inflections do |inflect| | ||||
| #   inflect.acronym 'RESTful' | ||||
| # end | ||||
|  | @ -0,0 +1,5 @@ | |||
| # Be sure to restart your server when you modify this file. | ||||
| 
 | ||||
| # Add new mime types for use in respond_to blocks: | ||||
| # Mime::Type.register "text/richtext", :rtf | ||||
| # Mime::Type.register_alias "text/html", :iphone | ||||
|  | @ -0,0 +1,7 @@ | |||
| # Be sure to restart your server when you modify this file. | ||||
| 
 | ||||
| # Your secret key for verifying the integrity of signed cookies. | ||||
| # If you change this key, all old signed cookies will become invalid! | ||||
| # Make sure the secret is at least 30 characters and all random, | ||||
| # no regular words or you'll be exposed to dictionary attacks. | ||||
| Dummy::Application.config.secret_token = 'c2f0ab1b796bcc227c8362aa2a68743c5108cb3fb412182b158e8b23126b17536fd7ed2b294f92907928f510a08d83176b2efbe34611851b412515ab1fa3d90b' | ||||
|  | @ -0,0 +1,8 @@ | |||
| # Be sure to restart your server when you modify this file. | ||||
| 
 | ||||
| Dummy::Application.config.session_store :cookie_store, key: '_dummy_session' | ||||
| 
 | ||||
| # Use the database for sessions instead of the cookie-based default, | ||||
| # which shouldn't be used to store highly confidential information | ||||
| # (create the session table with "rails generate session_migration") | ||||
| # Dummy::Application.config.session_store :active_record_store | ||||
							
								
								
									
										14
									
								
								vendor/built_in_modules/ask/test/dummy/config/initializers/wrap_parameters.rb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										14
									
								
								vendor/built_in_modules/ask/test/dummy/config/initializers/wrap_parameters.rb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,14 @@ | |||
| # Be sure to restart your server when you modify this file. | ||||
| # | ||||
| # This file contains settings for ActionController::ParamsWrapper which | ||||
| # is enabled by default. | ||||
| 
 | ||||
| # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array. | ||||
| ActiveSupport.on_load(:action_controller) do | ||||
|   wrap_parameters format: [:json] | ||||
| end | ||||
| 
 | ||||
| # Disable root element in JSON by default. | ||||
| ActiveSupport.on_load(:active_record) do | ||||
|   self.include_root_in_json = false | ||||
| end | ||||
|  | @ -0,0 +1,5 @@ | |||
| # Sample localization file for English. Add more files in this directory for other locales. | ||||
| # See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points. | ||||
| 
 | ||||
| en: | ||||
|   hello: "Hello world" | ||||
|  | @ -0,0 +1,58 @@ | |||
| Dummy::Application.routes.draw do | ||||
|   # The priority is based upon order of creation: | ||||
|   # first created -> highest priority. | ||||
| 
 | ||||
|   # Sample of regular route: | ||||
|   #   match 'products/:id' => 'catalog#view' | ||||
|   # Keep in mind you can assign values other than :controller and :action | ||||
| 
 | ||||
|   # Sample of named route: | ||||
|   #   match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase | ||||
|   # This route can be invoked with purchase_url(:id => product.id) | ||||
| 
 | ||||
|   # Sample resource route (maps HTTP verbs to controller actions automatically): | ||||
|   #   resources :products | ||||
| 
 | ||||
|   # Sample resource route with options: | ||||
|   #   resources :products do | ||||
|   #     member do | ||||
|   #       get 'short' | ||||
|   #       post 'toggle' | ||||
|   #     end | ||||
|   # | ||||
|   #     collection do | ||||
|   #       get 'sold' | ||||
|   #     end | ||||
|   #   end | ||||
| 
 | ||||
|   # Sample resource route with sub-resources: | ||||
|   #   resources :products do | ||||
|   #     resources :comments, :sales | ||||
|   #     resource :seller | ||||
|   #   end | ||||
| 
 | ||||
|   # Sample resource route with more complex sub-resources | ||||
|   #   resources :products do | ||||
|   #     resources :comments | ||||
|   #     resources :sales do | ||||
|   #       get 'recent', :on => :collection | ||||
|   #     end | ||||
|   #   end | ||||
| 
 | ||||
|   # Sample resource route within a namespace: | ||||
|   #   namespace :admin do | ||||
|   #     # Directs /admin/products/* to Admin::ProductsController | ||||
|   #     # (app/controllers/admin/products_controller.rb) | ||||
|   #     resources :products | ||||
|   #   end | ||||
| 
 | ||||
|   # You can have the root of your site routed with "root" | ||||
|   # just remember to delete public/index.html. | ||||
|   # root :to => 'welcome#index' | ||||
| 
 | ||||
|   # See how all your routes lay out with "rake routes" | ||||
| 
 | ||||
|   # This is a legacy wild controller route that's not recommended for RESTful applications. | ||||
|   # Note: This route will make all actions in every controller accessible via GET requests. | ||||
|   # match ':controller(/:action(/:id))(.:format)' | ||||
| end | ||||
|  | @ -0,0 +1,26 @@ | |||
| <!DOCTYPE html> | ||||
| <html> | ||||
| <head> | ||||
|   <title>The page you were looking for doesn't exist (404)</title> | ||||
|   <style type="text/css"> | ||||
|     body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; } | ||||
|     div.dialog { | ||||
|       width: 25em; | ||||
|       padding: 0 4em; | ||||
|       margin: 4em auto 0 auto; | ||||
|       border: 1px solid #ccc; | ||||
|       border-right-color: #999; | ||||
|       border-bottom-color: #999; | ||||
|     } | ||||
|     h1 { font-size: 100%; color: #f00; line-height: 1.5em; } | ||||
|   </style> | ||||
| </head> | ||||
| 
 | ||||
| <body> | ||||
|   <!-- This file lives in public/404.html --> | ||||
|   <div class="dialog"> | ||||
|     <h1>The page you were looking for doesn't exist.</h1> | ||||
|     <p>You may have mistyped the address or the page may have moved.</p> | ||||
|   </div> | ||||
| </body> | ||||
| </html> | ||||
|  | @ -0,0 +1,26 @@ | |||
| <!DOCTYPE html> | ||||
| <html> | ||||
| <head> | ||||
|   <title>The change you wanted was rejected (422)</title> | ||||
|   <style type="text/css"> | ||||
|     body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; } | ||||
|     div.dialog { | ||||
|       width: 25em; | ||||
|       padding: 0 4em; | ||||
|       margin: 4em auto 0 auto; | ||||
|       border: 1px solid #ccc; | ||||
|       border-right-color: #999; | ||||
|       border-bottom-color: #999; | ||||
|     } | ||||
|     h1 { font-size: 100%; color: #f00; line-height: 1.5em; } | ||||
|   </style> | ||||
| </head> | ||||
| 
 | ||||
| <body> | ||||
|   <!-- This file lives in public/422.html --> | ||||
|   <div class="dialog"> | ||||
|     <h1>The change you wanted was rejected.</h1> | ||||
|     <p>Maybe you tried to change something you didn't have access to.</p> | ||||
|   </div> | ||||
| </body> | ||||
| </html> | ||||
|  | @ -0,0 +1,25 @@ | |||
| <!DOCTYPE html> | ||||
| <html> | ||||
| <head> | ||||
|   <title>We're sorry, but something went wrong (500)</title> | ||||
|   <style type="text/css"> | ||||
|     body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; } | ||||
|     div.dialog { | ||||
|       width: 25em; | ||||
|       padding: 0 4em; | ||||
|       margin: 4em auto 0 auto; | ||||
|       border: 1px solid #ccc; | ||||
|       border-right-color: #999; | ||||
|       border-bottom-color: #999; | ||||
|     } | ||||
|     h1 { font-size: 100%; color: #f00; line-height: 1.5em; } | ||||
|   </style> | ||||
| </head> | ||||
| 
 | ||||
| <body> | ||||
|   <!-- This file lives in public/500.html --> | ||||
|   <div class="dialog"> | ||||
|     <h1>We're sorry, but something went wrong.</h1> | ||||
|   </div> | ||||
| </body> | ||||
| </html> | ||||
|  | @ -0,0 +1,6 @@ | |||
| #!/usr/bin/env ruby | ||||
| # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application. | ||||
| 
 | ||||
| APP_PATH = File.expand_path('../../config/application',  __FILE__) | ||||
| require File.expand_path('../../config/boot',  __FILE__) | ||||
| require 'rails/commands' | ||||
|  | @ -0,0 +1,15 @@ | |||
| # Configure Rails Environment | ||||
| ENV["RAILS_ENV"] = "test" | ||||
| 
 | ||||
| require File.expand_path("../dummy/config/environment.rb",  __FILE__) | ||||
| require "rails/test_help" | ||||
| 
 | ||||
| Rails.backtrace_cleaner.remove_silencers! | ||||
| 
 | ||||
| # Load support files | ||||
| Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f } | ||||
| 
 | ||||
| # Load fixtures from the engine | ||||
| if ActiveSupport::TestCase.method_defined?(:fixture_path=) | ||||
|   ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__) | ||||
| end | ||||
		Loading…
	
		Reference in New Issue