Last active
August 29, 2015 14:02
-
-
Save MilanGrubnic70/9a400924114b7f07bfc9 to your computer and use it in GitHub Desktop.
mac1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<div class="container"> | |
<h1>User Skills and Levels</h1> | |
<%# TODO: display the skills and proficiency levels for each user ... %> | |
<table> | |
<thead> | |
<tr> | |
<th>Name</th> | |
<th>Skill</th> | |
<th>Years</th> | |
<th>Formal?</th> | |
</tr> | |
</thead> | |
<tbody> | |
<% if session[:user_id] %> | |
<% @users.each do |user| %> | |
<% user.proficiencies.each_with_index do |pros, index| %> | |
<tr> | |
<% if index == 0 %> | |
<td><%= pros.user.name %></td> | |
<% else %> | |
<td></td> | |
<% end %> | |
<td><%= pros.skill.name %><%= " (#{pros.skill.context})" %></td> | |
<td><%= pros.experience %></td> | |
<td><%= pros.education %></td> | |
</tr> | |
<% end %> | |
<% end %> | |
<% end %> | |
</tbody> | |
</table> | |
<a href="/skills/<%=session[:user_id]%>"> Edit Your Skills </a> | |
</div> | |
<h3> Add A New Skill </h3> | |
<form method="post" action="/skill/new"> | |
<label>Skill Name: <input type="text" name="skill"></label> | |
<label>Experience in Years: <input type="integer" name="experience"></label> | |
<p> Do you have a formal education? </p> | |
<label>Yes: <input type="radio" name="education" value="true"> | |
<label>No: <input type="radio" name="education" value="false"> | |
<br> | |
<input type="submit" value="Submit"> | |
</form> | |
get '/' do | |
# render home page | |
@users = User.all | |
@pros = Proficiency.all | |
erb :index | |
end | |
#----------- SESSIONS ----------- | |
get '/sessions/new' do | |
# render sign-in page | |
@email = nil | |
erb :sign_in | |
end | |
post '/sessions' do | |
# sign-in | |
@email = params[:email] | |
user = User.authenticate(@email, params[:password]) | |
if user | |
# successfully authenticated; set up session and redirect | |
session[:user_id] = user.id | |
redirect '/' | |
else | |
# an error occurred, re-render the sign-in form, displaying an error | |
@error = "Invalid email or password." | |
erb :sign_in | |
end | |
end | |
delete '/sessions/:id' do | |
# sign-out -- invoked via AJAX | |
return 401 unless params[:id].to_i == session[:user_id].to_i | |
session.clear | |
200 | |
end | |
#----------- USERS ----------- | |
get '/users/new' do | |
# render sign-up page | |
@user = User.new | |
erb :sign_up | |
end | |
post '/users' do | |
# sign-up | |
@user = User.new params[:user] | |
if @user.save | |
# successfully created new account; set up the session and redirect | |
session[:user_id] = @user.id | |
redirect '/' | |
else | |
# an error occurred, re-render the sign-up form, displaying errors | |
erb :sign_up | |
end | |
end | |
#proficiencies___________________________________________ | |
get '/skills/:user_id' do | |
@user = User.find(params[:user_id]) | |
@pros = Proficiency.where(user_id: params[:user_id]) | |
erb :proficiencies | |
end | |
get '/skill/new' do | |
@skills = Skill.all | |
erb :new_skill | |
end | |
post '/skill/new' do | |
Proficiency.create(user_id: session[:user_id], | |
experience: params[:experience], | |
education: params[:education]) | |
redirect "/skills/#{session[:user_id]}" | |
end | |
# edit | |
post '/skill/delete' do | |
UserSkill.find(params[:user_skill_id]).destroy | |
redirect back | |
end | |
post '/skill/edit' do | |
@skills = Skill.all | |
@user_skill = UserSkill.find(params[:user_skill_id]) | |
erb :edit_skill | |
end | |
post '/skill/update' do | |
target_skill = UserSkill.find(params[:user_skill_id]) | |
target_skill.update(yrs_exp: params[:yrs_exp], | |
is_formal: params[:is_formal] | |
) | |
redirect "/skills/#{session[:user_id]}" | |
end | |
# post '/skill/edit' do | |
# UserSkill.find(params[:user_skill_id]) | |
# end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment