2020-03-21 15:36:33 +00:00
|
|
|
|
<%
|
2020-07-27 02:11:58 +00:00
|
|
|
|
ask_setting = @ask_setting
|
2022-09-21 10:07:01 +00:00
|
|
|
|
set_input_name_for_ask('ask_question')
|
2020-03-21 15:36:33 +00:00
|
|
|
|
%>
|
2014-10-02 06:00:35 +00:00
|
|
|
|
<% content_for :page_specific_css do %>
|
|
|
|
|
<%= stylesheet_link_tag "lib/main-forms" %>
|
|
|
|
|
<%= stylesheet_link_tag "lib/main-list" %>
|
2020-03-22 04:27:46 +00:00
|
|
|
|
<%= stylesheet_link_tag "custom_field" %>
|
2014-10-02 06:00:35 +00:00
|
|
|
|
<% end %>
|
2020-03-21 15:36:33 +00:00
|
|
|
|
<%# javascript_include_tag "lib/bootstrap-datetimepicker.js" %>
|
|
|
|
|
<%# javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/jquery/1.11.0/jquery.min.js"%>
|
2020-03-22 15:58:53 +00:00
|
|
|
|
<%# javascript_include_tag "/assets/lib/jquery-ui-1.12.1/jquery-ui.min" %>
|
2020-03-21 15:36:33 +00:00
|
|
|
|
<%# javascript_include_tag "lib/module-area" %>
|
2020-03-22 15:58:53 +00:00
|
|
|
|
<%# javascript_include_tag "jquery.ui.datepicker.monthyearpicker" %>
|
2020-03-21 15:36:33 +00:00
|
|
|
|
<%# javascript_include_tag "lib/bootstrap-datetimepicker" %>
|
|
|
|
|
<style type="text/css">
|
2020-07-27 02:11:58 +00:00
|
|
|
|
.input-area tr td {
|
|
|
|
|
text-align: center;
|
|
|
|
|
}
|
|
|
|
|
.form-horizontal .control-label {
|
|
|
|
|
padding-top: 0;
|
|
|
|
|
}
|
2020-03-21 15:36:33 +00:00
|
|
|
|
</style>
|
2020-05-30 14:20:10 +00:00
|
|
|
|
<script type="text/javascript">
|
2020-07-27 02:11:58 +00:00
|
|
|
|
$(document).ready(function(){
|
2020-05-30 14:20:10 +00:00
|
|
|
|
$('input:file').change(function(e){
|
|
|
|
|
var fileName = e.target.files[0].name;
|
|
|
|
|
$(this).parents(".file-selector").eq(0).find('.filename').html(fileName);
|
|
|
|
|
})
|
|
|
|
|
$('input:file').each(function(i,v){
|
2020-07-27 02:11:58 +00:00
|
|
|
|
|
|
|
|
|
var filename = $(v).attr('value')
|
|
|
|
|
if (filename){
|
|
|
|
|
if ($(v).attr('data-image-src')){
|
|
|
|
|
$(v).parents(".file-selector").eq(0).find('.filename').html("<img src=\""+$(v).attr('data-image-src')+"\">"+filename);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
$(v).parents(".file-selector").eq(0).find('.filename').html("<a href=\""+$(v).attr('data-src')+"\">"+filename);
|
|
|
|
|
}
|
|
|
|
|
}
|
2020-05-30 14:20:10 +00:00
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
</script>
|
2024-09-03 15:58:34 +00:00
|
|
|
|
|
2014-10-02 06:00:35 +00:00
|
|
|
|
<div class="input-area">
|
2024-09-03 15:58:34 +00:00
|
|
|
|
<div class="row-fluid">
|
|
|
|
|
<div id="ask-asks" class="span8">
|
|
|
|
|
<div class="row-fluid">
|
|
|
|
|
<div class="span4"><%= AskQuestion.human_attribute_name(:name) %>:<%= @ask_question.name %></div>
|
|
|
|
|
<div class="span4"><%= AskQuestion.human_attribute_name(:mail) %>:<%= @ask_question.mail %></div>
|
|
|
|
|
<div class="span4"><%= AskQuestion.human_attribute_name(:phone) %>:<%= @ask_question.phone %></div>
|
|
|
|
|
</div>
|
|
|
|
|
<% ask_setting.custom_fields.each do |k,v| %>
|
|
|
|
|
<%
|
|
|
|
|
required_pattern = v['required']=='true' ? '*' : ''
|
|
|
|
|
%>
|
|
|
|
|
<div class="control-group">
|
|
|
|
|
<label class="control-label">
|
|
|
|
|
<%= required_pattern %>
|
|
|
|
|
<%= v['field'][I18n.locale] %>
|
|
|
|
|
</label>
|
|
|
|
|
<div class="controls">
|
|
|
|
|
<%= show_on_front(k,v,@ask_question,true) %>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<% end %>
|
2014-10-02 06:00:35 +00:00
|
|
|
|
|
2024-09-03 15:58:34 +00:00
|
|
|
|
<div>
|
|
|
|
|
<div class="control-group">
|
|
|
|
|
<label class="control-label muted"><%= t('ask.serial_number') %></label>
|
|
|
|
|
<div class="controls">
|
|
|
|
|
<%= @ask_question.get_serial_number %>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2014-10-02 06:00:35 +00:00
|
|
|
|
|
2024-09-03 15:58:34 +00:00
|
|
|
|
<div class="control-group">
|
|
|
|
|
<label class="control-label muted"><%= t('ask.ip') %></label>
|
|
|
|
|
<div class="controls">
|
|
|
|
|
<%= @ask_question.ip %>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2024-09-03 15:56:53 +00:00
|
|
|
|
|
2024-09-03 15:58:34 +00:00
|
|
|
|
<div class="control-group">
|
|
|
|
|
<label class="control-label muted"><%= t('title') %></label>
|
|
|
|
|
<div class="controls">
|
|
|
|
|
<%= @ask_question.title %>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<% if ask_setting.default_setting['appointment'] %>
|
|
|
|
|
<div class="control-group">
|
|
|
|
|
<label class="control-label muted">
|
|
|
|
|
<%= AskQuestion.human_attribute_name(:appointment) %>
|
|
|
|
|
</label>
|
2024-09-03 15:56:53 +00:00
|
|
|
|
<div class="controls">
|
2024-09-03 15:58:34 +00:00
|
|
|
|
<%= @ask_question.appointment.strftime("%Y-%m-%d %H:%M") if @ask_question.appointment %>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<% end %>
|
2024-09-03 15:56:53 +00:00
|
|
|
|
|
2024-09-03 15:58:34 +00:00
|
|
|
|
<% if !@ask_question.comment.blank? %>
|
|
|
|
|
<div class="control-group">
|
|
|
|
|
<%= f.label :comment, class: "control-label muted" %>
|
|
|
|
|
<div class="controls">
|
|
|
|
|
<%= @ask_question.comment %>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<% end %>
|
|
|
|
|
<div class="control-group">
|
|
|
|
|
<%= f.label :agree_show, class: "control-label muted" %>
|
|
|
|
|
<div class="controls">
|
|
|
|
|
<%= @ask_question.agree_show ? t('ask.yes') : t('ask.no') %>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<%= f.label t('situation'), class: "control-label muted" %>
|
|
|
|
|
<div class="controls">
|
|
|
|
|
<%= f.select :situation, AskTicketStatus.default_sorting.map{|a| [a.title, a.key] } %>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="control-group">
|
|
|
|
|
<label class="control-label muted"><%= t(:tags) %></label>
|
|
|
|
|
<%= select_tags(f, @module_app) %>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="control-group">
|
|
|
|
|
<%= f.label :send_email, class: "control-label muted" %>
|
2024-09-03 15:56:53 +00:00
|
|
|
|
|
2024-09-03 15:58:34 +00:00
|
|
|
|
<div class="controls">
|
|
|
|
|
<label class="radio inline">
|
|
|
|
|
<%= f.radio_button :send_email, 1 %>
|
|
|
|
|
<%= t('ask.system_Email') %>
|
|
|
|
|
</label>
|
2024-09-03 15:56:53 +00:00
|
|
|
|
|
2024-09-03 15:58:34 +00:00
|
|
|
|
<label class="radio inline">
|
|
|
|
|
<%= f.radio_button :send_email, 0 %>
|
|
|
|
|
<%= t('ask.no') %>
|
|
|
|
|
</label>
|
2024-09-03 15:56:53 +00:00
|
|
|
|
|
2024-09-03 15:58:34 +00:00
|
|
|
|
<label class="radio inline">
|
|
|
|
|
<%= f.radio_button :send_email, 2 %>
|
|
|
|
|
<%= t('ask.phone') %>
|
|
|
|
|
</label>
|
|
|
|
|
|
|
|
|
|
<label class="radio inline">
|
|
|
|
|
<%= f.radio_button :send_email, 3 %>
|
|
|
|
|
<%= t('ask.fax') %>
|
|
|
|
|
</label>
|
|
|
|
|
|
|
|
|
|
<label class="radio inline">
|
|
|
|
|
<%= f.radio_button :send_email, 4 %>
|
|
|
|
|
<%= t('ask.paper') %>
|
|
|
|
|
</label>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="control-group">
|
|
|
|
|
<%= f.label :reply, class: "control-label muted" %>
|
|
|
|
|
<div class="controls">
|
|
|
|
|
<%= f.text_area :reply, rows: 10, style: 'max-width: 500px; width: 100%;' %>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="control-group">
|
|
|
|
|
<label class="control-label muted"><%= f.label :comment %></label>
|
|
|
|
|
<div class="controls">
|
|
|
|
|
<%= f.text_area :release_comment, :id => "#{f.object_name}_comment" %>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="control-group">
|
|
|
|
|
<label class="control-label muted"><%= t(:file_) %></label>
|
|
|
|
|
<div class="controls">
|
|
|
|
|
<%= f.file_field :release_file %>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="span4">
|
|
|
|
|
<!-- 顯示歷史紀錄 -->
|
|
|
|
|
<div class="history-records">
|
2024-09-04 12:55:47 +00:00
|
|
|
|
<h3><%= t('history') %></h3>
|
2024-09-03 15:58:34 +00:00
|
|
|
|
<% if f.object.ask_status_histories.present? %>
|
|
|
|
|
<% status_mapping = AskTicketStatus.default_sorting.map{|a| [a.key, a.title]}.to_h %>
|
|
|
|
|
<table class="table">
|
|
|
|
|
<thead>
|
|
|
|
|
<tr>
|
|
|
|
|
<th><%= t('status') %></th>
|
|
|
|
|
<th><%= t('ask.modified_by') %></th>
|
|
|
|
|
<th><%= t('ask.remark') %></th>
|
|
|
|
|
<th><%= t('ask.attachment') %></th>
|
|
|
|
|
<th><%= t('ask.updated_at') %></th>
|
|
|
|
|
</tr>
|
|
|
|
|
</thead>
|
|
|
|
|
<tbody>
|
|
|
|
|
<% f.object.ask_status_histories.each do |ask_status_history| %>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>
|
|
|
|
|
<%= status_mapping[ask_status_history.status] %>
|
|
|
|
|
</td>
|
|
|
|
|
<td>
|
|
|
|
|
<%= ask_status_history.modified_by_name %>
|
|
|
|
|
</td>
|
|
|
|
|
<td>
|
|
|
|
|
<%= ask_status_history.comment %>
|
|
|
|
|
</td>
|
|
|
|
|
<td>
|
|
|
|
|
<%= link_to(ask_status_history[:file], ask_status_history.file.url) if ask_status_history.file.present? %>
|
|
|
|
|
</td>
|
|
|
|
|
<td>
|
|
|
|
|
<%= ask_status_history.created_at.strftime("%Y-%m-%d %H:%M:%S") %>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<% end %>
|
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
|
<% else %>
|
|
|
|
|
<p><%= t('no_history_records') %></p>
|
|
|
|
|
<% end %>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2020-07-27 02:11:58 +00:00
|
|
|
|
</div>
|
2014-10-02 06:00:35 +00:00
|
|
|
|
</div>
|
2020-04-30 05:18:02 +00:00
|
|
|
|
<%
|
2020-07-27 02:11:58 +00:00
|
|
|
|
cancel_href = url_for(:back)
|
|
|
|
|
if cancel_href == 'javascript:history.back()'
|
|
|
|
|
now_ask_page = AskQuestion.order_by(:id).map(&:id).map.with_index.select{|v,i| v==@ask_question.id}[0][1] rescue nil
|
|
|
|
|
now_ask_page = now_ask_page.nil? ? 1 : ((now_ask_page+1).to_f/10).ceil
|
|
|
|
|
cancel_href = "/#{I18n.locale}/admin/asks?page=#{now_ask_page}"
|
|
|
|
|
end
|
2020-04-30 05:18:02 +00:00
|
|
|
|
%>
|
2014-10-02 06:00:35 +00:00
|
|
|
|
<div class="form-actions">
|
|
|
|
|
<%= f.submit t('submit'), class: 'btn btn-primary' %>
|
2020-04-30 05:18:02 +00:00
|
|
|
|
<%= link_to t('cancel'),cancel_href,title: t('cancel'),:class=> 'btn' %>
|
2014-10-02 06:00:35 +00:00
|
|
|
|
</div>
|