Fixed bugs and some modification in module "survey_b"
This commit is contained in:
parent
ae79694b44
commit
cb0f126aad
|
@ -4,7 +4,7 @@ class Panel::SurveyB::BackEnd::PeriodsController < OrbitBackendController
|
||||||
include OrbitControllerLib::DivisionForDisable
|
include OrbitControllerLib::DivisionForDisable
|
||||||
|
|
||||||
before_filter :for_app_manager
|
before_filter :for_app_manager
|
||||||
|
|
||||||
def initialize
|
def initialize
|
||||||
super
|
super
|
||||||
@app_title = 'survey_b'
|
@app_title = 'survey_b'
|
||||||
|
@ -68,13 +68,12 @@ class Panel::SurveyB::BackEnd::PeriodsController < OrbitBackendController
|
||||||
def destroy
|
def destroy
|
||||||
@period = SurveyBPeriod.find(params[:id])
|
@period = SurveyBPeriod.find(params[:id])
|
||||||
|
|
||||||
@period.destroy
|
|
||||||
|
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
|
if @period.destroy
|
||||||
format.html { redirect_to(panel_survey_b_back_end_periods_url) }
|
format.html { redirect_to(panel_survey_b_back_end_periods_url(:page => params[:page])) }
|
||||||
format.js
|
format.xml { head :ok }
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
|
@ -4,7 +4,7 @@ class Panel::SurveyB::BackEnd::SettingsController < OrbitBackendController
|
||||||
include OrbitControllerLib::DivisionForDisable
|
include OrbitControllerLib::DivisionForDisable
|
||||||
|
|
||||||
before_filter :for_app_manager
|
before_filter :for_app_manager
|
||||||
|
|
||||||
def initialize
|
def initialize
|
||||||
super
|
super
|
||||||
@app_title = 'survey_b'
|
@app_title = 'survey_b'
|
||||||
|
@ -33,4 +33,4 @@ class Panel::SurveyB::BackEnd::SettingsController < OrbitBackendController
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
end
|
end
|
|
@ -89,4 +89,4 @@ class Panel::SurveyB::BackEnd::SurveyBController < OrbitBackendController
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
|
@ -2,11 +2,22 @@ class Panel::SurveyB::FrontEnd::SurveyBController < OrbitWidgetController
|
||||||
helper ApplicationHelper
|
helper ApplicationHelper
|
||||||
|
|
||||||
def index
|
def index
|
||||||
|
if params[:period].nil?
|
||||||
|
@period = SurveyBPeriod.get_current_survey()
|
||||||
|
else
|
||||||
|
@period = SurveyBPeriod.find(params[:period])
|
||||||
|
end
|
||||||
|
|
||||||
redirect_standalone panel_survey_b_front_end_survey_b_index_path( :standalone => 'true') do
|
redirect_standalone panel_survey_b_front_end_survey_b_index_path( :standalone => 'true') do
|
||||||
@setting = SurveyBSetting.first_or_create
|
@setting = SurveyBSetting.first_or_create
|
||||||
if params[:agree] == '1'
|
if params[:agree] == '1'
|
||||||
|
# @period = SurveyBPeriod.first
|
||||||
render :index, :layout => 'standalone'
|
render :index, :layout => 'standalone'
|
||||||
else
|
else
|
||||||
|
# Escape from error when announcement is empty
|
||||||
|
if @setting.announcement.nil?
|
||||||
|
@setting.announcement = " "
|
||||||
|
end
|
||||||
render :announcement, :layout => 'standalone'
|
render :announcement, :layout => 'standalone'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -64,8 +75,14 @@ class Panel::SurveyB::FrontEnd::SurveyBController < OrbitWidgetController
|
||||||
else
|
else
|
||||||
module_app = ModuleApp.first(:conditions => {:key => 'survey_b'})
|
module_app = ModuleApp.first(:conditions => {:key => 'survey_b'})
|
||||||
@item = Item.where(module_app_id: module_app.id).first
|
@item = Item.where(module_app_id: module_app.id).first
|
||||||
yield
|
|
||||||
|
if @period
|
||||||
|
yield
|
||||||
|
else
|
||||||
|
# render :no_survey
|
||||||
|
# render :json => "No Survey"
|
||||||
|
render :no_survey, :layout => 'standalone'
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
|
@ -2,9 +2,40 @@ class SurveyBPeriod
|
||||||
include Mongoid::Document
|
include Mongoid::Document
|
||||||
include Mongoid::Timestamps
|
include Mongoid::Timestamps
|
||||||
|
|
||||||
|
field :title, :type => String
|
||||||
field :start_date, :type => DateTime
|
field :start_date, :type => DateTime
|
||||||
field :end_date, :type => DateTime
|
field :end_date, :type => DateTime
|
||||||
|
|
||||||
validates :start_date, :end_date, :presence => true
|
validates :start_date, :end_date, :presence => true
|
||||||
|
|
||||||
|
def self.get_current_survey
|
||||||
|
self.where(:start_date.lte => Time.now, :end_date.gte => Time.now).first
|
||||||
|
end
|
||||||
|
|
||||||
|
def isAvailable?
|
||||||
|
if start_date <= Time.now and end_date >= Time.now
|
||||||
|
return true
|
||||||
|
else
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def get_status_type
|
||||||
|
# status type
|
||||||
|
# reference to config/locales/en.yml and zh-tw.yml
|
||||||
|
# status_types:
|
||||||
|
# type1: 調查中
|
||||||
|
# type2: 未開始
|
||||||
|
# type3: 已結束
|
||||||
|
|
||||||
|
if start_date <= Time.now and end_date >= Time.now
|
||||||
|
return "type1"
|
||||||
|
end
|
||||||
|
if start_date > Time.now
|
||||||
|
return "type2"
|
||||||
|
end
|
||||||
|
if end_date < Time.now
|
||||||
|
return "type3"
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
|
@ -1,11 +1,36 @@
|
||||||
<div id= "poststuff">
|
<div id= "poststuff">
|
||||||
<div id="post-body">
|
<div id="post-body">
|
||||||
<%= @period.errors.full_messages.join ', ' %>
|
<%= @period.errors.full_messages.join ', ' %>
|
||||||
<div class="control-group">
|
|
||||||
<%= f.datetime_picker :start_date, :picker_type => 'separated', :label => t('survey.postdate') %>
|
<div id="sub-wiget" style="float: none;">
|
||||||
</div>
|
|
||||||
<div class="control-group">
|
<div id="widget-title" class="widget-box widget-size-300">
|
||||||
<%= f.datetime_picker :end_date, :picker_type => 'separated', :label => t('survey.deadline') %>
|
<div class="widget-action clear tip" title="問卷標題">
|
||||||
|
<a href="#" class="action"><i class="icon-exclamation-sign icon-white"></i></a>
|
||||||
|
</div>
|
||||||
|
<h3 class="widget-title"><i class="icons-calendar"></i><%= t('survey_b.period_title') %></h3>
|
||||||
|
<div class="widget-content clear">
|
||||||
|
<div class="control-group">
|
||||||
|
<%= f.text_field :title %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<br/>
|
||||||
|
<div id="widget-date" class="widget-box widget-size-300">
|
||||||
|
<div class="widget-action clear tip" title="<%= t('survey_b.period') %>">
|
||||||
|
<a href="#" class="action"><i class="icon-exclamation-sign icon-white"></i></a>
|
||||||
|
</div>
|
||||||
|
<h3 class="widget-title"><i class="icons-calendar"></i><%= t('survey_b.period') %></h3>
|
||||||
|
<div class="widget-content clear">
|
||||||
|
<div class="control-group">
|
||||||
|
<%= f.datetime_picker :start_date, :picker_type => 'separated', :label => t('survey.postdate') %>
|
||||||
|
</div>
|
||||||
|
<div class="control-group">
|
||||||
|
<%= f.datetime_picker :end_date, :picker_type => 'separated', :label => t('survey.deadline') %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-actions">
|
<div class="form-actions">
|
||||||
|
@ -15,5 +40,4 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
|
@ -1,4 +1,7 @@
|
||||||
<tr class="with_action">
|
<tr class="with_action">
|
||||||
|
<td>
|
||||||
|
<%= link_to period.title, panel_survey_b_front_end_survey_b_index_path(:period => period, :standalone => true), :target=>"_blank" %>
|
||||||
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<a href="<%= result_panel_survey_b_back_end_survey_b_index_path(:period => period.id)%>">
|
<a href="<%= result_panel_survey_b_back_end_survey_b_index_path(:period => period.id)%>">
|
||||||
<%= display_date_time period.start_date %>
|
<%= display_date_time period.start_date %>
|
||||||
|
@ -14,4 +17,16 @@
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
<td>
|
||||||
|
<% status_type = t('survey_b.status_types') %>
|
||||||
|
<% if period.start_date > Time.now %>
|
||||||
|
<span class="label label-info"><%= status_type[:type2] %></span>
|
||||||
|
<% end %>
|
||||||
|
<% if period.start_date <= Time.now and period.end_date >= Time.now %>
|
||||||
|
<span class="label label-success"><%= status_type[:type1] %></span>
|
||||||
|
<% end %>
|
||||||
|
<% if period.end_date < Time.now %>
|
||||||
|
<span class="label"><%= status_type[:type3] %></span>
|
||||||
|
<% end %>
|
||||||
|
</td>
|
||||||
|
</tr>
|
|
@ -1,5 +1,4 @@
|
||||||
<h1><%= t(:edit) + t('survey_b.period') %></h1>
|
<h1><%= t(:edit) + t('survey_b.period') %></h1>
|
||||||
|
|
||||||
<%= form_for @period, :url => panel_survey_b_back_end_period_path(@period), :html => {:class => 'clear'} do |f| %>
|
<%= form_for @period, :url => panel_survey_b_back_end_period_path(@period), :html => {:class => 'clear'} do |f| %>
|
||||||
<%= render :partial => 'form', :locals => {:f => f} %>
|
<%= render :partial => 'form', :locals => {:f => f} %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
<table class="table main-list">
|
<table class="table main-list">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="span1"><%= t('survey_b.period') %></th>
|
<th width="20%"><%= t('survey_b.period_title') %></th>
|
||||||
|
<th width="20%"><%= t('survey_b.period') %></th>
|
||||||
|
<th><%= t('survey_b.status') %></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody id="tbody_survey_periods" class="sort-holder">
|
<tbody id="tbody_survey_periods" class="sort-holder">
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
<% if @period %>
|
<% if @period %>
|
||||||
<h1>
|
<h1><%= @period.title %></h1>
|
||||||
|
<h4>
|
||||||
|
<%= t('survey_b.period') %>:
|
||||||
<%= display_date_time @period.start_date %>
|
<%= display_date_time @period.start_date %>
|
||||||
-
|
-
|
||||||
<%= display_date_time @period.end_date %>
|
<%= display_date_time @period.end_date %>
|
||||||
</h1>
|
</h4>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<table class="table main-list">
|
<table class="table main-list">
|
||||||
|
|
|
@ -1,21 +1,28 @@
|
||||||
<h1><%= @item.title %></h1>
|
<h1><%= @period.title %></h1>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<section>
|
<section>
|
||||||
<div class="o-question">
|
<div class="o-question">
|
||||||
<%= form_for :answer, :url => panel_survey_b_front_end_survey_b_index_path, :method => :get, :html => {:class => 'survey_b clear'} do |f| %>
|
<% if @period.isAvailable? %>
|
||||||
<%= f.hidden_field :standalone, :value => true, :name => :standalone %>
|
<%= form_for :answer, :url => panel_survey_b_front_end_survey_b_index_path, :method => :get, :html => {:class => 'survey_b clear'} do |f| %>
|
||||||
<p>
|
<%= f.hidden_field :standalone, :value => true, :name => :standalone %>
|
||||||
<%= @setting.announcement.gsub("\n", '<br />').html_safe %>
|
<%= f.hidden_field :period_id, :value => @period.id, :name => :period %>
|
||||||
</p>
|
<p>
|
||||||
<br />
|
<%= p @setting.announcement.gsub("\n", '<br />').html_safe %>
|
||||||
<p>
|
</p>
|
||||||
<%= f.check_box :agree, :name => :agree %>
|
<br />
|
||||||
<%= f.label :agree, t('survey_b.agree_check'), :style => "display:inline" %>
|
<p>
|
||||||
</p>
|
<%= f.check_box :agree, :name => :agree %>
|
||||||
|
<%= f.label :agree, t('survey_b.agree_check'), :style => "display:inline" %>
|
||||||
|
</p>
|
||||||
|
|
||||||
<div class="o-question-action">
|
<div class="o-question-action">
|
||||||
<%= f.submit t('submit'), :class => 'survey-submit' %>
|
<%= f.submit t('submit'), :class => 'survey-submit' %>
|
||||||
</div>
|
</div>
|
||||||
|
<% end %>
|
||||||
|
<% else %>
|
||||||
|
<% status_type = t('survey_b.status_types') %>
|
||||||
|
<p class="text-warning"><h4><%= t('survey_b.survey_b') + status_type[@period.get_status_type.to_sym] %></h4></p>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<% # encoding: utf-8 %>
|
<% # encoding: utf-8 %>
|
||||||
<% institutions = t('survey_b.institutions') %>
|
<% institutions = t('survey_b.institutions') %>
|
||||||
<h1><%= @item.title %></h1>
|
<h1><%= @period.title %></h1>
|
||||||
<div>
|
<div>
|
||||||
<section>
|
<section>
|
||||||
<div class="o-question">
|
<div class="o-question">
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
<h1><%= t('survey_b.no_survey') %></h1>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready().delay(2000).queue(function() {
|
||||||
|
window.location.href = "<%= root_path %>";
|
||||||
|
});
|
||||||
|
</script>
|
|
@ -14,8 +14,15 @@ en:
|
||||||
|
|
||||||
not_answered: 沒有回答
|
not_answered: 沒有回答
|
||||||
|
|
||||||
period: 問卷期間
|
period: 調查期間
|
||||||
period_title: 問卷期間標題
|
period_title: 問卷標題
|
||||||
|
no_survey: 尚無滿意度調查
|
||||||
|
|
||||||
|
status: 狀態
|
||||||
|
status_types:
|
||||||
|
type1: 調查中
|
||||||
|
type2: 未開始
|
||||||
|
type3: 已結束
|
||||||
|
|
||||||
no_data: 沒有數據
|
no_data: 沒有數據
|
||||||
answered_count: 答題人數
|
answered_count: 答題人數
|
||||||
|
@ -33,7 +40,7 @@ en:
|
||||||
institution8: 駐警隊
|
institution8: 駐警隊
|
||||||
institution9: 社科院總務分處
|
institution9: 社科院總務分處
|
||||||
institution10: 醫學院總務分處
|
institution10: 醫學院總務分處
|
||||||
institution11: 總務處秘書室
|
# institution11: 總務處秘書室
|
||||||
|
|
||||||
degrees:
|
degrees:
|
||||||
- 很滿意
|
- 很滿意
|
||||||
|
|
|
@ -14,7 +14,15 @@ zh_tw:
|
||||||
|
|
||||||
not_answered: 沒有回答
|
not_answered: 沒有回答
|
||||||
|
|
||||||
period: 問卷期間
|
period: 調查期間
|
||||||
|
period_title: 問卷標題
|
||||||
|
no_survey: 尚無滿意度調查
|
||||||
|
|
||||||
|
status: 狀態
|
||||||
|
status_types:
|
||||||
|
type1: 調查中
|
||||||
|
type2: 未開始
|
||||||
|
type3: 已結束
|
||||||
|
|
||||||
no_data: 沒有數據
|
no_data: 沒有數據
|
||||||
answered_count: 答題人數
|
answered_count: 答題人數
|
||||||
|
@ -32,7 +40,7 @@ zh_tw:
|
||||||
institution8: 駐警隊
|
institution8: 駐警隊
|
||||||
institution9: 社科院總務分處
|
institution9: 社科院總務分處
|
||||||
institution10: 醫學院總務分處
|
institution10: 醫學院總務分處
|
||||||
institution11: 總務處秘書室
|
# institution11: 總務處秘書室
|
||||||
|
|
||||||
degrees:
|
degrees:
|
||||||
- 很滿意
|
- 很滿意
|
||||||
|
|
|
@ -29,23 +29,23 @@ module SurveyB
|
||||||
|
|
||||||
head_link_path "panel_survey_b_back_end_periods_path"
|
head_link_path "panel_survey_b_back_end_periods_path"
|
||||||
|
|
||||||
context_link 'survey_b.result',
|
# context_link 'survey_b.result',
|
||||||
:link_path=>"result_panel_survey_b_back_end_survey_b_index_path" ,
|
# :link_path=>"result_panel_survey_b_back_end_survey_b_index_path" ,
|
||||||
:priority=>1,
|
# :priority=>1,
|
||||||
:active_for_action=>{:survey_b=>:result},
|
# :active_for_action=>{:survey_b=>:result},
|
||||||
:available_for => [:manager]
|
# :available_for => [:manager]
|
||||||
|
|
||||||
context_link 'list_',
|
# context_link 'list_',
|
||||||
:link_path=>"panel_survey_b_back_end_survey_b_index_path" ,
|
# :link_path=>"panel_survey_b_back_end_survey_b_index_path" ,
|
||||||
:priority=>1,
|
# :priority=>1,
|
||||||
:active_for_action=>{:survey_b=>:index},
|
# :active_for_action=>{:survey_b=>:index},
|
||||||
:available_for => [:manager]
|
# :available_for => [:manager]
|
||||||
|
|
||||||
context_link 'survey_b.period',
|
# context_link 'survey_b.period',
|
||||||
:link_path=>"panel_survey_b_back_end_periods_path" ,
|
# :link_path=>"panel_survey_b_back_end_periods_path" ,
|
||||||
:priority=>1,
|
# :priority=>1,
|
||||||
:active_for_action=>{:periods=>:index},
|
# :active_for_action=>{:periods=>:index},
|
||||||
:available_for => [:manager]
|
# :available_for => [:manager]
|
||||||
|
|
||||||
context_link 'survey_b.setting',
|
context_link 'survey_b.setting',
|
||||||
:link_path=>"edit_panel_survey_b_back_end_setting_path" ,
|
:link_path=>"edit_panel_survey_b_back_end_setting_path" ,
|
||||||
|
|
Loading…
Reference in New Issue