825 lines
35 KiB
Plaintext
825 lines
35 KiB
Plaintext
<% content_for :page_specific_css do %>
|
||
<%= stylesheet_link_tag "lib/main-forms" %>
|
||
<%= stylesheet_link_tag "lib/fileupload" %>
|
||
<%= stylesheet_link_tag "lib/main-list" %>
|
||
<% end %>
|
||
<style type="text/css">
|
||
.sort-order-icon {
|
||
font-size: 25px;
|
||
}
|
||
.ui-state-highlight {
|
||
height: 40px;
|
||
background-color: #fcf8e3;
|
||
border: 1px dashed #fbeed5;
|
||
margin-bottom: 10px;
|
||
list-style: none;
|
||
}
|
||
.exist .file-link {
|
||
cursor: grab;
|
||
}
|
||
.icons-list-2 {
|
||
cursor: all-scroll;
|
||
}
|
||
</style>
|
||
<style type="text/css">
|
||
[aria-describedby] ul.dropdown-menu {
|
||
display: block;
|
||
}
|
||
[aria-describedby] .checkbox input{
|
||
margin-left: 0;
|
||
}
|
||
.reach_limit{
|
||
background: #a90c0c;
|
||
color: white;
|
||
padding: 4px 12px;
|
||
font-family: 'Varela Round';
|
||
letter-spacing: -.4px;
|
||
cursor: default;
|
||
display: inline-block;
|
||
}
|
||
legend {
|
||
background: white;
|
||
}
|
||
</style>
|
||
<% content_for :page_specific_javascript do %>
|
||
<%= javascript_include_tag "lib/bootstrap-fileupload" %>
|
||
<%= javascript_include_tag "lib/bootstrap-datetimepicker" %>
|
||
<%= javascript_include_tag "lib/datetimepicker/datetimepicker.js" %>
|
||
<%= javascript_include_tag "lib/file-type" %>
|
||
<%= javascript_include_tag "lib/module-area" %>
|
||
<%= javascript_include_tag "form" %>
|
||
<% end %>
|
||
<script type="text/javascript">
|
||
function trigger_on_add_calendar(ele){
|
||
if ($(ele).prop('checked')){
|
||
$('.trigger_on_add_calendar').show()
|
||
}else{
|
||
$('.trigger_on_add_calendar').hide()
|
||
}
|
||
}
|
||
</script>
|
||
<!-- Input Area -->
|
||
<div class="input-area">
|
||
|
||
<!-- Module Tabs -->
|
||
<div class="nav-name"><strong><%= t(:module) %></strong></div>
|
||
<ul class="nav nav-pills module-nav">
|
||
<li class="active"><a href="#basic" data-toggle="tab"><%= t(:basic) %></a></li>
|
||
<% if defined? Calendar %>
|
||
<li><a href="#calendar" data-toggle="tab"><%= t('calendar.calendar') %></a></li>
|
||
<% end %>
|
||
<% if((!RecruitmentSetting.first.only_manager_can_edit_status) || (RecruitmentSetting.first.only_manager_can_edit_status && (@current_user.is_admin? || @current_user.is_manager?(@module_app))) ) %>
|
||
<li><a href="#status" data-toggle="tab"><%= t(:status) %></a></li>
|
||
<% end %>
|
||
<li><a href="#tag" data-toggle="tab"><%= t(:tags) %></a></li>
|
||
<li><a href="#hashtag" data-toggle="tab"><%= t(:hashtags) %></a></li>
|
||
<li><a href="#imageupload" data-toggle="tab"><%= t('recruitment.image') %></a></li>
|
||
<li><a href="#carousel_image_upload" data-toggle="tab" title="<%= t('recruitment.carousel_image_title') %>"><%= t('recruitment.carousel_image') %></a></li>
|
||
<li><a href="#mail-group" data-toggle="tab"><%= t('recruitment.email_reminder')%></a></li>
|
||
</ul>
|
||
<!-- Module -->
|
||
<div class="tab-content module-area">
|
||
|
||
<!-- Basic Module -->
|
||
<div class="tab-pane fade in active" id="basic">
|
||
|
||
<!-- Category -->
|
||
<div class="control-group">
|
||
<label class="control-label muted"><%= t(:category) %></label>
|
||
<div class="controls">
|
||
<%= select_category(f, @module_app) %>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Date Time Picker -->
|
||
<div class="control-group">
|
||
<label class="control-label muted"><%= RecruitmentCustomTitle.get_trans('event_date') %></label>
|
||
<div class="controls">
|
||
<%= f.datetime_picker :event_date, :no_label => true, :new_record => @recruitment.new_record?, :data=>{"picker-type" => "range", "range" => "start"} %>
|
||
</div>
|
||
</div>
|
||
<div class="control-group">
|
||
<label class="control-label muted"><%= I18n.t("recruitment.event_date_use_default_setting") %></label>
|
||
<div class="controls">
|
||
<%= f.check_box :event_date_use_default_setting, :id=>"event_date_use_default_setting" %>
|
||
</div>
|
||
</div>
|
||
<div class="control-group">
|
||
<label class="control-label muted"><%= t("recruitment.event_end_date") %></label>
|
||
<div class="controls">
|
||
<%= f.datetime_picker :event_end_date, :no_label => true, :new_record => @recruitment.new_record?, :data=>{"picker-type" => "range", "range" => "start"} %>
|
||
</div>
|
||
</div>
|
||
<fieldset id="event_date_setting" class="<%='hide' if f.object.event_date_use_default_setting %>">
|
||
<legend><%=t("recruitment.event_date_setting")%></legend>
|
||
<div class="control-group">
|
||
<label class="control-label muted"><%= I18n.t("recruitment.including_day_of_the_week") %></label>
|
||
<div class="controls">
|
||
<%= f.check_box :including_day_of_the_week %>
|
||
</div>
|
||
</div>
|
||
<div class="control-group">
|
||
<label class="control-label muted"><%= I18n.t("recruitment.including_time") %></label>
|
||
<div class="controls">
|
||
<%= f.check_box :including_time, :id=>"including_time" %>
|
||
</div>
|
||
</div>
|
||
<div class="hour_clock_24_block control-group <%= 'hide' if !(f.object.including_time) %>">
|
||
<label class="control-label muted"><%= I18n.t("recruitment.hour_clock_24") %></label>
|
||
<div class="controls">
|
||
<%= f.check_box :hour_clock_24 %>
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
<div class="control-group">
|
||
<label class="control-label muted"><%= t("recruitment.start_date") %></label>
|
||
<div class="controls">
|
||
<%= f.datetime_picker :postdate, :no_label => true, :new_record => @recruitment.new_record?, :data=>{"picker-type" => "range", "range" => "start"} %>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="control-group">
|
||
<label class="control-label muted"><%= t("recruitment.end_date") %></label>
|
||
<div class="controls">
|
||
<%= f.datetime_picker :deadline, :no_label => true, :new_record => @recruitment.new_record?, :data=>{"picker-type" => "range", "range" => "end"} %>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="control-group">
|
||
<%= f.label :is_external_link, t("recruitment.is_external_link"), :class => "control-label muted" %>
|
||
<div class="controls">
|
||
<%= f.check_box :is_external_link %>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="control-group" style="<%=@recruitment.is_external_link ? '' : 'display: none;'%>" id="external_link_box">
|
||
<%= f.label :external_link, t("recruitment.external_link"), :class => "control-label muted" %>
|
||
<div class="controls">
|
||
<%= f.text_field :external_link %>
|
||
<div class="hint"><%= t("recruitment.external_link_hint") %></div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- display subtitle -->
|
||
<div class="control-group">
|
||
<%= f.label :display_subtitle, t("recruitment.display_subtitle"), :class => "control-label muted" %>
|
||
<div class="controls">
|
||
<%= f.check_box :display_subtitle %>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- display img src -->
|
||
<div class="control-group">
|
||
<%= f.label :display_img, t("recruitment.display_img"), :class => "control-label muted" %>
|
||
<div class="controls">
|
||
<%= f.check_box :display_img, :id=> "recruitment_display_img" %>
|
||
</div>
|
||
</div>
|
||
<!-- Image display setting -->
|
||
<% image_display_class_relation = {"full_width"=>"full-size-img","up_left_corner"=>"pull-left","up_right_corner"=>"pull-right"} %>
|
||
<div class="control-group <%='hide' if !f.object.display_img %>" id="image_display_setting">
|
||
<%= f.label :image_display_class, t("recruitment.cover_image_display_setting"), :class => "control-label muted" %>
|
||
<div class="controls">
|
||
<% image_display_class_relation.each.with_index do |(key,value),i| %>
|
||
<label>
|
||
<%= radio_button_tag "#{f.object_name}[image_display_class]", value , (f.object.image_display_class == value) %>
|
||
<%= t("recruitment.#{key}") %>
|
||
</label>
|
||
<% end %>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="control-group big-group">
|
||
<label class="control-label muted"><%= t("recruitment.members") %></label>
|
||
<div class="controls">
|
||
<%= render partial: 'admin/member_selects/email_selection_box', locals: {field: 'recruitment[other_member_profiles][]', email_members: MemberProfile.find(@recruitment.other_member_profiles), select_name: "author_members", index: 'author_members', extra_class: 'custom-class'} %>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Calendar Module -->
|
||
<% if defined? Calendar %>
|
||
<div class="tab-pane fade" id="calendar">
|
||
<div class="control-group">
|
||
<label class="control-label muted"><%= t('recruitment.add_to_calendar') %></label>
|
||
<div class="controls">
|
||
<%= f.check_box :add_to_calendar,onchange: 'trigger_on_add_calendar(this)' %>
|
||
</div>
|
||
</div>
|
||
<div class="trigger_on_add_calendar" <%= "style=display:none;" if !@recruitment.add_to_calendar %>>
|
||
<div class="control-group">
|
||
<label class="control-label muted"><%= t('calendar.calendar') %></label>
|
||
<div class="controls">
|
||
<%= f.select :calendar_type_id, @calendar_categories.collect{|t| [ t.title, t.id ]} %>
|
||
</div>
|
||
</div>
|
||
<div class="control-group" style="display: flex;flex-wrap: wrap;">
|
||
<div style="display: flex;flex-direction: column;">
|
||
<label class="control-label muted"><%= t("recruitment.start_date") %></label>
|
||
<label class="control-label muted"><%= t('recruitment.blank_to_set') %></label>
|
||
</div>
|
||
<div class="controls" style="margin-left: 1.5em;">
|
||
<%= f.datetime_picker :calendar_start_date, :new_record => @recruitment.new_record?, :no_label => true, :data=>{"picker-type" => "range", "range" => "start"} %>
|
||
</div>
|
||
</div>
|
||
<div class="control-group" style="display: flex;flex-wrap: wrap;">
|
||
<div style="display: flex;flex-direction: column;">
|
||
<label class="control-label muted"><%= t("recruitment.end_date") %></label>
|
||
<label class="control-label muted"><%= t('recruitment.blank_to_set') %></label>
|
||
</div>
|
||
<div class="controls" style="margin-left: 1.5em;">
|
||
<%= f.datetime_picker :calendar_end_date, :new_record => @recruitment.new_record?, :no_label => true, :data=>{"picker-type" => "range", "range" => "end"} %>
|
||
</div>
|
||
</div>
|
||
<div class="control-group">
|
||
<label class="control-label muted"><%= t('calendar.all_day') %></label>
|
||
<div class="controls">
|
||
<%= f.check_box :calendar_all_day %>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<%= f.hidden_field :event_id %>
|
||
</div>
|
||
<% end %>
|
||
<!-- Status Module -->
|
||
<% if((!RecruitmentSetting.first.only_manager_can_edit_status) || (RecruitmentSetting.first.only_manager_can_edit_status && (@current_user.is_admin? || @current_user.is_manager?(@module_app))) ) %>
|
||
<div class="tab-pane fade" id="status">
|
||
<!-- Status -->
|
||
<div class="control-group">
|
||
<label class="control-label muted"><%= t(:status) %></label>
|
||
<div class="controls" data-toggle="buttons-checkbox">
|
||
<% if !(@reach_limit.include?('is_top') && @recruitment.is_top != true) || current_user.is_admin? %>
|
||
<label class="checkbox inline btn <%= 'active' if @recruitment.is_top? || (!@recruitment.top_end_date.nil? && @recruitment.top_end_date > Time.now) %>">
|
||
<%= f.check_box :is_top %> <%= t(:top) %>
|
||
</label>
|
||
<% else %>
|
||
<label class="reach_limit">
|
||
<%= t(:top) %>
|
||
</label>
|
||
<% end %>
|
||
<% if !(@reach_limit.include?('is_hot') && @recruitment.is_hot != true) || current_user.is_admin? %>
|
||
<label class="checkbox inline btn <%= 'active' if @recruitment.is_hot? %>">
|
||
<%= f.check_box :is_hot %> <%= t(:hot) %>
|
||
</label>
|
||
<% else %>
|
||
<label class="reach_limit">
|
||
<%= t(:hot) %>
|
||
</label>
|
||
<% end %>
|
||
<label class="checkbox inline btn <%= 'active' if @recruitment.is_hidden? %>">
|
||
<%= f.check_box :is_hidden %> <%= t(:hide) %>
|
||
</label>
|
||
</div>
|
||
<div class="controls">
|
||
<% if !@recruitment.is_top? && !RecruitmentSetting.check_limit_for_user((@recruitment.new_record? ? current_user.id : @recruitment.create_user_id)) %>
|
||
<span>Top limit has been reached. The recruitment wont be marked as top even if you click on it.</span>
|
||
<% end %>
|
||
</div>
|
||
</div>
|
||
<div class="control-group <%= @recruitment.is_top? || (!@recruitment.top_end_date.nil? && @recruitment.top_end_date > Time.now) ? "" : "hide" %>" data-for="is_top">
|
||
<label for="" class="control-label muted">Top end time</label>
|
||
<div class="controls">
|
||
<%= f.datetime_picker :top_end_date, :no_label => true, :new_record => @recruitment.new_record? %>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
<% end %>
|
||
|
||
<!-- Tag Module -->
|
||
<div class="tab-pane fade" id="tag">
|
||
<div class="control-group">
|
||
<label class="control-label muted"><%= t(:tags) %></label>
|
||
<%= select_tags(f, @module_app) %>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Hashtag Module -->
|
||
<div class="tab-pane fade" id="hashtag">
|
||
<div class="control-group">
|
||
<label class="control-label muted"><%= t(:hashtags) %></label>
|
||
<%= select_hashtags(f, @module_app) %>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Images Module -->
|
||
<div class="tab-pane fade" id="imageupload">
|
||
|
||
<!-- Images Upload -->
|
||
<div class="control-group">
|
||
<label class="control-label muted"><%= t(:image) %></label>
|
||
<div class="controls">
|
||
<div class="fileupload fileupload-new clearfix <%= 'fileupload-edit' if @recruitment.image.file %>" data-provides="fileupload">
|
||
<div class="fileupload-new thumbnail pull-left">
|
||
<% if @recruitment.image.file %>
|
||
<%= image_tag @recruitment.image %>
|
||
<% else %>
|
||
<img src="/assets/recruitment/AAAAAA" />
|
||
<% end %>
|
||
</div>
|
||
<div class="fileupload-preview fileupload-exists thumbnail pull-left"></div>
|
||
<span class="btn btn-file">
|
||
<span class="fileupload-new"><%= t(:select_image) %></span>
|
||
<span class="fileupload-exists"><%= t(:change) %></span>
|
||
<%= f.file_field :image %>
|
||
</span>
|
||
<a href="#" class="btn fileupload-exists" data-dismiss="fileupload"><%= t(:cancel) %></a>
|
||
<div class="controls" data-toggle="buttons-checkbox">
|
||
<label class="checkbox inline btn btn-danger fileupload-remove">
|
||
<%= f.check_box :remove_image %><%= t(:remove) %>
|
||
</label>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<% @site_in_use_locales.each do |locale| %>
|
||
<%= f.fields_for :image_description_translations do |f| %>
|
||
<div class="control-group">
|
||
<label class="control-label muted" for="image_description_<%= locale.to_s %>"><%= t(:description) + " (#{t(locale.to_s)})" %></label>
|
||
<div class="controls">
|
||
<%= f.text_field locale, value: (@recruitment.image_description_translations[locale.to_s] rescue nil) %>
|
||
</div>
|
||
</div>
|
||
<% end %>
|
||
<% end %>
|
||
|
||
</div>
|
||
|
||
<!-- Images Module -->
|
||
<div class="tab-pane fade" id="carousel_image_upload">
|
||
<div class="control-group">
|
||
<%= f.label :custom_carousel_image_type, t("recruitment.default_carousel_image_type"), :class => "control-label muted" %>
|
||
<div class="controls">
|
||
<% carousel_image_types = ["default","carousel","album"] %>
|
||
<%= f.select :custom_carousel_image_type, options_for_select(carousel_image_types.map.with_index{|type,i| [t("recruitment.carousel_image_types.#{type}"),i]}.to_h,:selected => f.object.custom_carousel_image_type) %>
|
||
</div>
|
||
</div>
|
||
<div class="control-group">
|
||
<label class="control-label muted" for="carousel_image_width"><%= t("recruitment.carousel_image_width") %></label>
|
||
<div class="controls">
|
||
<%= f.text_field :custom_carousel_image_width, :placeholder => t("recruitment.custom_carousel_image_width_hint") %>
|
||
</div>
|
||
</div>
|
||
<% if (!f.object.recruitment_carousel_images.blank? rescue false) %>
|
||
<div class="exist">
|
||
<% f.object.recruitment_carousel_images.each_with_index do |event_carousel_image, i| %>
|
||
<%= f.fields_for :recruitment_carousel_images, event_carousel_image do |f| %>
|
||
<%= render :partial => 'form_image', :object => event_carousel_image, :locals => {:f => f, :i => i} %>
|
||
<% end %>
|
||
<% end %>
|
||
<hr>
|
||
</div>
|
||
<% end %>
|
||
<!-- Add -->
|
||
<div class="add-target">
|
||
</div>
|
||
<p class="add-btn controls">
|
||
<%= hidden_field_tag 'bulletin_carousel_image_count', f.object.recruitment_carousel_images.count %>
|
||
<a id="add_carousel_image" class="trigger btn btn-small btn-primary"><i class="icons-plus"></i> <%= t(:add) %></a>
|
||
</p>
|
||
</div>
|
||
|
||
<!-- Mail Group Module -->
|
||
<div class="tab-pane fade" id="mail-group">
|
||
|
||
<!-- Mail Group -->
|
||
<div class="control-group">
|
||
<label class="control-label muted"><%= t("recruitment.email_to") %></label>
|
||
<div class="controls">
|
||
|
||
<label class="checkbox inline">
|
||
<%= check_box_tag('recruitment[email_sent]', '1', (!@recruitment.email_sent.blank? ? true : false), :id=>'remind-check') %><%= t('recruitment.activate_email_reminder')%>
|
||
</label>
|
||
|
||
<div class="content-box">
|
||
<%= render partial: 'admin/member_selects/email_selection_box', locals: {field: 'recruitment[email_member_ids][]', email_members: @recruitment.email_members, select_name: "mail_members", index: 'mail_members', extra_class: 'custom-class'} %>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="control-group">
|
||
<label class="control-label muted"></label>
|
||
<div class="controls">
|
||
<div class="content-box">
|
||
<span class="help-block"><%= "#{t("recruitment.other_mailaddress")}(#{t("recruitment.other_mailaddress_note")})"%> </span>
|
||
<%= f.text_area :other_mailaddress, :class=>"span12", :cols=>"25", :rows=>"10" %>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="content-box">
|
||
<div class="control-group">
|
||
<label class="control-label muted"><%= t("recruitment.email_sentdate") %></label>
|
||
<div class="controls">
|
||
<%= f.datetime_picker :email_sentdate, :no_label => true %>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<% if (@recruitment.email.is_sent rescue false) %>
|
||
<div class="content-box">
|
||
<div class="control-group">
|
||
<label class="control-label muted"><%= t("recruitment.resend_mail") %></label>
|
||
<div class="controls">
|
||
<input type="checkbox" name="resend_mail" value="true">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<% end %>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Language Tabs -->
|
||
<div class="nav-name"><strong><%= t(:language) %></strong></div>
|
||
<ul class="nav nav-pills language-nav">
|
||
<% @site_in_use_locales.each_with_index do |locale, i| %>
|
||
<li class="<%= 'active' if i == 0 %>">
|
||
<a data-toggle="tab" href=".<%= locale %>"><%= t(locale) %></a>
|
||
</li>
|
||
<% end %>
|
||
</ul>
|
||
|
||
<!-- Language -->
|
||
<div class="tab-content language-area">
|
||
|
||
<% @site_in_use_locales.each_with_index do |locale, i| %>
|
||
|
||
<div class="<%= locale %> tab-pane fade <%= ( i == 0 ) ? "in active" : '' %>">
|
||
|
||
<!-- Title-->
|
||
<div class="control-group input-title">
|
||
<label class="control-label muted"><%= t(:title) %></label>
|
||
<div class="controls">
|
||
<%= f.fields_for :title_translations do |f| %>
|
||
<%= f.text_area locale, class: "ckeditor_reduce input-block-level", placeholder: t(:title), value: (@recruitment.title_translations[locale] rescue nil) %>
|
||
<% end %>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Sub Title -->
|
||
<div class="control-group input-subtitle">
|
||
<label class="control-label muted"><%= t(:subtitle) %></label>
|
||
<div class="controls">
|
||
<div class="textarea">
|
||
<%= f.fields_for :subtitle_translations do |f| %>
|
||
<%= f.text_area locale, rows: 2, class: "ckeditor input-block-level", value: (@recruitment.subtitle_translations[locale] rescue nil) %>
|
||
<% end %>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Content (工作內容) -->
|
||
<div class="control-group input-content">
|
||
<label class="control-label muted"><%= t("recruitment.text") %></label>
|
||
<div class="controls">
|
||
<div class="textarea">
|
||
<%= f.fields_for :text_translations do |f| %>
|
||
<%= f.cktext_area locale, rows: 5, class: "input-block-level", :value => (@recruitment.text_translations[locale] rescue nil) %>
|
||
<% end %>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Education Requirement -->
|
||
<div class="control-group input-education-requirement">
|
||
<label class="control-label muted"><%= t("recruitment.education_requirement") %></label>
|
||
<div class="controls">
|
||
<div class="textarea">
|
||
<%= f.fields_for :education_requirement_translations do |f| %>
|
||
<%= f.cktext_area locale, rows: 5, class: "input-block-level", :value => (@recruitment.education_requirement_translations[locale] rescue nil) %>
|
||
<% end %>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Experience Requirement -->
|
||
<div class="control-group input-experience-requirement">
|
||
<label class="control-label muted"><%= t("recruitment.experience_requirement") %></label>
|
||
<div class="controls">
|
||
<div class="textarea">
|
||
<%= f.fields_for :experience_requirement_translations do |f| %>
|
||
<%= f.cktext_area locale, rows: 5, class: "input-block-level", :value => (@recruitment.experience_requirement_translations[locale] rescue nil) %>
|
||
<% end %>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Skills Requirement -->
|
||
<div class="control-group input-skills-requirement">
|
||
<label class="control-label muted"><%= t("recruitment.skills_requirement") %></label>
|
||
<div class="controls">
|
||
<div class="textarea">
|
||
<%= f.fields_for :skills_requirement_translations do |f| %>
|
||
<%= f.cktext_area locale, rows: 5, class: "input-block-level", :value => (@recruitment.skills_requirement_translations[locale] rescue nil) %>
|
||
<% end %>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Language -->
|
||
<div class="control-group input-language">
|
||
<label class="control-label muted"><%= t("recruitment.language") %></label>
|
||
<div class="controls">
|
||
<div class="textarea">
|
||
<%= f.fields_for :language_translations do |f| %>
|
||
<%= f.cktext_area locale, rows: 5, class: "input-block-level", :value => (@recruitment.language_translations[locale] rescue nil) %>
|
||
<% end %>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Salary Info -->
|
||
<div class="control-group input-salary-info">
|
||
<label class="control-label muted"><%= t("recruitment.salary_info") %></label>
|
||
<div class="controls">
|
||
<div class="textarea">
|
||
<%= f.fields_for :salary_info_translations do |f| %>
|
||
<%= f.cktext_area locale, rows: 5, class: "input-block-level", :value => (@recruitment.salary_info_translations[locale] rescue nil) %>
|
||
<% end %>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Notes -->
|
||
<div class="control-group input-notes">
|
||
<label class="control-label muted"><%= t("recruitment.notes") %></label>
|
||
<div class="controls">
|
||
<div class="textarea">
|
||
<%= f.fields_for :notes_translations do |f| %>
|
||
<%= f.cktext_area locale, rows: 5, class: "input-block-level", :value => (@recruitment.notes_translations[locale] rescue nil) %>
|
||
<% end %>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Contact Info -->
|
||
<div class="control-group input-contact-info">
|
||
<label class="control-label muted"><%= t("recruitment.contact_info") %></label>
|
||
<div class="controls">
|
||
<div class="textarea">
|
||
<%= f.fields_for :contact_info_translations do |f| %>
|
||
<%= f.cktext_area locale, rows: 5, class: "input-block-level", :value => (@recruitment.contact_info_translations[locale] rescue nil) %>
|
||
<% end %>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
<% end %>
|
||
|
||
<!-- Link -->
|
||
<div class="control-group">
|
||
<label class="control-label muted"><%= t(:link) %></label>
|
||
<div class="controls add-input">
|
||
|
||
<!-- Exist -->
|
||
<% if @recruitment && !@recruitment.recruitment_links.blank? %>
|
||
<div class="exist">
|
||
<% @recruitment.recruitment_links.each_with_index do |recruitment_link, i| %>
|
||
<%= f.fields_for :recruitment_links, recruitment_link do |f| %>
|
||
<%= render :partial => 'form_link', :object => recruitment_link, :locals => {:f => f, :i => i} %>
|
||
<% end %>
|
||
<% end %>
|
||
<hr>
|
||
</div>
|
||
<% end %>
|
||
|
||
<!-- Add -->
|
||
<div class="add-target">
|
||
</div>
|
||
<p class="add-btn">
|
||
<%= hidden_field_tag 'recruitment_link_field_count', @recruitment.recruitment_links.count %>
|
||
<a id="add_link" class="trigger btn btn-small btn-primary"><i class="icons-plus"></i> <%= t(:add) %></a>
|
||
</p>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<!-- File -->
|
||
<div class="control-group">
|
||
<label class="control-label muted"><%= t(:file_) %></label>
|
||
<div class="controls">
|
||
|
||
<!-- Exist -->
|
||
<% if @recruitment && !@recruitment.recruitment_files.blank? %>
|
||
<div class="exist">
|
||
<% @recruitment.recruitment_files.each_with_index do |recruitment_file, i| %>
|
||
<div class="file-sort-item">
|
||
<%= f.fields_for :recruitment_files, recruitment_file do |f| %>
|
||
<%= f.hidden_field :position, class: "file-position" %>
|
||
<%= render :partial => 'form_file', :object => recruitment_file, :locals => {:f => f, :i => i} %>
|
||
<% end %>
|
||
</div>
|
||
<% end %>
|
||
<hr>
|
||
</div>
|
||
<% end %>
|
||
|
||
<!-- Add -->
|
||
<div class="add-target">
|
||
</div>
|
||
<p class="add-btn">
|
||
<%= hidden_field_tag 'recruitment_file_field_count', @recruitment.recruitment_files.count %>
|
||
<a id="add_file" class="trigger btn btn-small btn-primary"><i class="icons-plus"></i> <%= t(:add) %></a>
|
||
</p>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
<!-- Form Actions -->
|
||
<div class="form-actions">
|
||
<%= get_referer_url[:action] rescue "" %>
|
||
<%= f.submit t('submit'), class: 'btn btn-primary' %>
|
||
<input type="hidden" name="referer_url" value="<%= get_referer_url %>">
|
||
<%= button_tag t("preview"), id: "button_for_preview", name: "commit", class: 'btn', type: :button %>
|
||
<%= link_to t('cancel'), admin_recruitment_index_path, :class=>"btn" %>
|
||
</div>
|
||
|
||
<span id='show_preview'>
|
||
<div class="modal hide fade in banner-preview" id="">
|
||
<div class="modal-header">
|
||
<a class="close" data-dismiss="modal">×</a>
|
||
<h3><%= t(:preview) %></h3>
|
||
</div>
|
||
<div class="modal-body">
|
||
<iframe id="preview-iframe" src=""></iframe>
|
||
</div>
|
||
<div class="modal-footer">
|
||
<a href="#" class="btn" data-dismiss="modal"><%= t(:close) %></a>
|
||
</div>
|
||
</div>
|
||
</span>
|
||
<% if !@module_app.tags.empty? %>
|
||
<script type="text/javascript">
|
||
$("form.previewable").on("submit", function(){
|
||
if(!$("input[name='recruitment[tags][]']").is(":checked")){
|
||
if(!confirm("You have selected no tag, do you wish to continue?")){
|
||
return false;
|
||
}
|
||
}
|
||
})
|
||
</script>
|
||
<% end %>
|
||
<script>
|
||
$("#event_date_use_default_setting").click(function(){$("#event_date_setting").toggleClass("hide")})
|
||
$("#including_time").click(function(){$(".hour_clock_24_block").toggleClass("hide")})
|
||
$("#recruitment_display_img").click(function(){$("#image_display_setting").toggleClass("hide")})
|
||
function Appendzero(obj)
|
||
{
|
||
if(obj<10) return "0" +""+ obj;
|
||
else return obj;
|
||
}
|
||
|
||
$(function() {
|
||
if (location.pathname.substr(-3)=='new'){
|
||
var getDate = new Date();
|
||
var toDay = getDate.getFullYear()+"/"+ (Appendzero(getDate.getMonth()+1))+"/"+Appendzero(getDate.getDate())+" "+Appendzero(getDate.getHours())+":"+Appendzero(getDate.getMinutes());
|
||
$('input[name="recruitment[event_date]"]').val(toDay);
|
||
$('input[name="recruitment[postdate]"]').val(toDay);
|
||
}
|
||
|
||
$("#main-wrap").after("");
|
||
|
||
$(document).on('click', '#add_link', function(){
|
||
var new_id = $(this).prev().attr('value');
|
||
var old_id = new RegExp("new_recruitment_links", "g");
|
||
var on = $('.language-nav li.active').index();
|
||
var le = $(this).parent('.add-btn').prev('.add-target').children('.start-line').length;
|
||
$(this).prev().attr('value', parseInt(new_id) + 1);
|
||
$(this).parent().siblings('.add-target').append(("<%= escape_javascript(add_attribute 'form_link', f, :recruitment_links) %>").replace(old_id, new_id));
|
||
$(this).parent('.add-btn').prev('.add-target').children('.start-line').eq(le).children('.tab-content').children('.tab-pane').eq(on).addClass('in active').siblings().removeClass('in active');
|
||
formTip();
|
||
});
|
||
$(document).on('click', '#add_file', function(){
|
||
var new_id = $(this).prev().attr('value');
|
||
var old_id = new RegExp("new_recruitment_files", "g");
|
||
var on = $('.language-nav li.active').index();
|
||
var le = $(this).parent('.add-btn').prev('.add-target').children('.start-line').length;
|
||
$(this).prev().attr('value', parseInt(new_id) + 1);
|
||
$(this).parent().siblings('.add-target').append(("<%= escape_javascript(add_attribute 'form_file', f, :recruitment_files) %>").replace(old_id, new_id));
|
||
$(this).parent('.add-btn').prev('.add-target').children('.start-line').eq(le).children('.input-append').find('.tab-content').each(function() {
|
||
$(this).children('.tab-pane').eq(on).addClass('in active').siblings().removeClass('in active');
|
||
});
|
||
formTip();
|
||
});
|
||
$(document).on('click', '#add_carousel_image', function(){
|
||
var new_id = $(this).prev().attr('value');
|
||
var old_id = new RegExp("new_recruitment_carousel_images", "g");
|
||
var on = $('.language-nav li.active').index();
|
||
var le = $(this).parent('.add-btn').prev('.add-target').children('.start-line').length;
|
||
$(this).prev().attr('value', parseInt(new_id) + 1);
|
||
$(this).parent().siblings('.add-target').append(("<%= escape_javascript(add_attribute 'form_image', f, :recruitment_carousel_images) %>").replace(old_id, new_id));
|
||
$(this).parent('.add-btn').prev('.add-target').children('.start-line').eq(le).children('.input-append').find('.tab-content').each(function() {
|
||
$(this).children('.tab-pane').eq(on).addClass('in active').siblings().removeClass('in active');
|
||
});
|
||
});
|
||
$(document).on('click', '.fileupload-remove', function(){
|
||
if($(this).find(".delete_image").length != 0){
|
||
$(this).parents('.image_group').remove();
|
||
}
|
||
});
|
||
$(document).on('click', '.delete_link', function(){
|
||
$(this).parents('.input-prepend').remove();
|
||
});
|
||
$(document).on('click', '.delete_file', function(){
|
||
$(this).parents('.input-prepend').remove();
|
||
});
|
||
$(document).on('click', '.remove_existing_record', function(){
|
||
if(confirm("<%= I18n.t(:sure?)%>")){
|
||
$(this).children('.should_destroy').attr('value', 1);
|
||
$(this).parents('.start-line').hide();
|
||
}
|
||
});
|
||
|
||
$('#remind-check').prop('checked') ? '':$('.content-box').addClass('hide')
|
||
$('#remind-check').on('change', function() {
|
||
$(this).prop('checked') ? $('.content-box').removeClass('hide'):$('.content-box').addClass('hide')
|
||
})
|
||
|
||
$('#button_for_preview').click(function(){
|
||
var method = $('.main-forms input[name="_method"]').val();
|
||
$('.main-forms input[name="_method"]').val("post");
|
||
|
||
for ( instance in CKEDITOR.instances )
|
||
CKEDITOR.instances[instance].updateElement();
|
||
|
||
var formData = new FormData( $('.main-forms')[0] );
|
||
formData.append("preview_type", ( (method==undefined) ? "new" : "edit" ));
|
||
formData.append("recruitment_id", '<%= @recruitment.id.to_s %>');
|
||
|
||
$.ajax({
|
||
type: "post",
|
||
url: '<%= admin_recruitment_preview_path %>',
|
||
data : formData,
|
||
processData: false,
|
||
contentType: false
|
||
}).done(function(data){
|
||
if(window.location.protocol === "https:"){
|
||
data = data.replace("http:","https:");
|
||
}
|
||
$('.modal-body iframe').attr('src',data);
|
||
$('#show_preview .modal').modal();
|
||
$('#show_preview .modal').height(function() {
|
||
return $(window).height() * 0.7;
|
||
});
|
||
|
||
var slug = data.split('/')[(data.split('/').length-1)];
|
||
// $('#preview-iframe').on('load', function(){
|
||
// $.get('/admin/recruitment/destroy_preview/'+slug,function(data){
|
||
// });
|
||
// });
|
||
});
|
||
$('.main-forms input[name="_method"]').val(method);
|
||
return false;
|
||
});
|
||
|
||
$("#recruitment_is_top").parent().on("click",function(){
|
||
setTimeout(function(){
|
||
if($("#recruitment_is_top").parent().hasClass("active")){
|
||
$("div[data-for=is_top]").removeClass("hide");
|
||
}else{
|
||
$("div[data-for=is_top]").addClass("hide");
|
||
$("div[data-for=is_top]").find("input[type=text]").val("");
|
||
}
|
||
},100)
|
||
})
|
||
|
||
$("#recruitment_is_external_link").on("click",function(){
|
||
if($(this).is(":checked")){
|
||
$("#external_link_box").show();
|
||
}else{
|
||
$("#external_link_box").hide();
|
||
}
|
||
})
|
||
|
||
function init_file_sortable() {
|
||
var $container = $(".exist");
|
||
|
||
if ($container.data("ui-sortable")) {
|
||
$container.sortable("destroy");
|
||
}
|
||
|
||
$container.sortable({
|
||
items: ".file-sort-item",
|
||
handle: ".sort-order-icon, .file-link",
|
||
axis: "y",
|
||
placeholder: "ui-state-highlight",
|
||
forcePlaceholderSize: true,
|
||
update: function(event, ui) {
|
||
$(".file-sort-item").each(function(index) {
|
||
$(this).find("input.file-position").val(index);
|
||
});
|
||
}
|
||
});
|
||
}
|
||
|
||
init_file_sortable();
|
||
|
||
});
|
||
</script>
|