| @@ -0,0 +1,3 @@ | |||||
| gAN9cQAoWAoAAABzZXNzaW9uX2lkcQFYKAAAADRhN2E2OWYxZDA1MTRhNTE1NjAwOTQwYjc3MDg0 | |||||
| MDc4YTc4MjM5ZmRxAlgIAAAAdXNlcm5hbWVxA1gBAAAAYXEEWAIAAABpcHEFWAkAAAAxMjcuMC4w | |||||
| LjFxBnUu | |||||
| @@ -1,7 +1,8 @@ | |||||
| body { | body { | ||||
| background-color: lightblue; | background-color: lightblue; | ||||
| display: flex; /* or inline-flex */ | display: flex; /* or inline-flex */ | ||||
| flex-direction: column | |||||
| flex-direction: column; | |||||
| margin: 0; | |||||
| } | } | ||||
| h1 { | h1 { | ||||
| @@ -10,4 +11,40 @@ h1 { | |||||
| img { | img { | ||||
| margin: auto; | margin: auto; | ||||
| } | |||||
| nav { | |||||
| margin-bottom: 10px; | |||||
| } | |||||
| nav li { | |||||
| float: left; | |||||
| } | |||||
| nav li a { | |||||
| display: block; | |||||
| color: white; | |||||
| text-align: center; | |||||
| padding: 20px 16px; | |||||
| text-decoration: none; | |||||
| } | |||||
| nav li a:hover { | |||||
| background-color: lightskyblue; | |||||
| } | |||||
| nav ul { | |||||
| list-style-type: none; | |||||
| margin: 0; | |||||
| padding: 0; | |||||
| overflow: hidden; | |||||
| background-color: gray; | |||||
| } | |||||
| #title { | |||||
| display: block; | |||||
| color: white; | |||||
| text-align: center; | |||||
| padding: 14px 16px; | |||||
| text-decoration: none; | |||||
| } | } | ||||
| @@ -1,4 +1,4 @@ | |||||
| $def with (entries, guestbook_form) | |||||
| $def with (nav, entries, guestbook_form) | |||||
| <head> | <head> | ||||
| <title>Friends</title> | <title>Friends</title> | ||||
| @@ -8,6 +8,9 @@ $def with (entries, guestbook_form) | |||||
| </head> | </head> | ||||
| <body> | <body> | ||||
| $:nav | |||||
| <h1>Guestbook</h1> | <h1>Guestbook</h1> | ||||
| <ul> | <ul> | ||||
| $for entry in entries: | $for entry in entries: | ||||
| @@ -23,6 +26,5 @@ $def with (entries, guestbook_form) | |||||
| $:guestbook_form.render() | $:guestbook_form.render() | ||||
| </form> | </form> | ||||
| <br> | |||||
| <a href="/">Home</a> | |||||
| </body> | |||||
| </body> | |||||
| @@ -1,4 +1,4 @@ | |||||
| $def with (nav) | |||||
| <head> | <head> | ||||
| <title>Beelance2</title> | <title>Beelance2</title> | ||||
| <meta charset="utf-8"> | <meta charset="utf-8"> | ||||
| @@ -8,16 +8,10 @@ | |||||
| <body> | <body> | ||||
| <h1>Beelance2</h1> | |||||
| <img src="static/honeybee.png" alt="Honeybee"> | |||||
| $:nav | |||||
| <br> | |||||
| <br> | |||||
| <a href="register"> - Register!</a> | |||||
| <br> | |||||
| <a href="guestbook">- Guestbook</a> | |||||
| <img src="static/honeybee.png" alt="Honeybee"> | |||||
| </body> | </body> | ||||
| @@ -1,16 +1,28 @@ | |||||
| $def with (login_form, friends) | |||||
| $def with (nav, login_form, friends) | |||||
| <h3>Log In</h3> | |||||
| <form method="POST"> | |||||
| $:login_form.render() | |||||
| </form> | |||||
| <head> | |||||
| <title>Beelance2</title> | |||||
| <meta charset="utf-8"> | |||||
| <link rel="stylesheet" type="text/css" href="static/stylesheet.css"> | |||||
| $if session.username: | |||||
| <h1>Logged in as $session.username</h1> | |||||
| <a href="logout">Logout</a> | |||||
| </head> | |||||
| <h3>Registered friends:</h3> | |||||
| <ul> | |||||
| $for user in friends: | |||||
| <li id="user[0]">$user[1]</li> | |||||
| </ul> | |||||
| <body> | |||||
| $:nav | |||||
| <h3>Log In</h3> | |||||
| <form method="POST"> | |||||
| $:login_form.render() | |||||
| </form> | |||||
| $if session.username: | |||||
| <h1>Logged in as $session.username</h1> | |||||
| <h3>Registered friends:</h3> | |||||
| <ul> | |||||
| $for user in friends: | |||||
| <li id="user[0]">$user[1]</li> | |||||
| </ul> | |||||
| </body> | |||||
| @@ -1,4 +1,4 @@ | |||||
| $def with (register_form) | |||||
| $def with (nav, register_form) | |||||
| <head> | <head> | ||||
| <title>Friends</title> | <title>Friends</title> | ||||
| @@ -8,6 +8,9 @@ $def with (register_form) | |||||
| </head> | </head> | ||||
| <body> | <body> | ||||
| $:nav | |||||
| <h2>Become a friend!</h2> | <h2>Become a friend!</h2> | ||||
| <form method="POST"> | <form method="POST"> | ||||
| $:register_form.render() | $:register_form.render() | ||||
| @@ -0,0 +1,15 @@ | |||||
| def get_nav_bar(session): | |||||
| result = '<nav>' | |||||
| result += ' <ul>' | |||||
| result += ' <li><h1 id="title">Beelance2</h1></li>' | |||||
| result += ' <li><a href="/">Home</a></li>' | |||||
| if session.username: | |||||
| result += ' <li><a href="logout">Logout</a></li>' | |||||
| else: | |||||
| result += ' <li><a href="register">Register</a></li>' | |||||
| result += ' <li><a href="login">Login</a></li>' | |||||
| result += ' <li><a href="guestbook">Guestbook</a></li>' | |||||
| result += ' </ul>' | |||||
| result += '</nav>' | |||||
| return result | |||||
| @@ -1,6 +1,7 @@ | |||||
| import web | import web | ||||
| from forms import login_form, register_form, guestbook_form | from forms import login_form, register_form, guestbook_form | ||||
| import model | import model | ||||
| from utils import get_nav_bar | |||||
| # Define application routes | # Define application routes | ||||
| urls = ( | urls = ( | ||||
| @@ -27,11 +28,14 @@ else: | |||||
| # Add session to global variables | # Add session to global variables | ||||
| render._add_global(session, 'session') | render._add_global(session, 'session') | ||||
| class Index(): | class Index(): | ||||
| # Get main page | # Get main page | ||||
| def GET(self): | def GET(self): | ||||
| return render.index() | |||||
| nav = get_nav_bar(session) | |||||
| return render.index(nav) | |||||
| class Login(): | class Login(): | ||||
| @@ -41,7 +45,8 @@ class Login(): | |||||
| friends = model.get_users() | friends = model.get_users() | ||||
| else: | else: | ||||
| friends = [[],[]] | friends = [[],[]] | ||||
| return render.login(login_form, friends) | |||||
| nav = get_nav_bar(session) | |||||
| return render.login(nav, login_form, friends) | |||||
| # Log In | # Log In | ||||
| def POST(self): | def POST(self): | ||||
| @@ -54,19 +59,21 @@ class Login(): | |||||
| session.username = data.username | session.username = data.username | ||||
| else: | else: | ||||
| friends = [[],[]] | friends = [[],[]] | ||||
| return render.login(login_form, friends) | |||||
| nav = get_nav_bar(session) | |||||
| return render.login(nav, login_form, friends) | |||||
| class Register: | class Register: | ||||
| # Get the registration form | # Get the registration form | ||||
| def GET(self): | def GET(self): | ||||
| return render.register(register_form) | |||||
| nav = get_nav_bar(session) | |||||
| return render.register(nav, register_form) | |||||
| # Register new user in database | # Register new user in database | ||||
| def POST(self): | def POST(self): | ||||
| data = web.input() | data = web.input() | ||||
| model.set_user(data.username, data.password) | |||||
| model.set_user(nav, data.username, data.password) | |||||
| raise web.seeother('/') | raise web.seeother('/') | ||||
| @@ -75,7 +82,8 @@ class Guestbook: | |||||
| # Get guestbook entries | # Get guestbook entries | ||||
| def GET(self): | def GET(self): | ||||
| entries = model.get_guestbook_entries() | entries = model.get_guestbook_entries() | ||||
| return render.guestbook(entries, guestbook_form) | |||||
| nav = get_nav_bar(session) | |||||
| return render.guestbook(nav, entries, guestbook_form) | |||||
| def POST(self): | def POST(self): | ||||
| data = web.input() | data = web.input() | ||||