Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
V
venjob
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Huỳnh Thiên Phước
venjob
Commits
3b4c1b60
Commit
3b4c1b60
authored
Aug 27, 2020
by
Huỳnh Thiên Phước
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
store value input, fix some mentor's comments
parent
8aee83ff
Pipeline
#1026
canceled with stages
in 0 seconds
Changes
7
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
65 additions
and
31 deletions
+65
-31
.gitignore
+1
-0
app/controllers/job_applieds_controller.rb
+33
-17
app/controllers/jobs_controller.rb
+1
-0
app/mailers/job_applied_mailer.rb
+6
-0
app/views/job_applied_mailer/sending_admin.html.erb
+13
-0
app/views/job_applieds/confirmation.html.erb
+6
-9
app/views/job_applieds/new.html.erb
+5
-5
No files found.
.gitignore
View file @
3b4c1b60
...
@@ -31,3 +31,4 @@
...
@@ -31,3 +31,4 @@
/config/master.key
/config/master.key
config/local_env.yml
config/local_env.yml
public/uploads
app/controllers/job_applieds_controller.rb
View file @
3b4c1b60
class
JobAppliedsController
<
ApplicationController
class
JobAppliedsController
<
ApplicationController
before_action
:sign_in_validation
,
only:
[
:new
,
:confirmation
,
:create
,
:
show
]
before_action
:sign_in_validation
,
only:
%i[new confirmation create
show]
before_action
:find_job_id
,
only:
[
:new
]
before_action
:find_job_id
,
only:
[
:new
]
def
new
def
new
founded_application
=
JobApplied
.
where
(
user_id:
current_user
.
id
,
job_id:
params
[
:job_id
])
session
[
:job_id
]
=
params
[
:job_id
]
return
redirect_to
job_detail_path
(
params
[
:job_id
])
if
founded_application
.
present?
if
session
[
:job_applied
].
present?
user_name
=
session
[
:job_applied
][
'name'
]
user_email
=
session
[
:job_applied
][
'email'
]
end
session
[
:job_id
]
||=
session
[
:get_job_id
]
user_name
||=
current_user
.
name
user_email
||=
current_user
.
email
founded_application
=
JobApplied
.
exists?
(
user_id:
current_user
.
id
,
job_id:
session
[
:job_id
])
return
redirect_to
job_detail_path
(
session
[
:job_id
])
if
founded_application
@job_applied
=
current_user
.
job_applieds
.
new
(
name:
user_name
,
email:
user_email
)
end
end
def
show
def
show
...
@@ -12,26 +25,29 @@ class JobAppliedsController < ApplicationController
...
@@ -12,26 +25,29 @@ class JobAppliedsController < ApplicationController
end
end
def
confirmation
def
confirmation
@founded_job
=
JobApplied
.
where
(
user_id:
current_user
.
id
,
job_id:
apply_params
[
:job_id
])
session
[
:get_job_id
]
=
session
[
:job_id
]
return
redirect_to
apply_job_path
(
job_id:
apply_params
[
:job_id
]),
flash:
{
danger:
Settings
.
user
.
applied_job
.
applied
}
if
@founded_job
.
present?
@job_applied
=
current_user
.
job_applieds
.
new
(
apply_params
)
session
[
:job_applied
]
=
@job_applied
@
user
=
current_user
.
job_applieds
.
new
(
apply_params
)
@
job_applied
.
cv_user
=
current_user
.
cv_user
if
apply_params
[
:cv_user
].
blank?
@
user
.
cv_user
=
current_user
.
cv_user
if
apply_params
[
:cv_user
]
.
blank?
@
job_applied
.
job_id
=
session
[
:get_job_id
]
if
@job_applied
.
job_id
.
blank?
if
@
user
.
invalid?
if
@
job_applied
.
invalid?
flash
[
:danger
]
=
@user
.
errors
.
full_messages
.
join
(
'<br>'
)
flash
.
now
[
:danger
]
=
@job_applied
.
errors
.
full_messages
.
join
(
'<br>'
)
re
direct_to
apply_job_path
(
job_id:
apply_params
[
:job_id
])
re
nder
:new
end
end
end
end
def
create
def
create
@job
=
Job
.
find_by
(
id:
apply_params
[
:job_id
])
@job
=
Job
.
find_by
(
id:
session
[
:get_job_id
])
@user
=
current_user
.
job_applieds
.
new
(
apply_params
)
@job_applied
=
current_user
.
job_applieds
.
new
(
apply_params
)
@user
.
cv_user
.
retrieve_from_cache!
(
apply_params
[
:cv_user
])
@job_applied
.
job_id
=
session
[
:get_job_id
]
if
@job_applied
.
job_id
.
blank?
if
@user
.
save
@job_applied
.
cv_user
.
retrieve_from_cache!
(
apply_params
[
:cv_user
])
JobAppliedMailer
.
apply_job
(
@user
,
@job
).
deliver_later
if
@job_applied
.
save
JobAppliedMailer
.
apply_job
(
ENV
[
'GMAIL_USERNAME'
]).
deliver_later
JobAppliedMailer
.
apply_job
(
@job_applied
,
@job
).
deliver_later
JobAppliedMailer
.
sending_admin
(
@job_applied
,
@job
,
ENV
[
'GMAIL_USERNAME'
]).
deliver_later
end
end
session
.
delete
(
:job_applied
)
end
end
private
private
...
@@ -44,7 +60,7 @@ class JobAppliedsController < ApplicationController
...
@@ -44,7 +60,7 @@ class JobAppliedsController < ApplicationController
end
end
def
apply_params
def
apply_params
params
.
require
(
:job_applied
).
permit
(
:name
,
:email
,
:cv_user
,
:job_id
)
params
.
require
(
:job_applied
).
permit
(
:name
,
:email
,
:cv_user
)
end
end
def
find_job_id
def
find_job_id
...
...
app/controllers/jobs_controller.rb
View file @
3b4c1b60
...
@@ -27,6 +27,7 @@ class JobsController < ApplicationController
...
@@ -27,6 +27,7 @@ class JobsController < ApplicationController
end
end
def
show
def
show
session
.
delete
(
:job_applied
)
return
redirect_to
jobs_path
unless
@job
return
redirect_to
jobs_path
unless
@job
@user
=
JobApplied
.
where
(
user_id:
current_user
.
id
,
job_id:
params
[
:id
])
if
signed_in?
@user
=
JobApplied
.
where
(
user_id:
current_user
.
id
,
job_id:
params
[
:id
])
if
signed_in?
end
end
...
...
app/mailers/job_applied_mailer.rb
View file @
3b4c1b60
...
@@ -4,4 +4,10 @@ class JobAppliedMailer < ActionMailer::Base
...
@@ -4,4 +4,10 @@ class JobAppliedMailer < ActionMailer::Base
@user
=
user
@user
=
user
mail
(
to:
user
.
email
,
subject:
Settings
.
email
.
job_applied
)
mail
(
to:
user
.
email
,
subject:
Settings
.
email
.
job_applied
)
end
end
def
sending_admin
(
user
,
job
,
email
)
@job
=
job
@user
=
user
mail
(
to:
email
,
subject:
Settings
.
email
.
job_applied
)
end
end
end
app/views/job_applied_mailer/sending_admin.html.erb
0 → 100644
View file @
3b4c1b60
<h2>
Dear
<%=
@user
.
name
%>
</h2>
<p>
Thank you for applied with VenJOB. Your applied job's information is as follow:
</p>
<p><h3>
<%=
@job
.
title
%>
</h3></p>
<p><h3>
<%=
@job
.
cities
.
map
(
&
:name
).
join
(
' | '
)
%>
</h3></p>
<p><h3>
<%=
@job
.
company
.
name
%>
</h3></p>
<p>
Your submitted information:
</p>
<p><h3>
<%=
@user
.
name
%>
</h3></p>
<p><h3>
<%=
@user
.
email
%>
</h3></p>
<p><h3>
<%=
link_to
@user
.
cv_user
.
identifier
,
(
root_url
.
chop
+
@user
.
cv_user
.
url
)
%>
</h3></p>
Best,
app/views/job_applieds/confirmation.html.erb
View file @
3b4c1b60
...
@@ -5,14 +5,13 @@
...
@@ -5,14 +5,13 @@
<h1
class=
"text-center my-page-label"
>
Confirmation
</h1>
<h1
class=
"text-center my-page-label"
>
Confirmation
</h1>
<div
class=
"form-login"
>
<div
class=
"form-login"
>
<div
class=
"row form d-flex justify-content-center"
>
<div
class=
"row form d-flex justify-content-center"
>
<%=
form_for
(
@
user
,
url:
finished_apply_path
)
do
|
f
|
%>
<%=
form_for
(
@
job_applied
,
url:
finished_apply_path
)
do
|
f
|
%>
<div
class=
"email-field"
>
<div
class=
"email-field"
>
<div
class=
"col-4-sm"
>
<div
class=
"col-4-sm"
>
<%=
f
.
label
:email
%>
<%=
f
.
label
:email
%>
</div>
</div>
<div
class=
"col-8-sm"
>
<div
class=
"col-8-sm"
>
<strong>
<%=
@user
.
email
%>
</strong>
<strong>
<%=
f
.
text_field
:email
,
value:
@job_applied
.
email
,
readonly:
true
%>
</strong>
<%=
f
.
hidden_field
:email
,
value:
@user
.
email
%>
</div>
</div>
</div>
</div>
<div
class=
"name-field"
>
<div
class=
"name-field"
>
...
@@ -20,8 +19,7 @@
...
@@ -20,8 +19,7 @@
<%=
f
.
label
:name
,
'Full Name'
%>
<%=
f
.
label
:name
,
'Full Name'
%>
</div>
</div>
<div
class=
"col-8-sm"
>
<div
class=
"col-8-sm"
>
<strong>
<%=
@user
.
name
%>
</strong>
<strong>
<%=
f
.
text_field
:name
,
value:
@job_applied
.
name
,
readonly:
true
%>
</strong>
<%=
f
.
hidden_field
:name
,
value:
@user
.
name
%>
</div>
</div>
</div>
</div>
<div
class=
"cv-field"
>
<div
class=
"cv-field"
>
...
@@ -29,13 +27,12 @@
...
@@ -29,13 +27,12 @@
<%=
f
.
label
:cv_user
,
'CV Upload'
%>
<%=
f
.
label
:cv_user
,
'CV Upload'
%>
</div>
</div>
<div
class=
"col-8-sm"
>
<div
class=
"col-8-sm"
>
<%=
link_to
@
user
.
cv_user
.
identifier
,
@user
.
cv_user
.
url
,
download:
@user
.
cv_user
.
identifier
%>
<%=
link_to
@
job_applied
.
cv_user
.
identifier
,
@job_applied
.
cv_user
.
url
,
download:
@job_applied
.
cv_user
.
identifier
%>
<%=
f
.
hidden_field
:cv_user
,
value:
@
user
.
cv_user
.
cache_name
%>
<%=
f
.
hidden_field
:cv_user
,
value:
@
job_applied
.
cv_user
.
cache_name
%>
</div>
</div>
</div>
</div>
<%=
f
.
hidden_field
:job_id
,
value:
params
[
:job_applied
][
:job_id
]
%>
<%=
link_to
'Edit'
,
apply_job_path
(
job_id:
params
[
:job_applied
][
:
job_id
]),
class:
'btn btn-outline-primary btn-lg update-btn'
%>
<%=
link_to
'Edit'
,
apply_job_path
(
job_id:
session
[
:get_
job_id
]),
class:
'btn btn-outline-primary btn-lg update-btn'
%>
<%=
f
.
submit
'Done'
,
class:
'btn btn-outline-primary btn-lg update-btn'
%>
<%=
f
.
submit
'Done'
,
class:
'btn btn-outline-primary btn-lg update-btn'
%>
<%
end
%>
<%
end
%>
</div>
</div>
...
...
app/views/job_applieds/new.html.erb
View file @
3b4c1b60
...
@@ -3,16 +3,17 @@
...
@@ -3,16 +3,17 @@
<%=
render
partial:
'ribbon_step'
,
locals:
{
step1:
'active'
,
step2:
''
,
step3:
''
}
%>
<%=
render
partial:
'ribbon_step'
,
locals:
{
step1:
'active'
,
step2:
''
,
step3:
''
}
%>
</div>
</div>
<h1
class=
"text-center my-page-label"
>
Apply Form
</h1>
<h1
class=
"text-center my-page-label"
>
Apply Form
</h1>
<%=
render
'layouts/flash'
%>
<div
class=
"form-login"
>
<div
class=
"form-login"
>
<%=
render
'layouts/flash'
%>
<div
class=
"row form d-flex justify-content-center"
>
<div
class=
"row form d-flex justify-content-center"
>
<%=
form_for
(
:job_applied
,
url:
confirm_job_path
)
do
|
f
|
%>
<%=
form_for
(
@job_applied
,
url:
confirm_job_path
)
do
|
f
|
%>
<div
class=
"validation"
></div>
<div
class=
"email-field"
>
<div
class=
"email-field"
>
<div
class=
"col-4-sm"
>
<div
class=
"col-4-sm"
>
<%=
f
.
label
:email
%>
<%=
f
.
label
:email
%>
</div>
</div>
<div
class=
"col-8-sm"
>
<div
class=
"col-8-sm"
>
<%=
f
.
text_field
:email
,
class:
'input-email'
,
value:
current_user
.
email
%>
<%=
f
.
text_field
:email
,
class:
'input-email'
%>
</div>
</div>
</div>
</div>
<div
class=
"name-field"
>
<div
class=
"name-field"
>
...
@@ -20,7 +21,7 @@
...
@@ -20,7 +21,7 @@
<%=
f
.
label
:name
,
'Full Name'
%>
<%=
f
.
label
:name
,
'Full Name'
%>
</div>
</div>
<div
class=
"col-8-sm"
>
<div
class=
"col-8-sm"
>
<%=
f
.
text_field
:name
,
class:
'input-name'
,
value:
current_user
.
name
%>
<%=
f
.
text_field
:name
,
class:
'input-name'
%>
</div>
</div>
</div>
</div>
<div
class=
"cv-field"
>
<div
class=
"cv-field"
>
...
@@ -40,7 +41,6 @@
...
@@ -40,7 +41,6 @@
<%
end
%>
<%
end
%>
</div>
</div>
</div>
</div>
<%=
f
.
hidden_field
:job_id
,
value:
params
[
:job_id
]
%>
<%=
f
.
submit
'Confirm'
,
class:
'btn btn-outline-primary btn-lg update-btn'
%>
<%=
f
.
submit
'Confirm'
,
class:
'btn btn-outline-primary btn-lg update-btn'
%>
<%
end
%>
<%
end
%>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment