Commit 476404b3 by Son Do Hong

Merge branch 'feature/job_detail' into 'master'

job_detail

See merge request !10
parents 4ba0a1de adcb38b3
class JobsController < ApplicationController class JobsController < ApplicationController
def index def index
if params[:city_id].present? if params[:city_id].present?
@jobs = City.find_by(id: params[:city_id]).jobs @jobs = City.find_by(id: params[:city_id]).jobs
...@@ -11,4 +10,8 @@ class JobsController < ApplicationController ...@@ -11,4 +10,8 @@ class JobsController < ApplicationController
@jobs = @jobs.page(params[:page]).per(Settings.all.job.limit) @jobs = @jobs.page(params[:page]).per(Settings.all.job.limit)
end end
def show
@job = Job.find_by(id: params[:job_id])
end
end end
class Job < ApplicationRecord class Job < ApplicationRecord
has_many :user_jobs has_many :user_jobs
has_many :city_jobs has_many :city_jobs
has_many :industry_jobs
has_many :cities, through: :city_jobs
has_many :industries, through: :industry_jobs
def self.latest_jobs def self.latest_jobs
@latest ||= order(created_at: :desc).take(Settings.top.job.limit) @latest ||= order(created_at: :desc).take(Settings.top.job.limit)
......
<div class="container"> <div class="container">
<div class="row justify-content-md-center"> <div class="row justify-content-md-center">
<div class="col text-center"> <div class="col text-center">
<%= link_to "#{city.name} (#{city.jobs_count})", city_jobs_path(city) %> <%= link_to "#{city.name} (#{city.jobs_count})", city_jobs_path(city.id) %>
</div> </div>
</div> </div>
</div> </div>
<div class="center jumbotron">
<head>
<title><%= yield(:title) %> Venjob</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
</div>
<!--Display regions list--> <!--Display regions list-->
<div class="area-title-wrapper"> <div class="area-title-wrapper">
<h3>City List</h3> <h3>City List</h3>
......
<div class="container"> <div class="container">
<div class="row justify-content-md-center"> <div class="row justify-content-md-center">
<div class="col text-center"> <div class="col text-center">
<%= link_to "#{industry.name} (#{industry.jobs_count})", industry_jobs_path(industry) %> <%= link_to "#{industry.name} (#{industry.jobs_count})", industry_jobs_path(industry.id) %>
</div> </div>
</div> </div>
</div> </div>
<div class="center jumbotron">
<head>
<title><%= yield(:title) %> Venjob</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
</div>
</br>
<!--Display industries list--> <!--Display industries list-->
<div class="area-title-wrapper"> <div class="area-title-wrapper">
<h3>Industry List</h3> <h3>Industry List</h3>
......
<dl class="row">
<dt class="col-sm-3">Job Title:</dt>
<dd class="col-sm-9">
<%= link_to (simple_format job.title), job_path(job_id: job.id) %>
</dd>
<dt class="col-sm-3">Position:</dt>
<dd class="col-sm-9">
<%= job.position%>
</dd>
<dt class="col-sm-3">Salary:</dt>
<dd class="col-sm-9"><%= job.salary %></dd>
<dt class="col-sm-3 text-truncate">Description:</dt>
<dd class="col-sm-9">
<%= truncate(simple_format(job.description), escape: false, length: 250) %>
</dd>
<dt class="col-sm-3">Requirement:</dt>
<dd class="col-sm-9">
<%= truncate(simple_format(job.requirement),escape: false, length: 200) %>
</dd>
</dl>
<div class="jobs-list">
<div class="row row-cols">
<div class="col">
<h4><b>Title:</b></h4> <%= simple_format jobs_list.title %>
</div>
<div class="col">
<h4><b>Salary:</b></h4> <%= jobs_list.salary%>
</div>
<div class="col">
<h4><b>Level:</b></h4> <%= simple_format jobs_list.position %>
</div>
</div>
<div class="row row-cols">
<div class="col">
<h4><b>Description:</b></h4>
<%= truncate(simple_format(jobs_list.description), escape: false, length: 250) %>
</div>
</div>
<div class="row row-cols">
<div class="col">
<h4> <b>Requirement:</b></h4>
<%= ( simple_format jobs_list.requirement) %>
</div>
</div>
</br>
</div>
<div class="center jumbotron">
<head>
<title><%= yield(:title) %> Venjob</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
</div>
<!--Display all jobs --> <!--Display all jobs -->
<div class="all jobs"> <div class="all jobs">
<div class="job-title-wrapper"> <div class="job-title-wrapper">
...@@ -13,7 +6,7 @@ ...@@ -13,7 +6,7 @@
<%= paginate @jobs %> <%= paginate @jobs %>
<div class="row row-cols-1"> <div class="row row-cols-1">
<div class="job-content-wrapper"> <div class="job-content-wrapper">
<%= render partial: "jobs/jobs_list", collection: @jobs %> <%= render partial: "jobs/job", collection: @jobs %>
</div> </div>
</div> </div>
<%= paginate @jobs %> <%= paginate @jobs %>
<!--links menu-->
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item">
<%= link_to "TOP", top_index_path %>
</li>
<li class="breadcrumb-item">
<%= link_to "City", cities_path %>
</li>
<li class="breadcrumb-item">
<%= link_to "Industry", industries_path %>
</li>
<li class="breadcrumb-item active" aria-current="page">Current Job</li>
</ol>
</nav>
<!--Display detail of jobs-->
<div class="row row-cols-1">
<div class="job-content-wrapper">
<dl class="row">
<dt class="col-sm-3">Job Title:</dt>
<dd class="col-sm-9"><%= @job.title %></dd>
<dt class="col-sm-3">Position:</dt>
<dd class="col-sm-9">
<%= @job.position %>
</dd>
<dt class="col-sm-3">City:</dt>
<dd class="col-sm-9">
<% @job.cities.each do |city| %>
<%= link_to city.name, city_jobs_path(city) %>
<% end %>
</dd>
<dt class="col-sm-3">Industry:</dt>
<dd class="col-sm-9">
<% @job.industries.each do |industry| %>
<%= link_to industry.name, industry_jobs_path(industry) %>
<% end %>
</dd>
<dt class="col-sm-3">Salary:</dt>
<dd class="col-sm-9"><%= @job.salary %></dd>
<dt class="col-sm-3 text-truncate">Description:</dt>
<dd class="col-sm-9"><%= ( simple_format @job.description) %></dd>
<dt class="col-sm-3">Requirement:</dt>
<dd class="col-sm-9"><%= simple_format @job.requirement %></dd>
</dl>
</div>
</div
<div class="center jumbotron">
<head>
<title><%= yield(:title) %> Venjob</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<div class="text-center">
<h4>Total Jobs:<%= Job.count %></h4>
</div>
</head>
</div>
<!-- List of latest jobs--> <!-- List of latest jobs-->
<div class="Job list"> <div class="Job list">
<div class="Job-title-wrapper"> <div class="Job-title-wrapper">
......
...@@ -20,10 +20,11 @@ Rails.application.routes.draw do ...@@ -20,10 +20,11 @@ Rails.application.routes.draw do
get "jobs/city/:city_id", to: "jobs#index", as: "city_jobs" get "jobs/city/:city_id", to: "jobs#index", as: "city_jobs"
get "jobs/industry/:industry_id", to: "jobs#index", as: "industry_jobs" get "jobs/industry/:industry_id", to: "jobs#index", as: "industry_jobs"
get "detail/:job_id", to: "jobs#show", as: "job"
concern :paginatable do concern :paginatable do
get "(page/:page)", action: :index, on: :collection, as: "" get "(page/:page)", action: :index, on: :collection, as: ""
end end
resources :jobs, only: :index, concerns: :paginatable resources :jobs, only: :show, concerns: :paginatable
end end
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