Skip to content

Commit 834b87b

Browse files
authored
Merge branch 'user-add-recipe' into ratings_on_recipe_page
2 parents 40d8f47 + 7f4e6de commit 834b87b

20 files changed

+255
-50
lines changed

app/assets/images/fav_star.png

7.36 KB
Loading

app/assets/javascripts/application.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,18 @@
1313
//= require jquery
1414
//= require jquery_ujs
1515
//= require_tree .
16+
17+
$(document).on('ready', function(){
18+
newRecipeForCategory();
19+
20+
});
21+
22+
var newRecipeForCategory = function(){
23+
$('#nav-bar').on('change', '#new-cat form', function(e){
24+
25+
e.preventDefault();
26+
var $category = $(this).find("select");
27+
var url = "/categories/" + $category.val() + "/recipes/new";
28+
$(this).find("a").attr("href", url)
29+
});
30+
};

app/assets/stylesheets/application.css

Lines changed: 59 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,22 @@
44
}
55

66
.nav {
7-
margin: 5%, auto;
7+
margin: 0%, auto;
8+
font-family: 'Bree Serif', serif;
9+
}
10+
11+
#nav-bar{
12+
background-color: #A2D5F2;
13+
border-bottom-radius: 10px;
14+
}
15+
16+
.nav-link{
17+
margin-left: 5em;
18+
}
19+
20+
.nav-link:hover{
21+
font-size: larger;
22+
background-color: white;
823
}
924

1025
.recipe-table {
@@ -33,6 +48,49 @@
3348
margin-top: 20px;
3449
}
3550

51+
3652
#recipe-rating {
3753
margin: 20px 0px;
3854
}
55+
56+
.title{
57+
font-family: 'Lobster', cursive;
58+
font-size: 5em;
59+
margin: 0 auto;
60+
width: 60%;
61+
}
62+
63+
.wd-17-m{
64+
width: 17em;
65+
}
66+
67+
.mg-0{
68+
display: inline-table;
69+
margin-left: 1em;
70+
margin-right: 1em;
71+
}
72+
73+
div.thumbnail {
74+
display: inline-block;
75+
background-repeat: no-repeat;
76+
background-size: 4em;
77+
margin-bottom: 0;
78+
height: 4em;
79+
width: 4em;
80+
}
81+
82+
div.fav-star{
83+
display: inline;
84+
background-repeat: no-repeat;
85+
background-image: url("/assets/fav_star.png");
86+
background-size: 2em;
87+
opacity: 80%;
88+
height: 4em;
89+
width: 4em;
90+
}
91+
92+
#add-recipe {
93+
border: 2px solid #A2D5F2;
94+
border-radius: 10px;
95+
padding: 5px 5px 5px 5px;
96+
}

app/controllers/categories_controller.rb

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,17 @@ class CategoriesController < ApplicationController
22
include ApplicationHelper
33

44
def index
5-
@appetizers = Category.find_by(name: "Appetizers").recipes
6-
@salads = Category.find_by(name: "Salads").recipes
7-
@main_dishes = Category.find_by(name: "Main Dishes").recipes
8-
@desserts = Category.find_by(name: "Desserts").recipes
5+
@categories = {
6+
apps: Category.find_by(name: "Appetizers").top_5[0..4],
7+
salads: Category.find_by(name: "Salads").top_5[0..4],
8+
mains: Category.find_by(name: "Main Dishes").top_5[0..4],
9+
desserts: Category.find_by(name: "Desserts").top_5[0..4]
10+
}
11+
end
12+
13+
def show
14+
@category = Category.find_by(name: params[:id])
15+
@recipes = @category.recipes
916
end
1017

1118

app/controllers/recipes_controller.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ def show
3636

3737
def edit
3838
@recipe = Recipe.find(params[:id])
39-
if recipe_owner?(@recipe)
39+
if recipe_owner?(@recipe) || admin?
4040
@category = Category.find(@recipe.category_id)
4141
if current_user.id != @recipe.user_id
4242
flash[:no_access] = "You do not have permission to edit this recipe."
@@ -49,7 +49,7 @@ def edit
4949

5050
def destroy
5151
get_recipe
52-
if recipe_owner?(@recipe)
52+
if recipe_owner?(@recipe) || admin?
5353
@category = @recipe.category
5454
Recipe.destroy(@recipe)
5555
flash[:notice] = "The recipe has been deleted."

app/controllers/sessions_controller.rb

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,22 @@
11
class SessionsController < ApplicationController
22
include ApplicationHelper
3+
include SessionsHelper
4+
35
def new
46
@user = User.new
57
end
68

79
def create
810
@user = User.find_by(email: user_deets[:email])
911
if @user && @user.authenticate(user_deets[:password])
10-
login_user
11-
flash[:notice] = "Login Successful!"
12-
redirect_to profile_path(@user)
12+
login_user
13+
if admin?
14+
flash[:notice] = "Login Successful!"
15+
redirect_to users_path
16+
else
17+
flash[:notice] = "Login Successful!"
18+
redirect_to profile_path(@user)
19+
end
1320
else
1421
flash[:alert] = "Login failed"
1522
@errors = ["That combination of username and password can't be found"]

app/controllers/users_controller.rb

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
class UsersController < ApplicationController
22
include ApplicationHelper
3+
include SessionsHelper
4+
5+
def index
6+
if admin?
7+
@users = User.where(is_ken: false)
8+
end
9+
end
10+
311
def new
412
@user = User.new
513
end
@@ -18,10 +26,19 @@ def create
1826
end
1927

2028
def show
21-
@user = User.find_by(id: session[:user_id])
29+
if admin?
30+
@user = User.find_by(id: friend_id)
31+
else
32+
@user = User.find_by(id: session[:user_id])
33+
end
2234
end
2335

2436
private
37+
def friend_id
38+
params.require(:format)
39+
#add integer matching
40+
end
41+
2542
def user_deets
2643
params.require(:user).permit(:name, :email, :password)
2744
end

app/helpers/application_helper.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
module ApplicationHelper
2+
23
def logout_user
34
session[:user_id] = nil
45
end
@@ -13,8 +14,12 @@ def recipe_contents
1314
end
1415
end
1516

17+
def stars(rating)
18+
rating.round(1)
19+
end
20+
1621
def get_category_by_name
1722
@category ||= Category.find_by(name: params[:id])
1823
end
19-
24+
2025
end

app/models/category.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ class Category < ApplicationRecord
44
has_many :recipes
55
has_many :recipe_ratings, through: :recipes, source: :ratings
66
def top_5
7-
self.recipes.sort{|a, b| a.aggregate_rating <=> b.aggregate_rating}.reverse[0..4]
7+
ordered = self.recipes.sort{|a, b| a.aggregate_rating <=> b.aggregate_rating}
8+
ordered.reverse.collect{|r| {title: r.title, image_url: r.image_url, id: r.id, rating: r.aggregate_rating}}
89
end
910
end
Lines changed: 61 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,64 @@
1-
<h1>Welcome to Chez Ken</h1>
1+
<h1 class='title'>Welcome to Chez Ken</h1>
2+
<h3><%= flash[:notice] %></h3>
23

3-
<table>
4-
<tr>
5-
<th class="category-button"><%= link_to "Appetizers", category_path("Appetizers") %></th>
6-
<th class="category-button"><%= link_to "Salad", category_path("Salads") %></th>
7-
<th class="category-button"><%= link_to "Main Dish", category_path("Main Dishes") %></th>
8-
<th class="category-button"><%= link_to "Dessert", category_path("Desserts") %></th>
9-
</tr>
10-
<% for i in (0..1) %>
11-
<tr>
12-
<td><%= @appetizers[i].title %></td>
13-
<td><%= @salads[i].title %></td>
14-
<td><%= @main_dishes[i].title %></td>
15-
<td><%= @desserts[i].title %></td>
16-
</tr>
17-
<% end %>
18-
</table>
4+
<div class='container'>
5+
<div class='container col-4-md wd-17-m mg-0'>
6+
<h3 class="category-button"><%= link_to "Appetizers", category_path("Appetizers") %></h3>
7+
<% @categories[:apps].each do |recipe| %>
8+
<div class='category-card'>
9+
<div class='fav-star'><span class='rating_text'><%=stars(recipe[:rating]) %></span>
10+
</div>
11+
<div class='thumbnail' style="background-image: url(<%=recipe[:image_url] %>)"></div>
12+
<%=recipe[:title] %>
13+
</div>
14+
<% end %>
15+
</div>
16+
</td>
17+
<td>
18+
<div class='container col-4-md wd-17-m mg-0'>
19+
<h3 class="category-button"><%= link_to "Salad", category_path("Salads") %></h3>
20+
<% @categories[:salads].each do |recipe| %>
21+
<div class='category-card'>
22+
23+
<p>
24+
<div class='fav-star'><span class='rating_text'><%=stars(recipe[:rating]) %></span>
25+
</div>
26+
<div class='thumbnail' style="background-image: url(<%=recipe[:image_url] %>)"></div>
27+
<%=recipe[:title] %>
28+
</p>
29+
</div>
30+
<% end %>
31+
</div>
32+
</td>
33+
<td>
34+
<div class='container col-4-md wd-17-m mg-0'>
35+
<h3 class="category-button"><%= link_to "Main Dish", category_path("Main Dishes") %></h3>
36+
<% @categories[:mains].each do |recipe| %>
37+
<div class='category-card'>
38+
<p>
39+
<div class='fav-star'><span class='rating_text'><%=stars(recipe[:rating]) %></span>
40+
</div>
41+
<div class='thumbnail' style="background-image: url(<%=recipe[:image_url] %>)"></div>
42+
<%=recipe[:title] %>
43+
</p>
44+
</div>
45+
<% end %>
46+
</div>
47+
</td>
48+
<td>
49+
<div class='container col-4-md wd-17-m mg-0'>
50+
<h3 class="category-button"><%= link_to "Dessert", category_path("Desserts") %></h3>
51+
<% @categories[:desserts].each do |recipe| %>
52+
<div class='category-card'>
53+
<p>
54+
<div class='fav-star'><span class='rating_text'><%=stars(recipe[:rating]) %></span>
55+
</div>
56+
<div class='thumbnail' style="background-image: url(<%=recipe[:image_url] %>)"></div>
57+
<%=recipe[:title] %>
58+
</p>
59+
</div>
60+
<% end %>
61+
</div>
62+
</div>
1963

2064
<p>Your recipes make up the menu at Chez Ken. Submit your favorite recipe for appetizers, salads, main dishes, or desserts. If your dish is selected for our menu, you'll get a cut too!</p>

0 commit comments

Comments
 (0)