Skip to content

Commit 87f37ed

Browse files
committed
Merge pull request #2 from codeunion/edit-content
Users can edit content of résumé
2 parents 27a1e2b + 7d563cd commit 87f37ed

5 files changed

Lines changed: 133 additions & 2 deletions

File tree

Gemfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ group :development do
1111
gem 'dm-sqlite-adapter'
1212
gem 'dotenv'
1313
gem 'rerun'
14+
gem 'better_errors'
15+
gem 'binding_of_caller'
1416
end
1517

1618
group :production do

Gemfile.lock

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,15 @@ GEM
55
bcrypt (3.1.9)
66
bcrypt-ruby (3.1.5)
77
bcrypt (>= 3.1.3)
8+
better_errors (2.0.0)
9+
coderay (>= 1.0.0)
10+
erubis (>= 2.6.6)
11+
rack (>= 0.9.0)
12+
binding_of_caller (0.7.2)
13+
debug_inspector (>= 0.0.1)
814
celluloid (0.16.0)
915
timers (~> 4.0.0)
16+
coderay (1.1.0)
1017
data_mapper (1.2.0)
1118
dm-aggregates (~> 1.2.0)
1219
dm-constraints (~> 1.2.0)
@@ -19,6 +26,7 @@ GEM
1926
dm-validations (~> 1.2.0)
2027
data_objects (0.10.14)
2128
addressable (~> 2.1)
29+
debug_inspector (0.0.2)
2230
dm-aggregates (1.2.0)
2331
dm-core (~> 1.2.0)
2432
dm-constraints (1.2.0)
@@ -61,6 +69,7 @@ GEM
6169
do_sqlite3 (0.10.14)
6270
data_objects (= 0.10.14)
6371
dotenv (1.0.2)
72+
erubis (2.7.0)
6473
faker (1.4.3)
6574
i18n (~> 0.5)
6675
fastercsv (1.5.5)
@@ -99,6 +108,8 @@ PLATFORMS
99108
ruby
100109

101110
DEPENDENCIES
111+
better_errors
112+
binding_of_caller
102113
data_mapper
103114
dm-postgres-adapter
104115
dm-sqlite-adapter

linkedout.rb

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
11
require 'sinatra'
2+
require 'better_errors'
23

34
require_relative 'config/dotenv'
45
require_relative 'models'
56

7+
configure :development do
8+
use BetterErrors::Middleware
9+
BetterErrors.application_root = File.expand_path('..', __FILE__)
10+
end
11+
612
helpers do
713
def default_user
814
@default_user ||= User.last
@@ -15,3 +21,40 @@ def default_user
1521

1622
erb :'resumes/show'
1723
end
24+
25+
get "/resumes/edit" do
26+
@jobs = default_user.jobs
27+
@skills = default_user.skills
28+
29+
erb :'resumes/edit'
30+
end
31+
32+
put "/users/edit" do
33+
user_attrs = params[:user]
34+
35+
default_user.update(user_attrs)
36+
37+
redirect "/"
38+
end
39+
40+
put "/jobs/edit" do
41+
job_attrs = params[:job]
42+
43+
job_id = job_attrs.delete("id")
44+
45+
job = Job.get(job_id)
46+
job.update(job_attrs)
47+
48+
redirect "/"
49+
end
50+
51+
put "/skills/edit" do
52+
skill_attrs = params[:skill]
53+
54+
skill_id = skill_attrs.delete("id")
55+
56+
skill = Skill.get(skill_id)
57+
skill.update(skill_attrs)
58+
59+
redirect "/"
60+
end

views/resumes/edit.erb

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
<div class="resume">
2+
<h3>Edit My Résumé</h3>
3+
4+
<section class="profile">
5+
<form name="edit_user" action="/users/edit" method="post" accept-charset="utf-8">
6+
<input type="hidden" name="_method" value="put">
7+
8+
<label for="user[name]">Name</label>
9+
<input type="text" name="user[name]" value="<%= default_user.name %>">
10+
<br>
11+
12+
<label for="user[email]">Email</label>
13+
<input type="email" name="user[email]" value="<%= default_user.email %>">
14+
<br>
15+
16+
<label for="user[phone]">Phone</label>
17+
<input type="phone" name="user[phone]" value="<%= default_user.phone %>">
18+
<br>
19+
20+
<label for="user[website]">Website</label>
21+
<input type="url" name="user[website]" value="<%= default_user.website %>">
22+
<br>
23+
24+
<label for="user[bio]">Bio</label>
25+
<textarea name="user[bio]"><%= default_user.bio %></textarea>
26+
<br>
27+
28+
<input type="submit" value="Update user">
29+
</form>
30+
</section>
31+
32+
<section class="jobs">
33+
<h2>Jobs</h2>
34+
<ul>
35+
<% @jobs.each do |job| %>
36+
<li>
37+
<form name="edit_job" action="/jobs/edit" method="post" accept-charset="utf-8">
38+
<input type="hidden" name="_method" value="put">
39+
40+
<input type="hidden" name="job[id]" value="<%= job.id %>">
41+
42+
<input type="text" name="job[job_title]" value="<%= job.job_title %>"> at
43+
<input type="text" name="job[company_name]" value="<%= job.company_name %>">
44+
<br>
45+
46+
<label for="job[job_description]">Job Description</label>
47+
<textarea name="job[job_description]"><%= job.job_description %></textarea>
48+
<br>
49+
50+
<input type="submit" value="Update job">
51+
</form>
52+
</li>
53+
<% end %>
54+
</ul>
55+
</section>
56+
57+
<section class="skills">
58+
<h2>Skills</h2>
59+
<ul>
60+
<% @skills.each do |skill| %>
61+
<li>
62+
<form name="edit_skill" action="/skills/edit" method="post" accept-charset="utf-8">
63+
<input type="hidden" name="_method" value="put">
64+
65+
<input type="hidden" name="skill[id]" value="<%= skill.id %>">
66+
67+
<input type="text" name="skill[name]" value="<%= skill.name %>">
68+
<br>
69+
70+
<input type="submit" value="Update skill">
71+
</form>
72+
</li>
73+
<% end %>
74+
</ul>
75+
</section>
76+
</div>

views/resumes/show.erb

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<div class="resume">
22
<h3>My Résumé</h3>
3+
<a href="/resumes/edit" title="Edit resume">Edit</a>
34

45
<section class="profile">
56
<h1><%= default_user.name %></h1>
@@ -10,8 +11,6 @@
1011
</div>
1112

1213
<p><%= default_user.bio %></p>
13-
14-
<a href="/edit" title=""></a>
1514
</section>
1615

1716
<section class="jobs">

0 commit comments

Comments
 (0)