mirror of https://github.com/E-Almqvist/hsf
parent
d15112b3c0
commit
0248361e96
@ -0,0 +1,41 @@ |
||||
#!/usr/bin/ruby -w |
||||
|
||||
require "sinatra" |
||||
require "slim" |
||||
require "sqlite3" |
||||
#1. |
||||
# - Kontrollera gems (sinatra, slim, sqlite). Kommer du behöva sessions? Troligen ej, ska endast utföra CRUD på databasen. |
||||
# - Se hur Slimfiler är organierade i mappstrukturen. Följer det REST? Hur kallar man på en slimfil i en mapp? |
||||
|
||||
#2. Starta upp applikationen och inspektera koden i Chrome (högerklick>inspect). Hur ser länkarna ut? Finns de som routes i app.rb? |
||||
|
||||
#3. När vi klickar på ett album vill vi även se artisten (inte bara id). Gör ett andra anrop till db och skicka med i locals. |
||||
|
||||
#4. Skapa en sida där vi lägger till nya album för tex Artisten ACDC (ArtistId 1). Hitta gärna på nya namn på skivorna |
||||
|
||||
#5. Skapa funktionalitet för att ta bort album |
||||
|
||||
#6. Skapa funktionalitet för att uppdatera artistinformation |
||||
|
||||
|
||||
get "/" do |
||||
slim(:start) |
||||
end |
||||
|
||||
get "/albums" do |
||||
db = SQLite3::Database.new("db/chinook-crud.db") |
||||
db.results_as_hash = true |
||||
result = db.execute("SELECT * FROM albums") |
||||
p result |
||||
slim( :"albums/index", locals: { albums: result } ) |
||||
end |
||||
|
||||
get "/albums/:id" do |
||||
id = params[:id].to_i |
||||
db = SQLite3::Database.new("db/chinook-crud.db") |
||||
db.results_as_hash = true |
||||
result = db.execute("SELECT * FROM albums WHERE ArtistId = ?",id).first |
||||
slim(:"albums/show",locals:{result:result}) |
||||
end |
||||
|
||||
|
Binary file not shown.
@ -0,0 +1,56 @@ |
||||
:root { |
||||
--magic-number:2vw; |
||||
} |
||||
|
||||
body{ |
||||
margin:0; |
||||
background: rgb(131,58,180); |
||||
background: linear-gradient(90deg, rgba(131,58,180,1) 0%, rgba(253,29,29,1) 50%, rgba(252,176,69,1) 100%); |
||||
font-family:Arial, Helvetica, sans-serif; |
||||
font-weight:500; |
||||
color:white; |
||||
position:relative; |
||||
} |
||||
|
||||
nav { |
||||
height:100px; |
||||
background:rgba(80,80,80,0.2); |
||||
display:flex; |
||||
justify-content: space-around; |
||||
align-items:center; |
||||
} |
||||
|
||||
nav a, nav a:link { |
||||
color:black; |
||||
text-decoration:none; |
||||
text-transform:uppercase; |
||||
font-size:1.2em; |
||||
font-weight:900; |
||||
opacity:0.5; |
||||
} |
||||
|
||||
|
||||
img { |
||||
position:fixed; |
||||
bottom:0; |
||||
right:0; |
||||
width:25vw; |
||||
margin:0 var(--magic-number) var(--magic-number) 0; |
||||
} |
||||
|
||||
|
||||
|
||||
h1 { |
||||
margin:var(--magic-number); |
||||
} |
||||
|
||||
|
||||
|
||||
a, form { |
||||
display:inline-block; |
||||
margin:10px; |
||||
} |
||||
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 6.6 KiB |
@ -0,0 +1,10 @@ |
||||
h1 All Albums |
||||
|
||||
|
||||
ol |
||||
- albums.each do |album| |
||||
li |
||||
a href="albums/#{album['AlbumId']}" #{album["Title"]} |
||||
|
||||
|
||||
|
@ -0,0 +1,4 @@ |
||||
h1 = result |
||||
|
||||
p Albumet som du har sökt efter heter #{result["Title"]}. |
||||
p Artisten som du har sökt efter heter #{result["ArtistId"]}. |
@ -0,0 +1,16 @@ |
||||
<!DOCTYPE html> |
||||
html lang="en" |
||||
head |
||||
meta charset="UTF-8"/ |
||||
meta name="viewport" content="width=device-width, initial-scale=1.0"/ |
||||
meta http-equiv="X-UA-Compatible" content="ie=edge"/ |
||||
link rel="stylesheet" href="/css/style.css"/ |
||||
title Document |
||||
body |
||||
img src="img/love.png" alt="musik listener"/ |
||||
|
||||
nav |
||||
a href="/" Start it |
||||
a href="/albums" Visa alla album |
||||
==yield |
||||
|
@ -0,0 +1 @@ |
||||
h2 Welcome to Music zite! |
Loading…
Reference in new issue