Commit 0cb127f4 by Mai Hoang Thai Ha

new UI

parent cb090628
......@@ -69,4 +69,4 @@ gem 'rsolr', '~> 2.3'
gem 'rsolr-ext', '~> 1.0', '>= 1.0.3'
gem 'font-awesome-rails', '~> 4.7', '>= 4.7.0.7'
gem 'bootstrap', '~> 4.4.1'
gem 'jquery-rails'
\ No newline at end of file
gem 'jquery-rails', '~> 4.4'
......@@ -333,7 +333,7 @@ DEPENDENCIES
font-awesome-rails (~> 4.7, >= 4.7.0.7)
httparty (~> 0.18.1)
jbuilder (~> 2.7)
jquery-rails
jquery-rails (~> 4.4)
kaminari!
listen (~> 3.3)
mysql2 (~> 0.5)
......
@import "bootstrap";
@import "font-awesome";
@import "./scss/style.scss";
/*
* This is a manifest file that'll be compiled into application.css, which will include all the files
* listed below.
......@@ -12,11 +15,6 @@
*=
*= require top
*= require_self
*= require_tree .
*= require font-awesome
*/
@import "bootstrap";
@import "font-awesome";
@import "./scss/style.scss";
@import "./applies.scss"
\ No newline at end of file
*/
\ No newline at end of file
// Top page
// search
// banner
.banner {
background-image: url('banner.jpg');
min-height: 200px;
background-repeat: no-repeat;
background-size: cover;
}
// latest-job
.latest-job {
.job-item {
font-size: 14px;
.job-title {
text-decoration: none;
color: black;
font-size: 20px;
font-weight: 500;
}
.job-caption {
line-height: 18px;
.job-company {
text-decoration: none;
font-size: 14px;
color: #495057;
}
.job-salary {
color: #008563;
margin: 0;
}
.job-locations {
ul {
list-style: none;
margin: 0 0 6px 0;
padding: 0;
color: #495057;
}
}
.job-desc {
overflow: hidden;
text-overflow: ellipsis;
line-height: 18px;
-webkit-line-clamp: 2;
max-height: 36px;
display: -webkit-box;
-webkit-box-orient: vertical;
}
}
}
}
// top_cities
.top_cities {
.city-item {
margin-bottom: 12px;
a {
font-size: 18px;
text-decoration: none;
color: #287ab9;
margin: 10px 0;
}
}
.all-cities-btn {
color: #287ab9;
font-size: 20px;
text-decoration: none;
}
.all-cities-btn:hover {
text-decoration: underline;
}
}
// top_industries
.top_industries {
.industry-item {
margin-bottom: 12px;
a {
font-size: 18px;
text-decoration: none;
color: #287ab9;
margin: 10px 0;
}
}
.all-industries-btn {
color: #287ab9;
font-size: 20px;
text-decoration: none;
}
.all-industries-btn:hover {
text-decoration: underline;
}
}
- provide(:title, 'User Apply Jobs')
.page-heading-section.section.bg-parallax[data-bg-image="assets/images/bg/bg-1.jpg" data-overlay="50"]
.container
.page-heading-content.text-center
h3.title
| APPlIED JOBS
ol.breadcrumb
li.breadcrumb-item
= link_to 'Home', root_path
li.breadcrumb-item.active
| APPlIED JOBS
= render 'shared/page_heading', title: 'APPlIED JOBS', url: apply_jobs_path
.section.section-padding
.container
......
- provide(:title, 'Cities')
= render 'shared/page_heading', title: 'Cities', url: cities_path
/region
.page-heading-section.section.bg-parallax[data-bg-image="assets/images/bg/bg-1.jpg" data-overlay="50"]
.container
.page-heading-content.text-center
h3.title
| CITIES
ol.breadcrumb
li.breadcrumb-item
= link_to 'Home', root_path
li.breadcrumb-item.active
| CITIES
.section.section-padding
.container
.countries-list
......
- provide(:title, 'History page')
.page-heading-section.section.bg-parallax[data-bg-image="assets/images/bg/bg-1.jpg" data-overlay="50"]
.container
.page-heading-content.text-center
h3.title
| FAVORITE
ol.breadcrumb
li.breadcrumb-item
= link_to 'Home', root_path
li.breadcrumb-item.active
| FAVORITE
= render 'shared/page_heading', title: 'FAVORITE', url: favorite_jobs_path
- if @favorite_jobs.empty?
.section.section-padding
.container
.container.text-center
h2 You have not applied for any job yet
= link_to 'See more jobs', jobs_path, class: 'btn btn-primary'
= link_to 'See more jobs', jobs_path, class: 'btn btn-primary m-3'
- else
= render partial: 'shared/jobs_list_index', object: @favorite_jobs, as: 'jobs'
- provide(:title, 'History page')
.page-heading-section.section.bg-parallax[data-bg-image="assets/images/bg/bg-1.jpg" data-overlay="50"]
.container
.page-heading-content.text-center
h3.title
| HISTORY
ol.breadcrumb
li.breadcrumb-item
= link_to 'Home', root_path
li.breadcrumb-item.active
| HISTORY
= render 'shared/page_heading', title: 'HISTORY', url: history_jobs_path
- if @history_jobs.empty?
.section.section-padding
.container
.container.text-center
h2 No jobs in your history
- else
= render partial: 'shared/jobs_list_index', object: @history_jobs, as: 'jobs'
.page-heading-section.section.bg-parallax[data-bg-image="assets/images/bg/bg-1.jpg" data-overlay="50"]
.container
.page-heading-content.text-center
h3.title
| INDUSTRIES
ol.breadcrumb
li.breadcrumb-item
= link_to 'Home', root_path
li.breadcrumb-item.active
| INDUSTRIES
- provide(:title, 'Industries')
= render 'shared/page_heading', title: 'INDUSTRIES', url: industries_path
.section.section-padding
.container
......
- provide(:title, 'Job list page')
/ search box
= render 'shared/page_heading', title: 'Jobs', url: jobs_path, name: @name
.page-heading-section.section.bg-parallax[data-bg-image="assets/images/bg/bg-1.jpg" data-overlay="50"]
.container
.page-heading-content.text-center
h3.title
| Browse Jobs
ol.breadcrumb
li.breadcrumb-item
= link_to 'Home', root_path
li.breadcrumb-item.active
= link_to 'Jobs', jobs_path
- if params[:city_slug] || params[:industry_slug]
li.breadcrumb-item.active
= @name
/ .page-heading-section.section.bg-parallax[data-bg-image="assets/images/bg/bg-1.jpg" data-overlay="50"]
/ .container
/ .page-heading-content.text-center
/ h3.title
/ | Browse Jobs
/ ol.breadcrumb
/ li.breadcrumb-item
/ = link_to 'Home', root_path
/ li.breadcrumb-item.active
/ = link_to 'Jobs', jobs_path
/ - if params[:city_slug] || params[:industry_slug]
/ li.breadcrumb-item.active
/ = @name
= render 'shared/search'
.section.section-padding
......
......@@ -6,7 +6,5 @@ div id="favorite-#{job_id}"
i.fa.fa-heart-o.mr-1
| Favorite
/ a.d-block.btn.btn-outline-secondary[href="#"]
/ i.fa.fa-heart-o.mr-1
/ | Save Job
\ No newline at end of file
/ = form_with(model: @favorite_job, url: favorite_jobs_path(job_id: job_id), id: "favorite-#{job_id}", remote: true) do |f|
/ = f.submit 'Favorite', class: 'd-block btn btn-outline-secondary'
.page-heading-section.section.bg-parallax[data-bg-image="assets/images/bg/bg-1.jpg" data-overlay="50"]
.page-heading-section.section.bg-parallax[data-bg-image="assets/banner-4.jpg" data-overlay="50"]
.container
.page-heading-content.text-center
h3.title
......@@ -7,4 +7,7 @@
li.breadcrumb-item
= link_to 'Home', root_path
li.breadcrumb-item.active
= title
\ No newline at end of file
= link_to title, url
- if params[:city_slug] || params[:industry_slug]
li.breadcrumb-item.active
= name
\ No newline at end of file
......@@ -4,3 +4,5 @@ div id="unfavorite-#{job_id}"
remote: true,
class: 'btn btn-secondary'
| UnFavorite
/ = form_with(model: @favorite_job, url: favorite_job_path(current_user, job_id: job_id), id: "unfavorite-#{job_id}", method: :delete, remote: true) do |f|
/ = f.submit 'UnFavorite', class: 'btn btn-secondary'
......@@ -2,7 +2,7 @@
/ banner
.slider-section.section
.slide-item.bg-parallax[data-bg-image="assets/images/slider/slider-1.jpg" data-overlay="50"]
.slide-item.bg-parallax[data-bg-image="assets/banner-1" data-overlay="50"]
.container
.slider-content.text-center
h2.title
......@@ -49,7 +49,7 @@
= link_to 'View All Jobs', jobs_path , class: 'btn btn-primary'
/ count
.section.section-padding.bg-parallax[data-bg-image="assets/images/bg/bg-1.jpg" data-overlay="50"]
.section.section-padding.bg-parallax[data-bg-image="assets/banner-2.jpg" data-overlay="50"]
.container
.funfact-wrap.row
.funfact.col-md-3.col-sm-6.col-12
......@@ -96,36 +96,36 @@
= link_to 'See all industries', industries_path, class:'btn btn-primary'
/ quotes
.section.section-padding.bg-parallax[data-bg-image="assets/images/bg/bg-2.jpg" data-overlay="65"]
.section.section-padding.bg-parallax[data-bg-image="assets/banner-3.jpg" data-overlay="65"]
.container
.testimonial-slider.row
.col
.testimonial.text-center.text-white
p
| Lorem, ipsum dolor sit amet consectetur adipisicing elit. Obcaecati, modi sed praesentium necessitatibus tenetur neque, veritatis esse voluptatem
img[src="assets/images/authors/author-1.jpg" alt=""]
= image_tag('avt')
h6.name
| Sharon Harper
| Ha Mai
span.title
| Marketer of Hastech
| Marketer of VeNJob
.col
.testimonial.text-center.text-white
p
| Lorem, ipsum dolor sit amet consectetur adipisicing elit. Obcaecati, modi sed praesentium necessitatibus tenetur neque, veritatis esse voluptatem
img[src="assets/images/authors/author-2.jpg" alt=""]
= image_tag('avt')
h6.name
| Harold McCoy
| Ha Mai
span.title
| CEO of Hastech
| CEO of VeNJob
.col
.testimonial.text-center.text-white
p
| Lorem, ipsum dolor sit amet consectetur adipisicing elit. Obcaecati, modi sed praesentium necessitatibus tenetur neque, veritatis esse voluptatem
img[src="assets/images/authors/author-3.jpg" alt=""]
= image_tag('avt')
h6.name
| Ronald Wright
| Ha Mai
span.title
| Admin of Hastech
| Admin of VeNJob
/ cities
......
- provide(:title, 'Resend confirmation instructions')
= render 'shared/page_heading', title: 'Resend'
= render 'shared/page_heading', title: 'Resend', url: new_user_confirmation_path
.section.section-padding
.container
......
- provide(:title, 'Forgot password')
= render 'shared/page_heading', title: 'Forgot password'
= render 'shared/page_heading', title: 'Forgot password', ulr: forgot_password_path
.section.section-padding
.container
......
- provide(:title, 'Edit profile')
.container
.row.justify-content-center
.col-8
h2.text-center.my-5
| Edit
= resource_name.to_s.humanize
= form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |f|
= render 'users/shared/error_messages', resource: resource
.field.row.mb-2.form-group
.col-3
= f.label :email, class: 'form-label'
.col-9
= f.email_field :email, autofocus: true, autocomplete: 'email', class: 'form-control mb-2'
span.form-msg
.field.row.mb-2.form-group
- if devise_mapping.confirmable? && resource.pending_reconfirmation?
div
| Currently waiting confirmation for:
= resource.unconfirmed_email
.field.row.mb-2.form-group
.col-3
= f.label :name, class: 'form-label'
.col-9
= f.text_field :name, autofocus: true, autocomplete: 'name', class: 'form-control mb-2'
span.form-msg
.field.row.mb-2.form-group
.col-3
= f.label :address, class: 'form-label'
.col-9
= f.text_field :address, autofocus: true, autocomplete: 'address', class: 'form-control mb-2'
span.form-msg
.field.row.mb-2.form-group
.col-3
= f.label :phone, class: 'form-label'
.col-9
= f.text_field :phone, autofocus: true, autocomplete: 'phone', class: 'form-control mb-2'
span.form-msg
.field.row.mb-2.form-group
.col-3
= f.label :cv, class: 'form-label'
.col-9
= f.file_field :cv, accept: ApplyJob::ACCEPT_CONTENT_TYPE, class: 'form-control', direct_upload: true
= render 'shared/page_heading', title: "Edit #{resource_name.to_s.humanize}", url: login_path
.row.my-4.justify-content-end
.col-9
hr
p
|(leave password blank if you don't want to change it)
.field.row.mb-2.form-group
.col-3
= f.label :password, class: 'form-label'
.col-9
= f.password_field :password, autocomplete: 'new-password', class: 'form-control mb-2'
span.form-msg
.field.row.mb-2.form-group
.col-3
= f.label :password_confirmation, class: 'form-label'
.col-9
= f.password_field :password_confirmation, autocomplete: 'new-password', class: 'form-control mb-2'
span.form-msg
.actions.row.justify-content-end
.col-9
= f.submit 'Done', class: 'btn btn-primary w-50 my-4', data: { disable_with: false }
hr
h3
| Delete my account
p
| Click the button below to delete account
= button_to 'Delete', registration_path(resource_name), data: { confirm: 'Are you sure?' }, method: :delete, class: 'btn btn-primary w-100 my-4'
= link_to 'Home', :back
.section.section-padding
.container
.row.justify-content-center
.col-lg-8.col-sm-8.col-12.flex-grow-1.mb-4
= form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |f|
= render 'users/shared/error_messages', resource: resource
- if devise_mapping.confirmable? && resource.pending_reconfirmation?
.text-info.text-center.mb-2
| Currently waiting confirmation for:
= resource.unconfirmed_email
.field.row.mb-2.form-group
.col-lg-3.col-sm-3.col-12
= f.label :email, class: 'form-label'
.col-lg-9.col-sm-9.col-12
= f.email_field :email, autofocus: true, autocomplete: 'email', class: 'form-control mb-2'
span.form-msg
.field.row.mb-2.form-group
.field.row.mb-2.form-group
.col-lg-3.col-sm-3.col-12
= f.label :name, class: 'form-label'
.col-lg-9.col-sm-9.col-12
= f.text_field :name, autofocus: true, autocomplete: 'name', class: 'form-control mb-2'
span.form-msg
.field.row.mb-2.form-group
.col-lg-3.col-sm-3.col-12
= f.label :address, class: 'form-label'
.col-lg-9.col-sm-9.col-12
= f.text_field :address, autofocus: true, autocomplete: 'address', class: 'form-control mb-2'
span.form-msg
.field.row.mb-2.form-group
.col-lg-3.col-sm-3.col-12
= f.label :phone, class: 'form-label'
.col-lg-9.col-sm-9.col-12
= f.text_field :phone, autofocus: true, autocomplete: 'phone', class: 'form-control mb-2'
span.form-msg
.field.row.mb-2.form-group
.col-lg-3.col-sm-3.col-12
= f.label :cv, class: 'form-label'
.col-lg-9.col-sm-9.col-12
= f.file_field :cv, accept: ApplyJob::ACCEPT_CONTENT_TYPE, direct_upload: true
span.form-msg
.row.my-4.justify-content-end
.col-lg-9.col-sm-9.col-12
hr
p
|(leave password blank if you don't want to change it)
.field.row.mb-2.form-group
.col-lg-3.col-sm-3.col-12
= f.label :password, class: 'form-label'
.col-lg-9.col-sm-9.col-12
= f.password_field :password, autocomplete: 'new-password', class: 'form-control mb-2'
span.form-msg
.field.row.mb-2.form-group
.col-lg-3.col-sm-3.col-12
= f.label :password_confirmation, class: 'form-label'
.col-lg-9.col-sm-9.col-12
= f.password_field :password_confirmation, autocomplete: 'new-password', class: 'form-control mb-2'
span.form-msg
.actions.row.justify-content-end
.col-lg-9.col-12
= f.submit 'Done', class: 'btn btn-primary w-100 my-4', data: { disable_with: false }
hr
.text-center
h3 Delete my account
p
| Click the button below to delete account
= button_to 'Delete', registration_path(resource_name), data: { confirm: 'Are you sure?' }, method: :delete, class: 'btn btn-primary w-100 my-4'
javascript:
Validator({
......@@ -81,4 +79,4 @@ javascript:
Validator.isEmail('#user_email'),
Validator.isRequired('#user_name')
]
})
\ No newline at end of file
})
- provide(:title, 'Sign Up')
= render 'shared/page_heading', title: 'Signup'
= render 'shared/page_heading', title: 'Signup', url: signup_path
.section.section-padding
......@@ -9,10 +9,24 @@
.col-lg-6.col-sm-6.col-12.flex-grow-1.mb-4
= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f|
= render 'users/shared/error_messages', resource: resource
.field
= f.label :email, class: 'form-label'
br
= f.email_field :email, autofocus: true, autocomplete: 'email', class: 'form-control mb-2'
.actions
= f.submit 'Sign up', class: 'btn btn-primary w-100 my-5'
= render 'users/shared/links'
\ No newline at end of file
.field.row.form-group.mb-4
.col-lg-2.col-sm-2.col-12
= f.label :email, class: 'form-label'
.col-lg-10.col-sm-10.col-12
= f.email_field :email, autofocus: true, autocomplete: 'email', class: 'form-control mb-2'
span.form-msg
.field
= render 'users/shared/links'
.actions.row.justify-content-end
.col-lg-10.col-12.d-flex.justify-content-around
= f.submit 'Sign up', class: 'btn btn-primary w-100 my-5'
javascript:
Validator({
form: '#new_user',
errorSelector: '.form-msg',
rules: [
Validator.isRequired('#user_email'),
Validator.isEmail('#user_email')
]
})
- provide(:title, 'Log in')
= render 'shared/page_heading', title: 'Login'
= render 'shared/page_heading', title: 'Login', url: login_path
.section.section-padding
.container
......
- content_for :head do
= stylesheet_link_tag 'users'
= render 'shared/page_heading', title: 'User'
= render 'shared/page_heading', title: 'User', url: user_profile_path
.section.py-5
.container
.main-body
......
......@@ -7,7 +7,8 @@ Rails.application.configure do
# it changes. This slows down response time but is perfect for development
# since you don't have to restart the web server when you make code changes.
config.cache_classes = false
# ngrok
config.hosts = nil
# Do not eager load code on boot.
config.eager_load = false
......
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