Commit 92724316 by Ngo Trung Hung

fix bug

parent 4f3e97eb
$(document).ready(function () {
$(document).on("turbolinks:load", function(){
$('.btn_favorite_outline').click(function (e) {
$(this).toggleClass('active');
});
......
......@@ -7,7 +7,7 @@ body {
overflow: hidden;
}
$breakpoint-tablet: 922px;
$breakpoint-tablet: 992px;
$main-color: #221f20;
// Header
.cus_header {
......@@ -173,7 +173,7 @@ $main-color: #221f20;
position: fixed;
width: 100%;
height: 100%;
cursor: pointer;
display: none;
transition: 0.1s;
}
......@@ -230,14 +230,14 @@ $main-color: #221f20;
}
.slogan {
position: absolute;
top: 35%;
top: 32%;
left: 50%;
transform: translateX(-50%);
}
.slogan_text {
text-align: center;
font-family: sans-serif;
font-size: 30px;
font-size: 35px;
color: #eaeaea;
transform: scale(1.35);
font-weight: 600;
......@@ -303,7 +303,7 @@ $main-color: #221f20;
border: none;
padding-left: 16px;
color: #666;
font-size: 14px;
font-size: 15px;
}
}
......@@ -318,8 +318,7 @@ $main-color: #221f20;
outline: none;
background-color: #fff;
color: #666;
font-size: 14px;
// font-weight: bold;
font-size: 15px;
height: 100%;
width: 100%;
flex-basis: 90%;
......@@ -329,7 +328,7 @@ $main-color: #221f20;
flex-basis: 10%;
color: #999;
font-weight: 100;
transform: scale(1.2) translateY(13px);
transform: scale(1.2) translateY(16px);
}
&::before {
position: absolute;
......@@ -343,7 +342,7 @@ $main-color: #221f20;
}
}
.search_industries select{
padding: 12px 10px 12px 10px;
padding: 12px 10px 12px 5px;
width: 100%;
border-radius: 4px !important;
......@@ -369,8 +368,7 @@ $main-color: #221f20;
outline: none;
background-color: #fff;
color: #666;
font-size: 14px;
// font-weight: bold;
font-size: 15px;
height: 100%;
width: 100%;
flex-basis: 90%;
......@@ -380,7 +378,7 @@ $main-color: #221f20;
flex-basis: 10%;
color: #999;
font-weight: 100;
transform: scale(1.2) translateY(13px);
transform: scale(1.2) translateY(16px);
}
}
......@@ -563,6 +561,7 @@ $main-color: #221f20;
}
.slogan_text_h5 {
display: block;
font-size: 25px;
}
.box-search-mobile {
display: block;
......@@ -590,7 +589,7 @@ $main-color: #221f20;
height: 160px;
}
.slogan_text_h5 {
font-size: 16px;
font-size: 24px;
font-weight: 600;
}
}
......@@ -615,7 +614,7 @@ $main-color: #221f20;
.box_jobs {
position: relative;
width: 100%;
height: 130px;
height: 134px;
margin: auto;
margin-top: 10px;
margin-bottom: 5px;
......@@ -639,7 +638,7 @@ $main-color: #221f20;
transform: translateY(-1px);
}
.job_name {
font-size: 14px;
font-size: 16px;
line-height: 14px;
font-weight: 600;
color: #d41323;
......@@ -650,9 +649,13 @@ $main-color: #221f20;
text-decoration: none;
}
}
.cop {
background-color: white;
margin-top: -5px;
}
.box_info_copany_name {
font-size: 12.5px;
line-height: 12.5px;
font-size: 14px;
line-height: 20px;
color: #666;
margin-top: 5px;
......@@ -667,12 +670,12 @@ $main-color: #221f20;
-webkit-box-orient: vertical;
}
.box_info_location {
font-size: 11px;
font-size: 13px;
color: #666;
margin-top: 5px;
}
.box_info_salary {
font-size: 11px;
font-size: 13px;
color: #008563;
font-weight: 600;
transform: translateY(-2px);
......@@ -684,7 +687,7 @@ $main-color: #221f20;
// background-color: #d41323;
}
.coc {
height: 12px;
height: 12.5px;
width:100%;
overflow: hidden;
text-overflow: ellipsis;
......@@ -695,8 +698,8 @@ $main-color: #221f20;
}
.box_info_des {
width: 100%;
font-size: 11px;
line-height: 12px;
font-size: 12.5px;
line-height: 12.5px;
color: #888;
margin: 0;
}
......@@ -735,7 +738,11 @@ $main-color: #221f20;
.btn_favorite_outline.xs {
display: none;
}
@media only screen and (min-width: $breakpoint-tablet) {
.btn_search_submit {
width: 101%;
}
}
@media only screen and (max-width: $breakpoint-tablet) {
// index
.padding_index {
......@@ -784,6 +791,7 @@ $main-color: #221f20;
font-size: 17px;
}
}
}
@media only screen and (max-width: 660px) {
......@@ -798,11 +806,32 @@ $main-color: #221f20;
display: block;
z-index: 200;
}
.cop {
width: 85%;
height: 24px;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
background-color: white;
}
.btn_search_submit {
height: 30px;
}
.search_industries_mobile {
padding-right: 4px;
}
.search_location_mobile {
padding-right: 4px;
}
}
@media only screen and (max-width: 576px) {
.lol {
width: 80%;
}
}
......@@ -3,9 +3,9 @@ class Company < ApplicationRecord
def self.get_5_last_jobs
data = Company.joins(:jobs).select('companies.*, jobs.name as job_title,
jobs.create_date as job_created,
jobs.created_at as job_created,
jobs.salary,
jobs.description').where('companies.id = jobs.company_id')
@data_five_jobs = data.order(job_created: :desc).limit(5)
@data_five_jobs = data.order(job_created: :asc).limit(5)
end
end
......@@ -131,7 +131,7 @@
</div>
<div class="container">
<div class="row no-gutters">
<div class="offset-6 col-sm-6">
<div class="col-sm-12">
<button type="submit" class="btn_search_submit">
<i class="fas fa-search"></i>
Tìm việc
......
......@@ -18,7 +18,9 @@
<%= link_to "#{val.job_title}", "#", class: "job_name" %>
<%= image_tag 'trophy',class: "img_job_name" %>
</div>
<div class = "cop">
<h5 class="box_info_copany_name"><i class="far fa-building"></i> <%= val.name %></h5>
</div>
<h5 class="box_info_location"><i class="fas fa-map-marker-alt"></i> <%= val.address %></h5>
<h5 class="box_info_salary"><i class="fas fa-dollar-sign"></i> Lương: <%= val.salary %></h5>
<div class="coc" >
......
......@@ -21,10 +21,9 @@ class Interface_web
data << website_companies << website_jobs
end
@crawl_link_for_companies_jobs = crawl_link_for_companies_jobs(10)
@crawl_link_for_companies_jobs = crawl_link_for_companies_jobs(7)
def self.get_link_job_and_companies
@crawl_link_for_companies_jobs ||= crawl_link_for_companies_jobs(10)
@crawl_link_for_companies_jobs ||= crawl_link_for_companies_jobs(7)
end
def self.base_link(url)
......@@ -69,16 +68,25 @@ class Interface_web
@data_companies
end
add_data = proc do
def self.add_data
@data[:name] = @name
@data[:company_name] = @company_name
@data[:city_name] = @city_name
@data[:created_date] = @created_date
@data[:expiration_date] = @expiration_date
@data[:salary] = @salary
@data[:industry_name] = @industry_name
@data[:description] = @description
@data[:level] = @level
@data[:exprience] = @exprience
end
def self.crawl_data_jobs_interface_1(url)
page = base_link(url)
@name << page.search(".apply-now-content .job-desc .title").text
@data[:name] = @name
@company_name << page.search(".apply-now-content .job-desc .job-company-name").text
@data[:company_name] = @company_name
location = []
length = page.search(".detail-box .map p a").size
......@@ -87,24 +95,18 @@ class Interface_web
end
@city_name << location.join(',')
location.clear
@data[:city_name] = @city_name
@created_date << page.search(".item-blue .detail-box:nth-child(1) ul li:nth-child(1) p")[0].text
@data[:created_date] = @created_date
@expiration_date << page.search(".item-blue .detail-box ul li:last")[1].text.delete!("[\n,\t,\r]").split(' ').last
@data[:expiration_date] = @expiration_date
@salary << page.search(".item-blue .detail-box:nth-child(1) ul li:nth-child(1) p")[1].text
@data[:salary] = @salary
industry_name = page.search(".item-blue .detail-box:nth-child(1) ul li:nth-child(2) a").text
industry_name = industry_name.delete!("[\n,\t,\r]").split(' ').select { |v| v != ''}
@industry_name << industry_name.join(',')
@data[:industry_name] = @industry_name
@description << page.search(".tabs .tab-content .detail-row:nth-child(n)").to_s.delete!("[\n,\t,\r]")
@data[:description] = @description
get_level = page.search(".item-blue .detail-box:last ul li:nth-child(3)").text.delete!("[\n,\t,\r]").lstrip.split('Cấp bậc')
get_level = get_level[1].to_s.strip
......@@ -115,23 +117,20 @@ class Interface_web
level = page.search(".item-blue .detail-box:last ul li:nth-child(3)").text.delete!("[\n,\t,\r]").lstrip.split('Cấp bậc')
@level << level[1].to_s.strip
end
@data[:level] = @level
exprience = page.search(".item-blue .detail-box:last ul li:nth-child(2)").text.delete!("[\n,\t,\r]").split('Kinh nghiệm')
exprience = exprience[1].to_s.strip
@exprience << exprience
@data[:exprience] = @exprience
add_data()
end
def self.crawl_data_jobs_interface_2(url)
page = base_link(url)
# page = Nokogiri::HTML(URI.open(URI.parse(URI.escape("https://careerbuilder.vn/vi/tim-viec-lam/dai-dien-tieu-thu-sales-representative-quang-binh-tp-dong-hoi.35B4572F.html"))))
@name << page.search(".apply-now-content .job-desc .title").text
@data[:name] = @name
@name << page.search(".apply-now-content .job-desc .title").text
@company_name << page.search(".top-job .top-job-info .tit_company").text
@data[:company_name] = @company_name
location = []
length = page.search(".info-workplace .value a").size
......@@ -140,71 +139,68 @@ class Interface_web
end
@city_name << location.join(',')
location.clear
@data[:city_name] = @city_name
# @city_name << page.search(".info-workplace .value a").text
@created_date << ""
@data[:created_date] =@created_date
expiration_date = page.search(".info li:nth-child(4)").text
if expiration_date == ""
@expiration_date << ""
else
@expiration_date << expiration_date.to_s.delete!("[\n,\t,\r]").split(' ').last
@data[:expiration_date] = @expiration_date
end
@salary << page.search(".info li:nth-child(3)").text.split("Lương").last.strip
@data[:salary] = @salary
@industry_name << page.search(".info li:nth-child(5) .value").text
@data[:industry_name] = @industry_name
@description << page.search(".left-col").to_s.delete!("[\n,\t,\r]")
@data[:description] = @description
@level << page.search(".boxtp .info li:nth-child(2)").text.delete!("[\n,\t,\r]").lstrip.split('Cấp bậc').last.strip
@data[:level] = @level
lv = page.search(".boxtp .info li:nth-child(2)").text
if lv == ""
@level << ""
else
@level << lv.delete!("[\n,\t,\r]").strip.split('Cấp bậc').last.strip
end
@exprience << page.search(".info li:nth-child(6)").text.delete!("[\n,\t,\r]").split('Kinh nghiệm').last.strip
@data[:exprience] = @exprience
exp = page.search(".info li:nth-child(6)").text
if exp == ""
@exprience << ""
else
@exprience << exp.delete!("[\n,\t,\r]").split('Kinh nghiệm').last.strip
end
add_data()
end
def self.crawl_data_jobs_interface_3(url)
page = base_link(url)
@name << page.search(".intro_job h1").text
@data[:name] = @name
@company_name << page.search(".info-company .text-job h2").text
@data[:company_name] = @company_name
@city_name << page.search(".DetailJobNew ul li:nth-child(1) a").text
@data[:city_name] = @city_name
@created_date << ""
@data[:created_date] = @created_date
@expiration_date << page.search(".DetailJobNew .info ul li:nth-child(3) p").text.strip
@data[:expiration_date] = @expiration_date
@salary << page.search(".DetailJobNew .salary ul li:nth-child(3) p").text.strip
@data[:salary] = @salary
@industry_name << page.search(".DetailJobNew .salary ul li:nth-child(2) p").text.strip
@data[:industry_name] = @industry_name
@description << page.search(".content_job .detail-row").to_s.delete!("[\n,\t,\r]")
@data[:description] = @description
@level << page.search(".DetailJobNew .info ul li:nth-child(2) p").text.strip
@data[:level] = @level
@exprience << page.search(".DetailJobNew .info ul li:nth-child(1) p").text.strip
@data[:exprience] = @exprience
add_data()
end
def self.crawl_data_jobs_interface_4(url)
page = base_link(url)
@name << page.search(".info-company h1").text
@data[:name] = @name
if page.search(".zone-company .text-job h2").text == ""
@company_name << page.search(".info-company .text-job h2").text
......@@ -216,62 +212,46 @@ class Interface_web
@industry_name << industry_name.delete!("[\n,\t,\r]").split(' ').select { |v| v != ''}
end
@data[:company_name] = @company_name
@data[:industry_name] = @industry_name
@city_name << page.search(".DetailJobNew ul li:nth-child(1) a").text
@data[:city_name] = @city_name
@created_date << ""
@data[:created_date] = @created_date
@expiration_date << page.search(".DetailJobNew li:nth-child(7) span").text
@data[:expiration_date] = @expiration_date
@salary << page.search(".DetailJobNew li:nth-child(6) span").text
@data[:salary] = @salary
@description << page.search(".left-col").to_s.delete!("[\n,\t,\r]")
@data[:description] = @description
@level << page.search(".DetailJobNew ul li:nth-child(2) span").text
@data[:level] = @level
@exprience << ""
@data[:exprience] = @exprience
add_data()
end
def self.crawl_data_jobs_interface_5(url)
page = base_link(url)
@name << page.search(".info-company h1").text
@data[:name] = @name
@company_name << page.search(".info-company .text-job h2").text
@data[:company_name] = @company_name
@city_name << page.search(".DetailJobNew ul li:nth-child(1) a").text
@data[:city_name] = @city_name
@created_date << ""
@data[:created_date] = @created_date
@expiration_date << page.search(".DetailJobNew li:nth-child(9) span").text.strip
@data[:expiration_date] = @expiration_date
@salary << page.search(".DetailJobNew li:nth-child(3) span").text.strip
@data[:salary] = @salary
@industry_name << page.search(".DetailJobNew li:nth-child(2) span").text.strip
@data[:industry_name] = @industry_name
@description << page.search(".left-col .detail-row").to_s.delete!("[\n,\t,\r]")
@data[:description] = @description
@level << page.search(".DetailJobNew ul li:nth-child(6) span").text.strip
@data[:level] = @level
@exprience << page.search(".DetailJobNew li:nth-child(5) span").text.strip
@data[:exprience] = @exprience
add_data()
end
def self.make_data
......@@ -292,16 +272,14 @@ class Interface_web
page = Nokogiri::HTML(URI.open(URI.parse(URI.escape("https://careerbuilder.vn/#{path}"))))
if page.search(".item-blue .detail-box:nth-child(1) ul li:nth-child(1) p")[0] != nil
crawl_data_jobs_interface_1(path)
elsif page.search(".info li:nth-child(6)").text != ""
crawl_data_jobs_interface_2(path)
elsif page.search(".DetailJobNew ul li").size == 10
crawl_data_jobs_interface_5(path)
# elsif page.search(".DetailJobNew ul li").size == 8
# crawl_data_jobs_interface_4(path)
else
crawl_data_jobs_interface_3(path)
end
end
@data
end
end
# elsif page.search(".info li").text != ""
# crawl_data_jobs_interface_2(path)
# else # insert "page.search(".DetailJobNew ul li").size == 8" (if want catch interface 4)
# crawl_data_jobs_interface_3(path)
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment