@@ -6,57 +6,77 @@ | |||
<meta http-equiv="X-UA-Compatible" content="IE=edge"> | |||
<meta name="viewport" content="width=device-width, initial-scale=1"> | |||
<title>COPIM online toolkit</title> | |||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.min.css" /> | |||
<!-- Bootstrap CSS --> | |||
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> | |||
</head> | |||
<body> | |||
<section class="hero is-primary is-fullheight"> | |||
<div class="hero-head"> | |||
<nav class="navbar"> | |||
<div class="container"> | |||
<div id="navbarMenuHeroA" class="navbar-menu"> | |||
<div class="navbar-end"> | |||
<a href="{{ url_for('main.index') }}" class="navbar-item"> | |||
Home | |||
</a> | |||
{% if current_user.is_authenticated %} | |||
<a href="{{ url_for('tool.create') }}" class="navbar-item"> | |||
Add tool | |||
</a> | |||
{% endif %} | |||
{% if current_user.is_authenticated %} | |||
<a href="{{ url_for('main.profile') }}" class="navbar-item"> | |||
Profile | |||
</a> | |||
{% endif %} | |||
{% if not current_user.is_authenticated %} | |||
<a href="{{ url_for('auth.login') }}" class="navbar-item"> | |||
Login | |||
</a> | |||
<a href="{{ url_for('auth.signup') }}" class="navbar-item"> | |||
Sign Up | |||
</a> | |||
{% endif %} | |||
{% if current_user.is_authenticated %} | |||
<a href="{{ url_for('auth.logout') }}" class="navbar-item"> | |||
Logout | |||
</a> | |||
{% endif %} | |||
</div> | |||
</div> | |||
</div> | |||
</nav> | |||
<nav class="navbar navbar-expand-md navbar-light bg-light"> | |||
<a class="navbar-brand" href="{{ url_for('main.index')}}">COPIM online toolkit</a> | |||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation"> | |||
<span class="navbar-toggler-icon"></span> | |||
</button> | |||
<div class="collapse navbar-collapse" id="navbarNav"> | |||
<ul class="navbar-nav"> | |||
<li class="nav-item"> | |||
<a href="{{ url_for('main.index') }}" class="nav-link"> | |||
Home | |||
</a> | |||
</li> | |||
{% if current_user.is_authenticated %} | |||
<li class="nav-item"> | |||
<a href="{{ url_for('tool.create') }}" class="nav-link"> | |||
Add tool | |||
</a> | |||
</li> | |||
{% endif %} | |||
{% if current_user.is_authenticated %} | |||
<li class="nav-item"> | |||
<a href="{{ url_for('main.profile') }}" class="nav-link"> | |||
Profile | |||
</a> | |||
</li> | |||
{% endif %} | |||
{% if not current_user.is_authenticated %} | |||
<li class="nav-item"> | |||
<a href="{{ url_for('auth.login') }}" class="nav-link"> | |||
Login | |||
</a> | |||
</li> | |||
<li class="nav-item"> | |||
<a href="{{ url_for('auth.signup') }}" class="nav-link"> | |||
Sign Up | |||
</a> | |||
</li> | |||
{% endif %} | |||
{% if current_user.is_authenticated %} | |||
<li class="nav-item"> | |||
<a href="{{ url_for('auth.logout') }}" class="nav-link"> | |||
Logout | |||
</a> | |||
</li> | |||
{% endif %} | |||
</ul> | |||
</div> | |||
</nav> | |||
<div class="hero-body"> | |||
<div class="container has-text-centered"> | |||
{% block content %} | |||
{% endblock %} | |||
<div class="container"> | |||
{% with messages = get_flashed_messages() %} | |||
{% if messages %} | |||
<div class="alert alert-danger"> | |||
{{ messages[0] }} | |||
</div> | |||
</div> | |||
</section> | |||
{% endif %} | |||
{% endwith %} | |||
{% block content %} | |||
{% endblock %} | |||
</div> | |||
<!-- Optional JavaScript --> | |||
<!-- jQuery first, then Popper.js, then Bootstrap JS --> | |||
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> | |||
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script> | |||
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script> | |||
</body> | |||
</html> |
@@ -1,30 +1,19 @@ | |||
{% extends "base.html" %} | |||
{% block content %} | |||
<div class="column is-4 is-offset-4"> | |||
<h3 class="title">Add a new tool</h3> | |||
<div class="box"> | |||
{% with messages = get_flashed_messages() %} | |||
{% if messages %} | |||
<div class="notification is-danger"> | |||
{{ messages[0] }} | |||
</div> | |||
{% endif %} | |||
{% endwith %} | |||
<h1>{% block title %} Add a New Tool {% endblock %}</h1> | |||
<form method="POST" action="/create"> | |||
<div class="field"> | |||
<div class="control"> | |||
<input class="input is-large" type="text" name="name" placeholder="Tool name" autofocus=""> | |||
</div> | |||
<div class="form-group"> | |||
<label for="name">Name</label> | |||
<input class="form-control" type="text" name="name" placeholder="Tool name" autofocus=""> | |||
</div> | |||
<div class="field"> | |||
<div class="control"> | |||
<textarea class="input is-large" type="text" name="description" placeholder="Tool description" autofocus=""></textarea> | |||
</div> | |||
<div class="form-group"> | |||
<label for="description">Description</label> | |||
<textarea class="form-control" type="text" name="description" placeholder="Tool description" autofocus=""></textarea> | |||
</div> | |||
<button class="button is-block is-info is-large is-fullwidth">Submit</button> | |||
<button type="submit" class="btn btn-primary">Submit</button> | |||
</form> | |||
</div> | |||
</div> |
@@ -1,36 +1,21 @@ | |||
{% extends "base.html" %} | |||
{% block content %} | |||
<div class="column is-4 is-offset-4"> | |||
<h3 class="title">Login</h3> | |||
<div class="box"> | |||
{% with messages = get_flashed_messages() %} | |||
{% if messages %} | |||
<div class="notification is-danger"> | |||
{{ messages[0] }} | |||
</div> | |||
{% endif %} | |||
{% endwith %} | |||
<h1>{% block title %} Login {% endblock %}</h1> | |||
<form method="POST" action="/login"> | |||
<div class="field"> | |||
<div class="control"> | |||
<input class="input is-large" type="email" name="email" placeholder="Your Email" autofocus=""> | |||
</div> | |||
<div class="form-group"> | |||
<input class="form-control" type="email" name="email" placeholder="Your Email" autofocus=""> | |||
</div> | |||
<div class="field"> | |||
<div class="control"> | |||
<input class="input is-large" type="password" name="password" placeholder="Your Password"> | |||
</div> | |||
<div class="form-group"> | |||
<input class="form-control" type="password" name="password" placeholder="Your Password"> | |||
</div> | |||
<div class="field"> | |||
<div class="form-group"> | |||
<label class="checkbox"> | |||
<input type="checkbox"> | |||
Remember me | |||
</label> | |||
</div> | |||
<button class="button is-block is-info is-large is-fullwidth">Login</button> | |||
<button class="btn btn-primary">Login</button> | |||
</form> | |||
</div> | |||
</div> | |||
{% endblock %} |
@@ -1,36 +1,21 @@ | |||
{% extends "base.html" %} | |||
{% block content %} | |||
<div class="column is-4 is-offset-4"> | |||
<h3 class="title">Sign Up</h3> | |||
<div class="box"> | |||
{% with messages = get_flashed_messages() %} | |||
{% if messages %} | |||
<div class="notification is-danger"> | |||
{{ messages[0] }}. Go to <a href="{{ url_for('auth.login') }}">login page</a>. | |||
</div> | |||
{% endif %} | |||
{% endwith %} | |||
<h1>{% block title %} Sign Up {% endblock %}</h1> | |||
<form method="POST" action="/signup"> | |||
<div class="field"> | |||
<div class="control"> | |||
<input class="input is-large" type="email" name="email" placeholder="Email" autofocus=""> | |||
</div> | |||
<div class="form-group"> | |||
<input class="form-control" type="email" name="email" placeholder="Email" autofocus=""> | |||
</div> | |||
<div class="field"> | |||
<div class="control"> | |||
<input class="input is-large" type="text" name="name" placeholder="Name" autofocus=""> | |||
</div> | |||
<div class="form-group"> | |||
<input class="form-control" type="text" name="name" placeholder="Name" autofocus=""> | |||
</div> | |||
<div class="field"> | |||
<div class="control"> | |||
<input class="input is-large" type="password" name="password" placeholder="Password"> | |||
</div> | |||
<div class="form-group"> | |||
<input class="form-control" type="password" name="password" placeholder="Password"> | |||
</div> | |||
<button class="button is-block is-info is-large is-fullwidth">Sign Up</button> | |||
<button class="btn btn-primary">Sign Up</button> | |||
</form> | |||
</div> | |||
</div> |
@@ -1,4 +1,4 @@ | |||
from flask import Blueprint, render_template, request, flash | |||
from flask import Blueprint, render_template, request, flash, redirect, url_for | |||
from flask_login import login_required, current_user | |||
from .models import Tool | |||
from . import db |