job form category and industry type forms added

This commit is contained in:
Harry Bomrah 2017-12-26 21:07:35 +08:00
parent e52310fab5
commit 713ac7f793
18 changed files with 332 additions and 9 deletions

View File

@ -1,4 +1,77 @@
class Admin::RecruitmentsController < OrbitAdminController class Admin::RecruitmentsController < OrbitAdminController
def index def index
end end
def industries
@industries = RecruitmentIndustry.all
end
def addindustry
@industry = RecruitmentIndustry.new
render :layout => false
end
def createindustry
industry = RecruitmentIndustry.create(industry_params)
redirect_to industries_admin_recruitments_path
end
def editindustry
@industry = RecruitmentIndustry.find(params[:id])
render :layout => false
end
def updateindustry
industry = RecruitmentIndustry.find(params[:id])
industry.update_attributes(industry_params)
redirect_to industries_admin_recruitments_path
end
def deleteindustry
industry = RecruitmentIndustry.find(params[:id])
industry.destroy
redirect_to industries_admin_recruitments_path
end
def categories
@categories = RecruitmentCategory.all
end
def addcategory
@category = RecruitmentCategory.new
render :layout => false
end
def createcategory
category = RecruitmentCategory.create(category_params)
redirect_to categories_admin_recruitments_path
end
def editcategory
@category = RecruitmentCategory.find(params[:id])
render :layout => false
end
def updatecategory
category = RecruitmentCategory.find(params[:id])
category.update_attributes(category_params)
redirect_to categories_admin_recruitments_path
end
def deletecategory
category = RecruitmentCategory.find(params[:id])
category.destroy
redirect_to categories_admin_recruitments_path
end
private
def industry_params
params.require(:recruitment_industry).permit!
end
def category_params
params.require(:recruitment_category).permit!
end
end end

View File

@ -104,7 +104,10 @@ class RecruitmentsController < PseudoSessionController
end end
def recruitment_job_params def recruitment_job_params
params.require(:recruitment_job).permit! par = params.require(:recruitment_job).permit!
par[:skills] = par[:skills].split(",") if par[:skills].present?
par[:skills].collect!{|sk| sk.strip}
par
end end
end end

View File

@ -14,6 +14,7 @@ class EmployerProfile
field :country_code field :country_code
field :phone_number field :phone_number
field :mobile_number field :mobile_number
field :industry
mount_uploader :avatar, ImageUploader mount_uploader :avatar, ImageUploader

View File

@ -0,0 +1,6 @@
class RecruitmentCategory
include Mongoid::Document
include Mongoid::Timestamps
field :job_category, localize: true
end

View File

@ -0,0 +1,6 @@
class RecruitmentIndustry
include Mongoid::Document
include Mongoid::Timestamps
field :industry_title, localize: true
end

View File

@ -19,7 +19,7 @@ class RecruitmentJob
field :work_experience_months, type: Integer field :work_experience_months, type: Integer
field :academic_requirement field :academic_requirement
field :language_requirement field :language_requirement
field :tools_requirement field :skills, type: Array, :default => []
field :category field :category
field :location_of_work field :location_of_work
field :industrial_area field :industrial_area

View File

@ -0,0 +1,14 @@
<%= form_for @category, :url => {:action => "createcategory"}, html: {:class => "form-horizontal", :id => "category_form"} do |f| %>
<form class="form-horizontal">
<% @site_in_use_locales.each do |locale| %>
<%= f.fields_for :job_category_translations do |fe| %>
<div class="control-group">
<%= fe.label locale, t("recruitment.job_category") + " (" + t("#{locale}") + ")", :class => "control-label" %>
<div class="controls">
<%= fe.text_field locale %>
</div>
</div>
<% end %>
<% end %>
</form>
<% end %>

View File

@ -0,0 +1,14 @@
<%= form_for @industry, :url => {:action => "createindustry"}, html: {:class => "form-horizontal", :id => "industry_form"} do |f| %>
<form class="form-horizontal">
<% @site_in_use_locales.each do |locale| %>
<%= f.fields_for :industry_title_translations do |fe| %>
<div class="control-group">
<%= fe.label locale, t("recruitment.industry_title") + " (" + t("#{locale}") + ")", :class => "control-label" %>
<div class="controls">
<%= fe.text_field locale %>
</div>
</div>
<% end %>
<% end %>
</form>
<% end %>

View File

@ -0,0 +1,61 @@
<span id="index_table">
<table class="table main-list">
<thead>
<tr class="sort-header">
<th>Title</th>
</tr>
</thead>
<tbody>
<% @categories.each do |category| %>
<tr>
<td>
<%= category.job_category_translations["en"] %> / <%= category.job_category_translations["zh_tw"] %>
<div class="quick-edit">
<ul class="nav nav-pills">
<li><a href="<%= editcategory_admin_recruitment_path(category) %>" class="categoryBtn"><%= t(:edit) %></a></li>
<li><a href="<%= deletecategory_admin_recruitment_path(category) %>" class="delete text-error" data-method="delete" data-confirm="Are you sure?"><%= t(:delete_) %></a></li>
</ul>
</div>
</td>
</tr>
<% end %>
</tbody>
</table>
</span>
<div class="bottomnav clearfix">
<div class="pull-right">
<a href="<%= addcategory_admin_recruitments_path %>" id="addIndustryBtn" class="btn btn-primary categoryBtn">Add Category</a>
</div>
</div>
<!-- Modal -->
<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="myModalLabel">Job Category</h3>
</div>
<div class="modal-body"></div>
<div class="modal-footer">
<button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
<button class="btn btn-primary" id="save-btn">Save</button>
</div>
</div>
<script type="text/javascript">
var modal = $("#myModal");
$(".categoryBtn").on("click",function(){
var url = $(this).attr("href");
$.ajax({
url : url,
type : "get",
dataType : "html"
}).done(function(html){
modal.find(".modal-body").html(html);
modal.modal("show");
})
return false;
})
$("#save-btn").on("click",function(){
$("#category_form").submit();
})
</script>

View File

@ -0,0 +1,14 @@
<%= form_for @category, :url => updatecategory_admin_recruitment_path(@category), html: {:class => "form-horizontal", :id => "category_form"} do |f| %>
<form class="form-horizontal">
<% @site_in_use_locales.each do |locale| %>
<%= f.fields_for :job_category_translations do |fe| %>
<div class="control-group">
<%= fe.label locale, t("recruitment.job_category") + " (" + t("#{locale}") + ")", :class => "control-label" %>
<div class="controls">
<%= fe.text_field locale, :value => @category.job_category_translations[locale.to_s] %>
</div>
</div>
<% end %>
<% end %>
</form>
<% end %>

View File

@ -0,0 +1,14 @@
<%= form_for @industry, :url => updateindustry_admin_recruitment_path(@industry), html: {:class => "form-horizontal", :id => "industry_form"} do |f| %>
<form class="form-horizontal">
<% @site_in_use_locales.each do |locale| %>
<%= f.fields_for :industry_title_translations do |fe| %>
<div class="control-group">
<%= fe.label locale, t("recruitment.industry_title") + " (" + t("#{locale}") + ")", :class => "control-label" %>
<div class="controls">
<%= fe.text_field locale, :value => @industry.industry_title_translations[locale.to_s] %>
</div>
</div>
<% end %>
<% end %>
</form>
<% end %>

View File

@ -0,0 +1,61 @@
<span id="index_table">
<table class="table main-list">
<thead>
<tr class="sort-header">
<th>Title</th>
</tr>
</thead>
<tbody>
<% @industries.each do |industry| %>
<tr>
<td>
<%= industry.industry_title_translations["en"] %> / <%= industry.industry_title_translations["zh_tw"] %>
<div class="quick-edit">
<ul class="nav nav-pills">
<li><a href="<%= editindustry_admin_recruitment_path(industry) %>" class="industryBtn"><%= t(:edit) %></a></li>
<li><a href="<%= deleteindustry_admin_recruitment_path(industry) %>" class="delete text-error" data-method="delete" data-confirm="Are you sure?"><%= t(:delete_) %></a></li>
</ul>
</div>
</td>
</tr>
<% end %>
</tbody>
</table>
</span>
<div class="bottomnav clearfix">
<div class="pull-right">
<a href="<%= addindustry_admin_recruitments_path %>" id="addIndustryBtn" class="btn btn-primary industryBtn">Add Industry</a>
</div>
</div>
<!-- Modal -->
<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="myModalLabel">Industry</h3>
</div>
<div class="modal-body"></div>
<div class="modal-footer">
<button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
<button class="btn btn-primary" id="save-btn">Save</button>
</div>
</div>
<script type="text/javascript">
var modal = $("#myModal");
$(".industryBtn").on("click",function(){
var url = $(this).attr("href");
$.ajax({
url : url,
type : "get",
dataType : "html"
}).done(function(html){
modal.find(".modal-body").html(html);
modal.modal("show");
})
return false;
})
$("#save-btn").on("click",function(){
$("#industry_form").submit();
})
</script>

View File

@ -63,11 +63,19 @@
</div> </div>
<%= f.fields_for :employer_profile do |fe| %> <%= f.fields_for :employer_profile do |fe| %>
<!-- Industry type -->
<div class="form-group">
<%= fe.label :industry, "Industry", :class => "col-sm-2 control-label" %>
<div class="col-sm-5">
<%= fe.select :industry, RecruitmentIndustry.all.collect{|ri| [ri.industry_title, ri.id.to_s]}, {:include_blank => "Select Industry"}, {:class => "form-control"} %>
</div>
</div>
<!-- Country --> <!-- Country -->
<div class="form-group"> <div class="form-group">
<%= fe.label :country, "Country", :class => "col-sm-2 control-label" %> <%= fe.label :country, "Country", :class => "col-sm-2 control-label" %>
<div class="col-sm-5"> <div class="col-sm-5">
<%= fe.select :country, MiscList.countries_for_select, :class => "form-control" %> <%= fe.select :country, MiscList.countries_for_select, {:include_blank => "Select Country"}, {:class => "form-control"} %>
</div> </div>
</div> </div>

View File

@ -60,6 +60,14 @@
</div> </div>
<% end %> <% end %>
<hr> <hr>
<!-- Job Category -->
<div class="form-group">
<%= f.label :category, "Category", :class => "col-sm-2 control-label" %>
<div class="col-sm-5">
<%= f.select :category, RecruitmentCategory.all.collect{|rc| [rc.job_category,rc.id.to_s]}, {:include_blank => "Select Category"},{:class => "form-control"} %>
</div>
</div>
<!-- salary type --> <!-- salary type -->
<div class="form-group"> <div class="form-group">
@ -212,9 +220,9 @@
<!-- Tools Req --> <!-- Tools Req -->
<div class="form-group"> <div class="form-group">
<%= f.label :tools_requirement, "Tools Requirement", :class => "col-sm-2 control-label" %> <%= f.label :tools_requirement, "Skills", :class => "col-sm-2 control-label" %>
<div class="col-sm-5"> <div class="col-sm-5">
<%= f.text_field :tools_requirement, :class => "form-control", :placeholder => "Seperate with (,) ex; Word, Excel" %> <%= f.text_field :skills, :class => "form-control", :placeholder => "Seperate with (,) ex; Word, Excel", :value => @job.skills.join(", ") %>
</div> </div>
</div> </div>
@ -222,6 +230,7 @@
<div class="col-sm-offset-2 col-sm-10"> <div class="col-sm-offset-2 col-sm-10">
<%= f.hidden_field :employer_profile_id, :value => @profile.profile.id %> <%= f.hidden_field :employer_profile_id, :value => @profile.profile.id %>
<%= f.submit "Submit", :class =>"btn btn-primary" %> <%= f.submit "Submit", :class =>"btn btn-primary" %>
<a href="<%= mydashboard_path %>" class="btn btn-default">Cancel</a>
</div> </div>
</div> </div>

View File

@ -5,4 +5,9 @@ en:
recruitment: Recruitment recruitment: Recruitment
select_a_profile: Please select a profile select_a_profile: Please select a profile
employee: Employee employee: Employee
employer: Employer employer: Employer
members: Members
industries: Industry Type
categories: Job Categories
industry_title: Industry Title
job_category: Job Category

View File

@ -5,4 +5,9 @@ zh_tw:
recruitment: Recruitment recruitment: Recruitment
select_a_profile: Please select a profile select_a_profile: Please select a profile
employee: Employee employee: Employee
employer: Employer employer: Employer
members: Members
industries: Industry Type
categories: Job Categories
industry_title: Industry Title
job_category: Job Category

View File

@ -4,6 +4,24 @@ Rails.application.routes.draw do
scope "(:locale)", locale: Regexp.new(locales.join("|")) do scope "(:locale)", locale: Regexp.new(locales.join("|")) do
namespace :admin do namespace :admin do
resources :recruitments do resources :recruitments do
collection do
get "industries"
get "categories"
get "addindustry"
post "createindustry"
get "addcategory"
post "createcategory"
end
member do
delete "deleteindustry"
get "editindustry"
patch "updateindustry"
delete "deletecategory"
get "editcategory"
patch "updatecategory"
end
end end
end end
scope "recruit" do scope "recruit" do

View File

@ -9,7 +9,7 @@ module Recruitment
set_keyword_contstraints ["/recruit/"] set_keyword_contstraints ["/recruit/"]
side_bar do side_bar do
head_label_i18n 'recruitment.recruitment', icon_class: "icons-briefcase" head_label_i18n 'recruitment.recruitment', icon_class: "icons-briefcase"
available_for "admin" available_for "managers"
active_for_controllers (['admin/recruitments']) active_for_controllers (['admin/recruitments'])
head_link_path "admin_recruitments_path" head_link_path "admin_recruitments_path"
@ -17,7 +17,18 @@ module Recruitment
:link_path=>"admin_recruitments_path" , :link_path=>"admin_recruitments_path" ,
:priority=>1, :priority=>1,
:active_for_action=>{'admin/recruitments'=>"index"}, :active_for_action=>{'admin/recruitments'=>"index"},
:available_for => 'admin' :available_for => 'managers'
context_link 'recruitment.industries',
:link_path=>"industries_admin_recruitments_path" ,
:priority=>1,
:active_for_action=>{'admin/recruitments'=>"industries"},
:available_for => 'managers'
context_link 'recruitment.categories',
:link_path=>"categories_admin_recruitments_path" ,
:priority=>1,
:active_for_action=>{'admin/recruitments'=>"categories"},
:available_for => 'managers'
end end
end end