survey module initial
This commit is contained in:
		
							parent
							
								
									30824d1620
								
							
						
					
					
						commit
						51640423a7
					
				|  | @ -0,0 +1,56 @@ | ||||||
|  | <%#= encoding: utf-8 %> | ||||||
|  | $(document).ready(function(){ | ||||||
|  | 
 | ||||||
|  |   $(document).on('click', '.survey_question_item a.remove_existing_record_question', function(){ | ||||||
|  |     if(confirm("<%= I18n.t(:sure?)%>")){ | ||||||
|  |       $(this).next('.should_destroy').val(1); | ||||||
|  |       $(".survey_question_item#" + $(this).prev().attr('value')).hide(); | ||||||
|  |     } | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   $(document).on('click', '.survey_question_option_item a.remove_existing_record_option', function(){ | ||||||
|  |     if(confirm("<%= I18n.t(:sure?)%>")){ | ||||||
|  |       $(this).next('.should_destroy').val(1); | ||||||
|  |       $(".survey_question_option_item#" + $(this).prev().attr('value')).hide(); | ||||||
|  |     } | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   $(document).on('click', '.survey_question_radiogroup_item a.remove_existing_record_radiogroup', function(){ | ||||||
|  |     if(confirm("<%= I18n.t(:sure?)%>")){ | ||||||
|  |       $(this).next('.should_destroy').val(1); | ||||||
|  |       $(".survey_question_radiogroup_item#" + $(this).prev().attr('value')).hide(); | ||||||
|  |     } | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   $('.survey_question_item .type-selector').live('change', function(){ | ||||||
|  |     $item = $(this).parents('.survey_question_item'); | ||||||
|  |     $item.find('.type-specify').hide(); | ||||||
|  |     $item.find('.type-specify.type-' + $(this).val()).show(); | ||||||
|  |     $item.find('.type-specify.hide-type-' + $(this).val()).hide(); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   $('.survey_question_item .type-selector').trigger('change'); | ||||||
|  | 
 | ||||||
|  |   $('.survey_question_item .add_survey_question_option a.add').live('click', function(){ | ||||||
|  |     var new_id = $(this).prev().attr('value'); | ||||||
|  |     var old_id = new RegExp("new_survey_question_options", "g"); | ||||||
|  |     $(this).prev().attr('value', parseInt(new_id) + 1); | ||||||
|  |     $_new = $($(this).next().html().replace(old_id, new_id)); | ||||||
|  |     $(this).parents('.survey_question_options_wrapper').find('tbody').append($_new); | ||||||
|  |     $_new.find('a.delete_option').on('click', function(){ | ||||||
|  |       $(this).parents('.survey_question_option_item').remove(); | ||||||
|  |     }); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   $('.survey_question_item .add_survey_question_radiogroup a.add').live('click', function(){ | ||||||
|  |     var new_id = $(this).prev().attr('value'); | ||||||
|  |     var old_id = new RegExp("new_survey_question_radiogroups", "g"); | ||||||
|  |     $(this).prev().attr('value', parseInt(new_id) + 1); | ||||||
|  |     $_new = $($(this).next().html().replace(old_id, new_id)); | ||||||
|  |     $(this).parents('.survey_question_radiogroups_wrapper').find('tbody').append($_new); | ||||||
|  |     $_new.find('a.delete_radiogroup').on('click', function(){ | ||||||
|  |       $(this).parents('.survey_question_radiogroup_item').remove(); | ||||||
|  |     }); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  | }); | ||||||
|  | @ -0,0 +1,29 @@ | ||||||
|  | class Panel::Survey::BackEnd::SurveysAnswersController < OrbitBackendController | ||||||
|  | 
 | ||||||
|  |   include AdminHelper | ||||||
|  |   include OrbitControllerLib::DivisionForDisable | ||||||
|  | 
 | ||||||
|  |   def initialize | ||||||
|  |     super | ||||||
|  |     @app_title = 'survey_answer' | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def index | ||||||
|  |     @survey = ::Survey.find(params[:survey_id]) | ||||||
|  |     @answers = (params[:sort]) ? get_sorted_and_filtered("@survey.survey_answers") : get_viewable("@survey.survey_answers") | ||||||
|  |     respond_to do |format| | ||||||
|  |       format.html # index.html.erb | ||||||
|  |       format.xml  { render :xml => @qas } | ||||||
|  |       format.js | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def delete | ||||||
|  |     @survey = ::Survey.find(params[:survey_id]) | ||||||
|  |     if params[:ids] | ||||||
|  |       answers = @survey.survey_answers.any_in(:_id => params[:ids]).destroy_all | ||||||
|  |     end | ||||||
|  |     redirect_to panel_survey_back_end_survey_answers_url(@survey, :direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options]) | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  | end | ||||||
							
								
								
									
										86
									
								
								vendor/built_in_modules/survey/app/controllers/panel/survey/back_end/surveys_controller.rb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										86
									
								
								vendor/built_in_modules/survey/app/controllers/panel/survey/back_end/surveys_controller.rb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,86 @@ | ||||||
|  | class Panel::Survey::BackEnd::SurveysController < OrbitBackendController | ||||||
|  | 
 | ||||||
|  |   include AdminHelper | ||||||
|  |   include OrbitControllerLib::DivisionForDisable | ||||||
|  | 
 | ||||||
|  |   def initialize | ||||||
|  |     super | ||||||
|  |     @app_title = 'survey' | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def index | ||||||
|  |     @surveys = (params[:sort]) ? get_sorted_and_filtered("survey") : get_viewable("survey") | ||||||
|  | 
 | ||||||
|  |     respond_to do |format| | ||||||
|  |       format.html # index.html.erb | ||||||
|  |       format.xml  { render :xml => @qas } | ||||||
|  |       format.js | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def new | ||||||
|  |     @survey = ::Survey.new | ||||||
|  | 
 | ||||||
|  |     respond_to do |format| | ||||||
|  |       format.html # new.html.erb | ||||||
|  |       format.xml  { render :xml => @survey } | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def create | ||||||
|  |     @survey = ::Survey.new(params[:survey]) | ||||||
|  | 
 | ||||||
|  |     @survey.create_user_id = current_user.id | ||||||
|  |     @survey.update_user_id = current_user.id | ||||||
|  | 
 | ||||||
|  |     respond_to do |format| | ||||||
|  |       if @survey.save | ||||||
|  |         format.html { redirect_to(panel_survey_back_end_surveys_url) } | ||||||
|  |         format.xml  { render :xml => @survey, :status => :created, :location => @survey } | ||||||
|  |       else | ||||||
|  |         format.html { render :action => "new" } | ||||||
|  |         format.xml  { render :xml => @survey.errors, :status => :unprocessable_entity } | ||||||
|  |       end | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def edit | ||||||
|  |     @survey = ::Survey.find(params[:id]) | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def update | ||||||
|  |     @survey = ::Survey.find(params[:id]) | ||||||
|  |    | ||||||
|  |     @survey.update_user_id = current_user.id | ||||||
|  | 
 | ||||||
|  |     respond_to do |format| | ||||||
|  |       if @survey.update_attributes(params[:survey]) | ||||||
|  |         format.html { redirect_to(panel_survey_back_end_surveys_url(:page => params[:page])) } | ||||||
|  |         format.xml  { head :ok } | ||||||
|  |       else | ||||||
|  |         format.html { render :action => "edit" } | ||||||
|  |         format.xml  { render :xml => @survey.errors, :status => :unprocessable_entity } | ||||||
|  |       end | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def destroy | ||||||
|  |     @survey = ::Survey.find(params[:id]) | ||||||
|  | 
 | ||||||
|  |     @survey.destroy | ||||||
|  | 
 | ||||||
|  |     respond_to do |format| | ||||||
|  | 
 | ||||||
|  |       format.html { redirect_to(panel_survey_back_end_surveys_url) } | ||||||
|  |       format.js | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def delete | ||||||
|  |     if params[:ids] | ||||||
|  |       surveys = ::Survey.any_in(:_id => params[:ids]).destroy_all | ||||||
|  |     end | ||||||
|  |     redirect_to panel_survey_back_end_surveys_url(:direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options]) | ||||||
|  |   end | ||||||
|  |    | ||||||
|  | end | ||||||
							
								
								
									
										78
									
								
								vendor/built_in_modules/survey/app/controllers/panel/survey/front_end/surveys_controller.rb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										78
									
								
								vendor/built_in_modules/survey/app/controllers/panel/survey/front_end/surveys_controller.rb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,78 @@ | ||||||
|  | class Panel::Survey::FrontEnd::SurveysController < OrbitWidgetController | ||||||
|  |    | ||||||
|  |   def initialize | ||||||
|  |     super | ||||||
|  |     @app_title = 'survey' | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def index | ||||||
|  | 
 | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def show | ||||||
|  |     @survey = ::Survey.find params[:id] | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def update | ||||||
|  |     @survey = ::Survey.find params[:id] | ||||||
|  |     answer = params[:answer] | ||||||
|  | 
 | ||||||
|  |     @answer_model = @survey.survey_answers.new | ||||||
|  |     @survey.survey_questions.each do |question| | ||||||
|  |       qid = question.id.to_s | ||||||
|  |       if question.is_required && answer[qid].blank? | ||||||
|  |         @answer_model.errors.add question.title, t('survey_question.required_error') | ||||||
|  |       else | ||||||
|  |         case question.type | ||||||
|  |         when ::SurveyQuestion::Radio, ::SurveyQuestion::Select | ||||||
|  |           if question.custom_option && answer[qid] == 'custom_option' | ||||||
|  |             @answer_model[qid] = answer[qid + '_custom_option'] | ||||||
|  |           else | ||||||
|  |             if answer[qid] | ||||||
|  |               @answer_model[qid] = question.survey_question_options.find(answer[qid]).name | ||||||
|  |             end | ||||||
|  |           end | ||||||
|  |         when ::SurveyQuestion::Check | ||||||
|  |           @answer_model[qid] = [] | ||||||
|  |           if answer[qid] | ||||||
|  |             answer[qid].each do |oid, value| | ||||||
|  |               if value.to_i != 0 | ||||||
|  |                 if question.custom_option && oid == 'custom_option' | ||||||
|  |                   @answer_model[qid].push answer[qid + '_custom_option'] | ||||||
|  |                 else | ||||||
|  |                   @answer_model[qid].push question.survey_question_options.find(oid).name | ||||||
|  |                 end | ||||||
|  |               end | ||||||
|  |             end | ||||||
|  |           end | ||||||
|  |         when ::SurveyQuestion::Radiogroup | ||||||
|  |           @answer_model[qid] = {} | ||||||
|  |           options = Hash[question.survey_question_options.collect{|o| [ o.id.to_s, o.name ] }] | ||||||
|  |           radiogroups = Hash[question.survey_question_radiogroups.collect{|rg| [ rg.id.to_s, rg.name] }] | ||||||
|  |           if answer[qid] | ||||||
|  |             answer[qid].each do |oid, value| | ||||||
|  |               unless value.blank? | ||||||
|  |                 @answer_model[qid][options[oid]] = radiogroups[value] | ||||||
|  |               else | ||||||
|  |                 if question.is_required | ||||||
|  |                   @answer_model.errors.add question.title, t('survey_question.required_error') | ||||||
|  |                 end | ||||||
|  |               end | ||||||
|  |             end | ||||||
|  |           end | ||||||
|  |         when ::SurveyQuestion::Oneline, ::SurveyQuestion::Multiline | ||||||
|  |           @answer_model[qid] = answer[qid] | ||||||
|  |         end | ||||||
|  |       end | ||||||
|  |     end | ||||||
|  |     p @answer_model | ||||||
|  |     if @answer_model.errors.empty? | ||||||
|  |       @answer_model.save! | ||||||
|  |       render :answer_success | ||||||
|  |     else | ||||||
|  |       @survey_answer_error = @answer_model.errors.full_messages.join(',') | ||||||
|  |       render :answer_error | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  | end | ||||||
|  | @ -0,0 +1,55 @@ | ||||||
|  | # encoding: utf-8 | ||||||
|  | 
 | ||||||
|  | class Survey | ||||||
|  | 
 | ||||||
|  |   include Mongoid::Document | ||||||
|  |   include Mongoid::Timestamps | ||||||
|  | 
 | ||||||
|  |   scope :available_for_lang, ->(locale){ where("available_for_#{locale}".to_sym => true) } | ||||||
|  |   scope :can_display, where(is_hidden: false) | ||||||
|  | 
 | ||||||
|  |   field :title, :localize => true | ||||||
|  |   field :description, :localize => true | ||||||
|  | 
 | ||||||
|  |   field :create_user_id | ||||||
|  |   field :update_user_id | ||||||
|  | 
 | ||||||
|  |   field :postdate, :type => DateTime | ||||||
|  |   field :deadline, :type => DateTime | ||||||
|  | 
 | ||||||
|  |   field :is_hidden, :type => Boolean, :default => false | ||||||
|  |    | ||||||
|  |   validates :title, :at_least_one => true | ||||||
|  | 
 | ||||||
|  |   has_many :survey_questions, :autosave => true, :dependent => :destroy | ||||||
|  |   has_many :survey_answers, :dependent => :destroy | ||||||
|  | 
 | ||||||
|  |   accepts_nested_attributes_for :survey_questions, :allow_destroy => true | ||||||
|  | 
 | ||||||
|  |   before_save :check_deadline, :update_avliable_language | ||||||
|  | 
 | ||||||
|  |   def time_range | ||||||
|  |     r = "#{self.postdate.to_date}" | ||||||
|  |     r += "- #{self.deadline.to_date}" if self.deadline | ||||||
|  |     r | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   protected | ||||||
|  |    | ||||||
|  |   def check_deadline | ||||||
|  |     if(!self.deadline.nil? and (self.deadline < self.postdate )) | ||||||
|  |       self.deadline = nil | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  |    | ||||||
|  |   def update_avliable_language | ||||||
|  |     VALID_LOCALES.each  do |locale| | ||||||
|  |       if (title_translations[locale].blank? rescue true) | ||||||
|  |         self["available_for_#{locale}".to_sym] = false  | ||||||
|  |       else | ||||||
|  |         self["available_for_#{locale}".to_sym] = true | ||||||
|  |       end | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  | end | ||||||
|  | @ -0,0 +1,7 @@ | ||||||
|  | class SurveyAnswer | ||||||
|  |   include Mongoid::Document | ||||||
|  |   include Mongoid::Timestamps | ||||||
|  | 
 | ||||||
|  |   belongs_to :survey | ||||||
|  | 
 | ||||||
|  | end | ||||||
|  | @ -0,0 +1,27 @@ | ||||||
|  | class SurveyQuestion | ||||||
|  | 
 | ||||||
|  |   Oneline = 0 | ||||||
|  |   Multiline = 1 | ||||||
|  |   Radio = 2 | ||||||
|  |   Check = 3 | ||||||
|  |   Select = 4 | ||||||
|  |   Radiogroup = 5 | ||||||
|  | 
 | ||||||
|  |   include Mongoid::Document | ||||||
|  |   include Mongoid::Timestamps | ||||||
|  | 
 | ||||||
|  |   field :title, :localize => true | ||||||
|  |   field :description, :localize => true | ||||||
|  |   field :is_required, :type => Boolean | ||||||
|  |   field :type, :type => Integer | ||||||
|  | 
 | ||||||
|  |   # allow custom answer option | ||||||
|  |   field :custom_option, :type => Boolean | ||||||
|  |   | ||||||
|  |   belongs_to :survey | ||||||
|  |   embeds_many :survey_question_options | ||||||
|  |   embeds_many :survey_question_radiogroups | ||||||
|  | 
 | ||||||
|  |   accepts_nested_attributes_for :survey_question_options, :allow_destroy => true | ||||||
|  |   accepts_nested_attributes_for :survey_question_radiogroups, :allow_destroy => true | ||||||
|  | end | ||||||
|  | @ -0,0 +1,7 @@ | ||||||
|  | class SurveyQuestionOption | ||||||
|  |   include Mongoid::Document | ||||||
|  | 
 | ||||||
|  |   field :name, :localize => true | ||||||
|  | 
 | ||||||
|  |   embedded_in :survey_question | ||||||
|  | end | ||||||
|  | @ -0,0 +1,7 @@ | ||||||
|  | class SurveyQuestionRadiogroup | ||||||
|  |   include Mongoid::Document | ||||||
|  | 
 | ||||||
|  |   field :name, :localize => true | ||||||
|  | 
 | ||||||
|  |   embedded_in :survey_question | ||||||
|  | end | ||||||
							
								
								
									
										105
									
								
								vendor/built_in_modules/survey/app/views/panel/survey/back_end/surveys/_form.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										105
									
								
								vendor/built_in_modules/survey/app/views/panel/survey/back_end/surveys/_form.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,105 @@ | ||||||
|  | <% # encoding: utf-8 %> | ||||||
|  | <div id= "poststuff"> | ||||||
|  | 
 | ||||||
|  |   <%= f.error_messages %> | ||||||
|  | 
 | ||||||
|  |   <div id="sub-wiget"> | ||||||
|  |     <div id="widget-date" class="widget-box widget-size-300"> | ||||||
|  |       <div class="widget-action clear tip" title="Set the announcement to start and end dates"> | ||||||
|  |         <a href="#" class="action"><i class="icon-exclamation-sign icon-white"></i></a> | ||||||
|  |       </div> | ||||||
|  |       <h3 class="widget-title"><i class="icons-calendar"></i><%= t(:date_) %></h3> | ||||||
|  |         <div class="widget-content clear"> | ||||||
|  |         <div class="control-group"> | ||||||
|  |           <%= f.datetime_picker :postdate, :picker_type => 'separated', :label => t('survey.postdate') %> | ||||||
|  |         </div> | ||||||
|  |         <div class="control-group"> | ||||||
|  |           <%= f.datetime_picker :deadline, :picker_type => 'separated', :label => t('survey.deadline') %> | ||||||
|  |         </div> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </div> | ||||||
|  | 
 | ||||||
|  |   <div id="post-body"> | ||||||
|  |     <div id="post-body-content" class="clear"> | ||||||
|  |       <ul class="nav nav-tabs"> | ||||||
|  |         <% @site_valid_locales.each_with_index do |locale, i| %> | ||||||
|  |           <li <%= ( i == 0 ) ? "class=active" : '' %>><a data-toggle="tab" href=".<%= locale %>"><%= I18nVariable.from_locale(locale) %></a></li> | ||||||
|  |         <% end %> | ||||||
|  |       </ul> | ||||||
|  |       <div class="tab-content"> | ||||||
|  | 
 | ||||||
|  |         <% @site_valid_locales.each_with_index do |locale, i| %> | ||||||
|  | 
 | ||||||
|  |           <div class="<%= locale %> fade tab-pane <%= ( i == 0 ) ? "in active" : '' %>"> | ||||||
|  |             <div class="title"> | ||||||
|  |               <%= f.label :title , t('survey.title') %> | ||||||
|  |               <%= f.fields_for :title_translations do |f| %> | ||||||
|  |                 <%= I18nVariable.from_locale(locale) %> | ||||||
|  |                 <%= f.text_field locale, :style=>"width:98%;", :class=>'post-title', :value => (@survey.title_translations[locale] rescue nil) %> | ||||||
|  |               <% end %> | ||||||
|  |             </div> | ||||||
|  | 
 | ||||||
|  |             <div class="description"> | ||||||
|  |               <%= f.label :description ,t('survey.description') %> | ||||||
|  |               <%= f.fields_for :description_translations do |f| %> | ||||||
|  |                 <%= I18nVariable.from_locale(locale) %> | ||||||
|  |                 <%= f.text_area locale, :rows => 5, :style=>"width:98%;", :value => (@survey.description_translations[locale] rescue nil) %> | ||||||
|  |               <% end %>        | ||||||
|  |             </div> | ||||||
|  | 
 | ||||||
|  |           </div> | ||||||
|  | 
 | ||||||
|  |         <% end %> | ||||||
|  | 
 | ||||||
|  |       </div> | ||||||
|  | 
 | ||||||
|  |       <div class="main-widget"> | ||||||
|  |         <div id="survey_questions_wrapper"> | ||||||
|  |           <div id='survey_questions' class="survey_questions_block"> | ||||||
|  |             <% @survey.survey_questions.each_with_index do |survey_question, i| %> | ||||||
|  |               <%= f.fields_for :survey_questions, survey_question do |f| %> | ||||||
|  |                 <%= render :partial => 'form_survey_question', :object => survey_question, :locals => {:f => f, :i => i} %> | ||||||
|  |               <% end %> | ||||||
|  |             <% end %>  | ||||||
|  |           </div> | ||||||
|  |           <div id='add_survey_question' class="info_input survey_questions_block"> | ||||||
|  |             <%= hidden_field_tag 'survey_question_field_count', @survey.survey_questions.count %> | ||||||
|  |             <a class="add"><span class="btn btn-primary btn-small"><i class="icon-plus icon-white"></i> <%= t(:add) %> <%= t('survey.question') %></span></a> | ||||||
|  |           </div> | ||||||
|  |         </div> | ||||||
|  | 
 | ||||||
|  |       </div> | ||||||
|  | 
 | ||||||
|  |     </div> | ||||||
|  | 
 | ||||||
|  |     <div class="form-actions"> | ||||||
|  |       <%= hidden_field_tag 'page', params[:page] if !params[:page].blank? %> | ||||||
|  |       <%= f.submit t('submit'), :class=>'btn btn-primary' %> | ||||||
|  |       <%= link_to t('cancel'), get_go_back, :class=>"btn" %>  | ||||||
|  |     </div>  | ||||||
|  | 
 | ||||||
|  |   </div> | ||||||
|  | 
 | ||||||
|  | </div> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | <% content_for :page_specific_javascript do %> | ||||||
|  |   <%= javascript_include_tag "survey_form" %> | ||||||
|  |   <script> | ||||||
|  |     $(document).ready(function() { | ||||||
|  | 
 | ||||||
|  |       $('#add_survey_question a.add').live('click', function(){ | ||||||
|  |         var new_id = $(this).prev().attr('value'); | ||||||
|  |         var old_id = new RegExp("new_survey_questions", "g"); | ||||||
|  |         $(this).prev().attr('value', parseInt(new_id) + 1); | ||||||
|  |         $_new = $(("<%= escape_javascript(add_attribute 'form_survey_question', f, :survey_questions) %>").replace(old_id, new_id)); | ||||||
|  |         $('#survey_questions').append($_new); | ||||||
|  |         $_new.find('a.delete_question').on('click', function(){ | ||||||
|  |           $(this).parents('.survey_question_item').remove(); | ||||||
|  |         }); | ||||||
|  |       }); | ||||||
|  | 
 | ||||||
|  |     }); | ||||||
|  |   </script> | ||||||
|  | <% end %> | ||||||
|  | @ -0,0 +1,130 @@ | ||||||
|  | <% # encoding: utf-8 %> | ||||||
|  | 
 | ||||||
|  | <div id="<%= "survey_question_#{form_survey_question.id}" if !form_survey_question.new_record? %>" class="survey_question_item clear"> | ||||||
|  |   <div id="widget-question" class="widget-box"> | ||||||
|  |     <div class="widget-action clear tip" title="a question"> | ||||||
|  |       <a class="action"><i class="icon-exclamation-sign icon-white"></i></a> | ||||||
|  |     </div> | ||||||
|  |     <h3 class="widget-title"><i class="icons-help"></i><%= t('survey.question') %></h3> | ||||||
|  |     <div class="widget-content"> | ||||||
|  |       <div class="tab-content"> | ||||||
|  |         <% @site_valid_locales.each_with_index do |locale, i| %> | ||||||
|  |            | ||||||
|  |           <div class="<%= locale %> fade tab-pane <%= ( i == 0 ) ? "in active" : '' %>"> | ||||||
|  | 
 | ||||||
|  |             <div class="title"> | ||||||
|  |               <%= f.label :title , t('survey_question.title') %> | ||||||
|  |               <%= f.fields_for :title_translations do |f| %> | ||||||
|  |                 <%= I18nVariable.from_locale(locale) %> | ||||||
|  |                 <%= f.text_field locale, :style=>"width:98%;", :value => (form_survey_question.title_translations[locale] rescue nil) %> | ||||||
|  |               <% end %> | ||||||
|  |             </div> | ||||||
|  |              | ||||||
|  |             <div class="description"> | ||||||
|  |               <%= f.label :description ,t('survey_question.description') %> | ||||||
|  |               <%= f.fields_for :description_translations do |f| %> | ||||||
|  |                 <%= I18nVariable.from_locale(locale) %> | ||||||
|  |                 <%= f.text_area locale, :rows => 5, :style=>"width:98%;", :value => (form_survey_question.description_translations[locale] rescue nil) %> | ||||||
|  |               <% end %>        | ||||||
|  |             </div> | ||||||
|  | 
 | ||||||
|  |           </div> | ||||||
|  | 
 | ||||||
|  |         <% end %> | ||||||
|  | 
 | ||||||
|  |         <div class="type"> | ||||||
|  |           <%= f.label :type, t('survey_question.type')%>  | ||||||
|  |           <%= f.select :type, { | ||||||
|  |             t('survey_question.oneline') => SurveyQuestion::Oneline,  | ||||||
|  |             t('survey_question.multiline') => SurveyQuestion::Multiline, | ||||||
|  |             t('survey_question.radio') => SurveyQuestion::Radio, | ||||||
|  |             t('survey_question.check') => SurveyQuestion::Check, | ||||||
|  |             t('survey_question.select') => SurveyQuestion::Select, | ||||||
|  |             t('survey_question.radiogroup') => SurveyQuestion::Radiogroup | ||||||
|  |           }, {}, :class => "type-selector input-medium" %>       | ||||||
|  |         </div> | ||||||
|  | 
 | ||||||
|  |         <div class="is_required"> | ||||||
|  |           <%= f.label :is_required, t('survey_question.is_required')%>  | ||||||
|  |           <%= f.check_box :is_required %>     | ||||||
|  |         </div> | ||||||
|  | 
 | ||||||
|  |         <div class="survey_question_radiogroups_wrapper hide type-specify type-<%= SurveyQuestion::Radiogroup%>"> | ||||||
|  |           <%= f.label :survey_question_options, t('survey_question.radiogroups_lists')%> | ||||||
|  |           <table class="table table-condensed"> | ||||||
|  |             <thead> | ||||||
|  |               <tr> | ||||||
|  |                 <th><%= t('survey_question.radiogroup_label') %></th> | ||||||
|  |                 <th class="span1"></th> | ||||||
|  |               </tr> | ||||||
|  |             </thead> | ||||||
|  |             <tbody> | ||||||
|  |               <% form_survey_question.survey_question_radiogroups.each_with_index do |survey_question_radiogroup, i| %> | ||||||
|  |                 <%= f.fields_for :survey_question_radiogroups, survey_question_radiogroup do |f| %> | ||||||
|  |                   <%= render :partial => 'form_survey_question_radiogroup', :object => survey_question_radiogroup, :locals => {:f => f, :i => i} %> | ||||||
|  |                 <% end %> | ||||||
|  |               <% end %>  | ||||||
|  |             </tbody> | ||||||
|  |             <tfoot> | ||||||
|  |               <tr> | ||||||
|  |                 <td style="text-align:center" colspan="2"> | ||||||
|  |                   <div class="info_input add_survey_question_radiogroup"> | ||||||
|  |                     <%= f.hidden_field :survey_question_radiogroup_field_count, :value => form_survey_question.survey_question_radiogroups.count %> | ||||||
|  |                     <a class="add"><span class="btn btn-primary btn-small"><i class="icon-plus icon-white"></i> <%= t(:add) %></span></a> | ||||||
|  |                     <script type="text/template"> | ||||||
|  |                       <%= add_attribute('form_survey_question_radiogroup', f, :survey_question_radiogroups) %> | ||||||
|  |                     </script> | ||||||
|  |                   </div> | ||||||
|  |                 </td> | ||||||
|  |               </tr> | ||||||
|  |             </tfoot> | ||||||
|  |           </table> | ||||||
|  |         </div> | ||||||
|  | 
 | ||||||
|  |         <div class="survey_question_options_wrapper hide type-specify type-<%= SurveyQuestion::Radio%> type-<%= SurveyQuestion::Check%> type-<%= SurveyQuestion::Select%> type-<%= SurveyQuestion::Radiogroup%>"> | ||||||
|  |           <%= f.label :survey_question_options, t('survey_question.options_lists')%>  | ||||||
|  |           <table class="table table-condensed"> | ||||||
|  |             <thead> | ||||||
|  |               <tr> | ||||||
|  |                 <th><%= t('survey_question.option') %></th> | ||||||
|  |                 <th class="span1"></th> | ||||||
|  |               </tr> | ||||||
|  |             </thead> | ||||||
|  |             <tbody> | ||||||
|  |               <% form_survey_question.survey_question_options.each_with_index do |survey_question_option, i| %> | ||||||
|  |                 <%= f.fields_for :survey_question_options, survey_question_option do |f| %> | ||||||
|  |                   <%= render :partial => 'form_survey_question_option', :object => survey_question_option, :locals => {:f => f, :i => i} %> | ||||||
|  |                 <% end %> | ||||||
|  |               <% end %>  | ||||||
|  |             </tbody> | ||||||
|  |             <tfoot> | ||||||
|  |               <tr> | ||||||
|  |                 <td style="text-align:center" colspan="2"> | ||||||
|  |                   <div class="info_input add_survey_question_option"> | ||||||
|  |                     <%= f.hidden_field :survey_question_option_field_count, :value => form_survey_question.survey_question_options.count %> | ||||||
|  |                     <a class="add"><span class="btn btn-primary btn-small"><i class="icon-plus icon-white"></i> <%= t(:add) %></span></a> | ||||||
|  |                     <script type="text/template"> | ||||||
|  |                       <%= add_attribute('form_survey_question_option', f, :survey_question_options) %> | ||||||
|  |                     </script> | ||||||
|  |                   </div> | ||||||
|  |                 </td> | ||||||
|  |               </tr> | ||||||
|  |             </tfoot> | ||||||
|  |           </table> | ||||||
|  |           <div class="type-specify hide-type-<%= SurveyQuestion::Radiogroup%>"> | ||||||
|  |             <%= f.label :custom_option, t('survey_question.custom_option')%>  | ||||||
|  |             <%= f.check_box :custom_option %> | ||||||
|  |           </div> | ||||||
|  |         </div> | ||||||
|  |       </div> | ||||||
|  |       <% if form_survey_question.new_record? %> | ||||||
|  |         <a class="btn delete_question"><i class="icon-remove"></i></a> | ||||||
|  |       <% else %>   | ||||||
|  |         <%= f.hidden_field :id %> | ||||||
|  |         <%= hidden_field_tag :tr, (dom_id form_survey_question) %> | ||||||
|  |         <a class="btn remove_existing_record_question"><i class="icon-remove"></i></a> | ||||||
|  |         <%= f.hidden_field :_destroy, :value => nil, :class => 'should_destroy' %> | ||||||
|  |       <% end %> | ||||||
|  |     </div> | ||||||
|  |   </div> | ||||||
|  | </div> | ||||||
|  | @ -0,0 +1,26 @@ | ||||||
|  | <tr id="<%= "survey_question_option_#{form_survey_question_option.id}" if !form_survey_question_option.new_record? %>" class='survey_question_option_item'> | ||||||
|  |   <td> | ||||||
|  |     <div class="tab-content"> | ||||||
|  |       <% @site_valid_locales.each_with_index do |locale, i| %> | ||||||
|  |         <div class="<%= locale %> fade tab-pane <%= ( i == 0 ) ? "in active" : '' %>"> | ||||||
|  |           <%= f.fields_for :name_translations do |f| %> | ||||||
|  |             <%= I18nVariable.from_locale(locale) %> | ||||||
|  |             <%= f.text_field locale, :style=>"width:98%;", :value => (form_survey_question_option.name_translations[locale] rescue nil) %> | ||||||
|  |           <% end %> | ||||||
|  |         </div> | ||||||
|  |       <% end %> | ||||||
|  |     </div> | ||||||
|  |   </td> | ||||||
|  |   <td> | ||||||
|  |     <span class="action"> | ||||||
|  |       <% if form_survey_question_option.new_record? %> | ||||||
|  |         <a class="delete_option"><i class="icon-remove"></i></a> | ||||||
|  |       <% else %>   | ||||||
|  |         <%= f.hidden_field :id %> | ||||||
|  |         <%= hidden_field_tag :tr, (dom_id form_survey_question_option) %> | ||||||
|  |         <a class="remove_existing_record_option"><i class="icon-remove"></i></a> | ||||||
|  |         <%= f.hidden_field :_destroy, :value => nil, :class => 'should_destroy' %> | ||||||
|  |       <% end %> | ||||||
|  |     </span> | ||||||
|  |   </td> | ||||||
|  | </tr> | ||||||
|  | @ -0,0 +1,26 @@ | ||||||
|  | <tr id="<%= "survey_question_radiogroup_#{form_survey_question_radiogroup.id}" if !form_survey_question_radiogroup.new_record? %>" class='survey_question_radiogroup_item'> | ||||||
|  |   <td> | ||||||
|  |     <div class="tab-content"> | ||||||
|  |       <% @site_valid_locales.each_with_index do |locale, i| %> | ||||||
|  |         <div class="<%= locale %> fade tab-pane <%= ( i == 0 ) ? "in active" : '' %>"> | ||||||
|  |           <%= f.fields_for :name_translations do |f| %> | ||||||
|  |             <%= I18nVariable.from_locale(locale) %> | ||||||
|  |             <%= f.text_field locale, :style=>"width:98%;", :value => (form_survey_question_radiogroup.name_translations[locale] rescue nil) %> | ||||||
|  |           <% end %> | ||||||
|  |         </div> | ||||||
|  |       <% end %> | ||||||
|  |     </div> | ||||||
|  |   </td> | ||||||
|  |   <td> | ||||||
|  |     <span class="action"> | ||||||
|  |       <% if form_survey_question_radiogroup.new_record? %> | ||||||
|  |         <a class="delete_radiogroup"><i class="icon-remove"></i></a> | ||||||
|  |       <% else %>   | ||||||
|  |         <%= f.hidden_field :id %> | ||||||
|  |         <%= hidden_field_tag :tr, (dom_id form_survey_question_radiogroup) %> | ||||||
|  |         <a class="remove_existing_record_radiogroup"><i class="icon-remove"></i></a> | ||||||
|  |         <%= f.hidden_field :_destroy, :value => nil, :class => 'should_destroy' %> | ||||||
|  |       <% end %> | ||||||
|  |     </span> | ||||||
|  |   </td> | ||||||
|  | </tr> | ||||||
|  | @ -0,0 +1,6 @@ | ||||||
|  | <%= render_sort_bar(true, delete_panel_survey_back_end_surveys_path(:direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options]), | ||||||
|  |   ['title', 'title', 'span3', 'survey.title'], | ||||||
|  |   ['postdate', 'postdate','span1', 'survey.postdate'], | ||||||
|  |   ['deadline', 'deadline','span1', 'survey.deadline'],  | ||||||
|  |   ['results_count', 'results_count','span1', 'survey.results_count'], | ||||||
|  |   ['update_user', 'update_user','span2', 'survey.update_user']).html_safe %> | ||||||
							
								
								
									
										30
									
								
								vendor/built_in_modules/survey/app/views/panel/survey/back_end/surveys/_survey.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										30
									
								
								vendor/built_in_modules/survey/app/views/panel/survey/back_end/surveys/_survey.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,30 @@ | ||||||
|  | <tr id="<%= dom_id survey %>" class="with_action"> | ||||||
|  |   <td> | ||||||
|  |     <% if (survey.create_user_id ==  current_or_guest_user.id) || is_manager? %> | ||||||
|  |       <%= check_box_tag 'to_delete[]', survey.id, false, :class => "checkbox_in_list" %> | ||||||
|  |     <% end -%> | ||||||
|  |   </td> | ||||||
|  |   <td> | ||||||
|  |     <%= link_to survey.title, panel_survey_front_end_survey_path(survey) %> | ||||||
|  |     <div class="quick-edit"> | ||||||
|  |       <ul class="nav nav-pills hide"> | ||||||
|  |         <%if at_least_module_manager %> | ||||||
|  |           <li><%= link_to t('edit'), edit_panel_survey_back_end_survey_path(survey, :page => params[:page]) %></li> | ||||||
|  |           <li><%= link_to t('survey.answers'), panel_survey_back_end_survey_answers_path(survey, :page => params[:page]) %></li> | ||||||
|  |           <li><%= link_to t(:delete_), panel_survey_back_end_survey_path(survey), :confirm => t('sure?'), :method => :delete, :remote => true %></li> | ||||||
|  |         <% end -%> | ||||||
|  |       </ul> | ||||||
|  |     </div> | ||||||
|  |   </td> | ||||||
|  |   <td> | ||||||
|  |     <%= (survey.postdate) ? display_date_time(survey.postdate): t(:no_deadline) %> | ||||||
|  |   </td> | ||||||
|  |   <td> | ||||||
|  |     <%= (survey.deadline) ? display_date_time(survey.deadline): t(:no_deadline) %> | ||||||
|  |   </td> | ||||||
|  |   <td> | ||||||
|  |     <%= survey.survey_answers.count %> | ||||||
|  |   </td> | ||||||
|  |   <td><%= User.from_id(survey.update_user_id).name rescue ''%></td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
							
								
								
									
										21
									
								
								vendor/built_in_modules/survey/app/views/panel/survey/back_end/surveys_answers/_answer.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										21
									
								
								vendor/built_in_modules/survey/app/views/panel/survey/back_end/surveys_answers/_answer.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,21 @@ | ||||||
|  | <tr  id="<%= dom_id answer %>" class="with_action"> | ||||||
|  |   <td> | ||||||
|  |     <%= check_box_tag 'to_delete[]', answer.id, false, :class => "checkbox_in_list" %> | ||||||
|  |   </td> | ||||||
|  |   <% @survey.survey_questions.each do |question| %> | ||||||
|  |     <td> | ||||||
|  |       <% qid = question.id %> | ||||||
|  |       <% case question.type %> | ||||||
|  |       <% when ::SurveyQuestion::Check %> | ||||||
|  |         <%= answer[qid].join(', ') %> | ||||||
|  |       <% when ::SurveyQuestion::Radiogroup %> | ||||||
|  |         <%= answer[qid].map{|key, value| key + ': ' + value}.join('; ') unless answer[qid].blank? %> | ||||||
|  |       <% else %> | ||||||
|  |         <%= answer[qid] %> | ||||||
|  |       <% end %> | ||||||
|  |     </td> | ||||||
|  |   <% end %> | ||||||
|  |   <td> | ||||||
|  |     <%= answer.created_at %> | ||||||
|  |   </td> | ||||||
|  | </tr> | ||||||
							
								
								
									
										11
									
								
								vendor/built_in_modules/survey/app/views/panel/survey/back_end/surveys_answers/_filter.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										11
									
								
								vendor/built_in_modules/survey/app/views/panel/survey/back_end/surveys_answers/_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,7 @@ | ||||||
|  | <% _sort_args = [] %> | ||||||
|  | <% @survey.survey_questions.each do |question| %> | ||||||
|  |   <% _sort_args.push [question.id.to_s, question.id.to_s, 'span1', question.title] %> | ||||||
|  | <% end %> | ||||||
|  | <% _sort_args.push ['created_at', 'created_at','span1', 'created_at'] %> | ||||||
|  | <%= render_sort_bar(true, delete_panel_survey_back_end_survey_answers_path(@survey, :direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options]), | ||||||
|  |   *_sort_args).html_safe %> | ||||||
							
								
								
									
										23
									
								
								vendor/built_in_modules/survey/app/views/panel/survey/back_end/surveys_answers/index.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										23
									
								
								vendor/built_in_modules/survey/app/views/panel/survey/back_end/surveys_answers/index.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,23 @@ | ||||||
|  | <%= render 'filter' %> | ||||||
|  | 
 | ||||||
|  | <table class="table main-list"> | ||||||
|  |   <thead> | ||||||
|  |     <tr> | ||||||
|  |       <th class="span1"></th> | ||||||
|  |       <% @survey.survey_questions.each do |question| %> | ||||||
|  |         <th class="span1"></th> | ||||||
|  |       <% end %> | ||||||
|  |       <th class="span1"></th> | ||||||
|  |     </tr> | ||||||
|  |   </thead> | ||||||
|  |   <tbody id="tbody_survey_answers" class="sort-holder"> | ||||||
|  |     <%= render :partial => 'answer', :collection => @answers %> | ||||||
|  |   </tbody> | ||||||
|  | </table> | ||||||
|  | 
 | ||||||
|  | <div class="form-actions form-fixed pagination-right"> | ||||||
|  |   <%= link_to t(:back) + t('survey.survey'), panel_survey_back_end_surveys_path, :class => 'btn btn-primary pull-right' %> | ||||||
|  |   <div id="survey_answers_pagination" class="paginationFixed"> | ||||||
|  |   <%= paginate @answers %> | ||||||
|  |   </div> | ||||||
|  | </div> | ||||||
							
								
								
									
										4
									
								
								vendor/built_in_modules/survey/app/views/panel/survey/back_end/surveys_answers/index.js.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										4
									
								
								vendor/built_in_modules/survey/app/views/panel/survey/back_end/surveys_answers/index.js.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,4 @@ | ||||||
|  | $("#delete_all").attr("action", "<%= delete_panel_survey_back_end_survey_answers_path(@survey, :direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil, :sort_options => params[:sort_options]) %>"); | ||||||
|  | $("#sort_headers").html("<%= j render 'sort_headers' %>"); | ||||||
|  | $("#tbody_survey_answers").html("<%= j render :partial => 'answer', :collection => @answers %>"); | ||||||
|  | $("#survey_answers_pagination").html("<%= j paginate @answers %>"); | ||||||
|  | @ -0,0 +1,4 @@ | ||||||
|  | <script type="text/javascript"> | ||||||
|  |   alert("<%= t('survey.answer_error')%>: <%= @survey_answer_error %>"); | ||||||
|  |   window.location.href = "<%= panel_survey_front_end_survey_path(@survey, :clicked_field_name => 'title') %>"; | ||||||
|  | </script> | ||||||
|  | @ -0,0 +1,4 @@ | ||||||
|  | <script type="text/javascript"> | ||||||
|  |   alert("<%= t('survey.answer_success')%>"); | ||||||
|  |   window.location.href = "<%= panel_survey_front_end_surveys_path %>"; | ||||||
|  | </script> | ||||||
							
								
								
									
										87
									
								
								vendor/built_in_modules/survey/app/views/panel/survey/front_end/surveys/show.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										87
									
								
								vendor/built_in_modules/survey/app/views/panel/survey/front_end/surveys/show.html.erb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,87 @@ | ||||||
|  | <% # encoding: utf-8 %> | ||||||
|  | <h1 class="h1"><%= @survey.title %></h1> | ||||||
|  | <%= form_for :answer, :method => :put, :url => panel_survey_front_end_survey_path(@survey, :inner => true), :html => {:class => 'clear'} do |f| %> | ||||||
|  |   <% @survey.survey_questions.each do |question| %> | ||||||
|  |     <% label = question.title %> | ||||||
|  |     <% label += ' (' + t('survey_question.required') + ')' if question.is_required %> | ||||||
|  |     <%= f.label question.id, label %> | ||||||
|  |     <p><%= question.description %></p> | ||||||
|  |     <% case question.type %> | ||||||
|  |     <% when ::SurveyQuestion::Oneline %> | ||||||
|  |       <%= f.text_field question.id, :required => question.is_required %> | ||||||
|  |     <% when ::SurveyQuestion::Multiline %> | ||||||
|  |       <%= f.text_area question.id, :rows => 5, :required => question.is_required %> | ||||||
|  |     <% when ::SurveyQuestion::Radio %> | ||||||
|  |       <% question.survey_question_options.each do |option| %> | ||||||
|  |         <p> | ||||||
|  |           <%= f.radio_button question.id, option.id %> | ||||||
|  |           <%= f.label "#{question.id}_#{option.id}", option.name, :style => "display:inline" %> | ||||||
|  |         </p> | ||||||
|  |       <% end %> | ||||||
|  |       <% if question.custom_option %> | ||||||
|  |         <p> | ||||||
|  |           <%= f.radio_button question.id, 'custom_option' %> | ||||||
|  |           <%= f.label "#{question.id}_custom_option", t('survey_question.use_custom_option') + ': ', :style => "display:inline" %> | ||||||
|  |           <%= f.text_field "#{question.id}_custom_option" %> | ||||||
|  |         </p> | ||||||
|  |       <% end %> | ||||||
|  |     <% when ::SurveyQuestion::Check %> | ||||||
|  |       <%= f.fields_for "#{question.id}" do |cf| %> | ||||||
|  |         <% question.survey_question_options.each do |option| %> | ||||||
|  |           <p> | ||||||
|  |             <%= cf.check_box option.id %> | ||||||
|  |             <%= cf.label option.id, option.name, :style => "display:inline" %> | ||||||
|  |           </p> | ||||||
|  |         <% end %> | ||||||
|  |         <% if question.custom_option %> | ||||||
|  |           <p> | ||||||
|  |             <%= cf.check_box 'custom_option' %> | ||||||
|  |             <%= f.label "#{question.id}_custom_option", t('survey_question.use_custom_option') + ': ', :style => "display:inline" %> | ||||||
|  |             <%= f.text_field "#{question.id}_custom_option" %> | ||||||
|  |           </p> | ||||||
|  |         <% end %> | ||||||
|  |       <% end %> | ||||||
|  |     <% when ::SurveyQuestion::Select %> | ||||||
|  |       <% options = question.survey_question_options.collect {|o| [ o.name, o.id ] } %> | ||||||
|  |       <% if question.custom_option %> | ||||||
|  |         <% options.push [t('survey_question.use_custom_option'), 'custom_option'] %> | ||||||
|  |       <% end %> | ||||||
|  |       <%= f.select question.id, options %> | ||||||
|  |       <% if question.custom_option %> | ||||||
|  |         <%= f.text_field "#{question.id}_custom_option" %> | ||||||
|  |       <% end %> | ||||||
|  |     <% when ::SurveyQuestion::Radiogroup %> | ||||||
|  |       <%= f.fields_for "#{question.id}" do |rgf| %> | ||||||
|  |         <table> | ||||||
|  |           <thead> | ||||||
|  |             <tr> | ||||||
|  |               <td></td> | ||||||
|  |               <% question.survey_question_radiogroups.each do |radiogroup| %> | ||||||
|  |                 <td> | ||||||
|  |                   <%= rgf.label radiogroup.id, radiogroup.name %> | ||||||
|  |                 </td> | ||||||
|  |               <% end %> | ||||||
|  |             </tr> | ||||||
|  |           </thead> | ||||||
|  |           <tbody> | ||||||
|  |             <% question.survey_question_options.each do |option| %> | ||||||
|  |               <tr> | ||||||
|  |                 <td> | ||||||
|  |                   <%= rgf.label option.id, option.name %> | ||||||
|  |                 </td> | ||||||
|  |                 <% question.survey_question_radiogroups.each do |radiogroup| %> | ||||||
|  |                   <td> | ||||||
|  |                     <%= rgf.radio_button option.id, radiogroup.id %> | ||||||
|  |                   </td> | ||||||
|  |                 <% end %> | ||||||
|  |               </tr> | ||||||
|  |             <% end %> | ||||||
|  |           </tbody> | ||||||
|  |         </table> | ||||||
|  |       <% end %> | ||||||
|  |     <% end %> | ||||||
|  |   <% end %> | ||||||
|  |   <p> | ||||||
|  |     <%= f.submit t('submit') %> | ||||||
|  |   </p> | ||||||
|  | <% end %> | ||||||
|  | @ -0,0 +1,17 @@ | ||||||
|  | en: | ||||||
|  | 
 | ||||||
|  |   survey: | ||||||
|  |     survey: Survey | ||||||
|  |     title: Title | ||||||
|  |     description: Description | ||||||
|  |     postdate: Start Date | ||||||
|  |     deadline: End Date | ||||||
|  |     no_postdate: No Start Date | ||||||
|  |     no_deadline: No Start Date | ||||||
|  |     results_count: Results Count | ||||||
|  |     update_user: Update User | ||||||
|  |     question: Question | ||||||
|  | 
 | ||||||
|  |   survey_question: | ||||||
|  |     title: Question | ||||||
|  |     description: Description | ||||||
|  | @ -0,0 +1,46 @@ | ||||||
|  | zh_tw: | ||||||
|  | 
 | ||||||
|  |   survey: | ||||||
|  |     survey: 問卷調查 | ||||||
|  |     title: 問卷標題 | ||||||
|  |     description: 問卷說明 | ||||||
|  |     postdate: 開始時間 | ||||||
|  |     deadline: 結束時間 | ||||||
|  |     start_deadline: 開始/結束時間 | ||||||
|  |     no_postdate: 沒有開始時間 | ||||||
|  |     no_deadline: 沒有結束時間 | ||||||
|  |     results_count: 回覆數 | ||||||
|  |     update_user: 最後更新者 | ||||||
|  |     question: 問題 | ||||||
|  | 
 | ||||||
|  |     answer_success: 問卷填寫成功,現在跳回 | ||||||
|  |     answer_error: 問卷填寫錯誤 | ||||||
|  | 
 | ||||||
|  |     answers: 結果 | ||||||
|  | 
 | ||||||
|  |     default_widget: | ||||||
|  |       title: 問卷標題 | ||||||
|  |       time_range: 問卷期間 | ||||||
|  | 
 | ||||||
|  |     frontend: | ||||||
|  |         survey: 問卷調查前台 | ||||||
|  | 
 | ||||||
|  |   survey_question: | ||||||
|  |     title: 題目 | ||||||
|  |     description: 說明 | ||||||
|  |     type: 作答方式 | ||||||
|  |     is_required: 設為必填 | ||||||
|  |     required: 必填 | ||||||
|  |     required_error: 沒有回答 | ||||||
|  |     oneline: 單行文字 | ||||||
|  |     multiline: 多行文字 | ||||||
|  |     radio: 單選按鈕 | ||||||
|  |     check: 多選方塊 | ||||||
|  |     select: 下拉選單 | ||||||
|  |     radiogroup: 格狀呈現 | ||||||
|  |     options_lists: 選項清單 | ||||||
|  |     radiogroup_label: 橫欄 | ||||||
|  |     radiogroups_lists: 橫欄清單 | ||||||
|  |     option: 選項 | ||||||
|  |     custom_option: 允許自定回答選項 | ||||||
|  |     use_custom_option: 其他 | ||||||
|  | @ -0,0 +1,23 @@ | ||||||
|  | Rails.application.routes.draw do | ||||||
|  |    | ||||||
|  |   namespace :panel do | ||||||
|  |     namespace :survey do | ||||||
|  |       namespace :back_end do | ||||||
|  |         resources :surveys do | ||||||
|  |           collection do | ||||||
|  |             get 'delete' | ||||||
|  |           end | ||||||
|  |           resources :answers, :controller => :surveys_answers do | ||||||
|  |             collection do | ||||||
|  |               get 'delete' | ||||||
|  |             end | ||||||
|  |           end | ||||||
|  |         end | ||||||
|  |       end | ||||||
|  |       namespace :front_end do | ||||||
|  |         resources :surveys | ||||||
|  |       end | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  |  match "/appfront/*path" => redirect("/panel/*path") | ||||||
|  | end | ||||||
|  | @ -0,0 +1,52 @@ | ||||||
|  | module Faq | ||||||
|  |   OrbitApp.registration "Survey",:type=> 'ModuleApp' do | ||||||
|  |     module_label 'survey.survey' | ||||||
|  |     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 'survey'  do  | ||||||
|  |         frontend_i18n "survey.frontend.survey" | ||||||
|  |       end | ||||||
|  |     end | ||||||
|  | 
 | ||||||
|  |     data_count 1..20 | ||||||
|  | 
 | ||||||
|  |     widgets do | ||||||
|  |       default_widget do | ||||||
|  |         enable ["typeA"] | ||||||
|  |         query 'Survey.any_of( {deadline: nil,:postdate.lte => Time.now} , {:deadline.gte => Time.now, :postdate.lte => Time.now} )' | ||||||
|  |         link_field :title,{:method => 'panel_survey_front_end_survey_path',:args=>:self} | ||||||
|  |         field :time_range | ||||||
|  |         link_to_more 'panel_survey_front_end_survey_path',:title_i18n=> 'faq.default_widget.to_more' | ||||||
|  |       end | ||||||
|  |     end | ||||||
|  | 
 | ||||||
|  |      | ||||||
|  |     side_bar do | ||||||
|  |       head_label_i18n  'survey.survey',:icon_class=>"icons-pie" | ||||||
|  |       available_for [:admin,:manager,:sub_manager] | ||||||
|  |       active_for_controllers ({:private=>['surveys', 'surveys_answers']}) | ||||||
|  | 
 | ||||||
|  |       head_link_path "panel_survey_back_end_surveys_path" | ||||||
|  | 
 | ||||||
|  |       context_link 'list_', | ||||||
|  |                             :link_path=>"panel_survey_back_end_surveys_path" , | ||||||
|  |                             :priority=>1, | ||||||
|  |                             :active_for_action=>{:surveys=>:index}, | ||||||
|  |                             :available_for => [:all] | ||||||
|  | 
 | ||||||
|  |       context_link 'add',  | ||||||
|  |                             :link_path=>"new_panel_survey_back_end_survey_path" , | ||||||
|  |                             :priority=>2, | ||||||
|  |                             :active_for_action=>{:surveys=>:new}, | ||||||
|  |                             :available_for => [:sub_manager] | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | end | ||||||
|  | @ -0,0 +1,12 @@ | ||||||
|  | { | ||||||
|  |   "title": "survey", | ||||||
|  |   "version": "0.1", | ||||||
|  |   "organization": "Rulingcom", | ||||||
|  |   "author": "RD dep", | ||||||
|  |   "intro": "survey", | ||||||
|  |   "update_info": "Some info", | ||||||
|  |   "create_date": "04-18-2013", | ||||||
|  |   "widgets": ["index"], | ||||||
|  |   "category": [], | ||||||
|  |   "enable_frontend": true | ||||||
|  | } | ||||||
		Loading…
	
		Reference in New Issue