refactored app structure
This commit is contained in:
14
app/templates/404.html
Normal file
14
app/templates/404.html
Normal file
@@ -0,0 +1,14 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block meta %}
|
||||
{{ super() }}
|
||||
<!-- Add additional meta tags here -->
|
||||
{% endblock %}
|
||||
|
||||
{% block title %}Testing{% endblock %}
|
||||
|
||||
{% block page_content %}
|
||||
<div class="page-header">
|
||||
<h1>Opps! File not found</h1>
|
||||
</div>
|
||||
{% endblock %}
|
||||
14
app/templates/500.html
Normal file
14
app/templates/500.html
Normal file
@@ -0,0 +1,14 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block meta %}
|
||||
{{ super() }}
|
||||
<!-- Add additional meta tags here -->
|
||||
{% endblock %}
|
||||
|
||||
{% block title %}Testing{% endblock %}
|
||||
|
||||
{% block page_content %}
|
||||
<div class="page-header">
|
||||
<h1>Opps! Technical difficulties</h1>
|
||||
</div>
|
||||
{% endblock %}
|
||||
61
app/templates/base.html
Normal file
61
app/templates/base.html
Normal file
@@ -0,0 +1,61 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
{% block meta %}
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
{% endblock %}
|
||||
<title>{% block title %}Y!oink Web App{% endblock %}</title>
|
||||
{% block styles %}
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/yoink.css') }}">
|
||||
{% endblock %}
|
||||
{% block scripts %}
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.min.js" integrity="sha384-QJHtvGhmr9XOIpI6YVutG+2QOK9T+ZnN4kzFN1RtK3zEFEIsxhlmWl5/YESvpZ13" crossorigin="anonymous"></script>
|
||||
{{ moment.include_moment() }}
|
||||
{% endblock %}
|
||||
<link rel="shortcut icon" href="{{ url_for('static', filename='images/comic.png') }}" type="image/x-icon">
|
||||
</head>
|
||||
<body>
|
||||
{% block navbar %}
|
||||
<nav class="navbar navbar-inverse">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||
<span class="sr-only">Toggle Navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
|
||||
<a href="/" class="navbar-brand">Y!oink</a>
|
||||
</div>
|
||||
|
||||
<div class="navbar-collapse collapse">
|
||||
<ul class="nav navbar-nav">
|
||||
<li>
|
||||
<a href="/">Y!oink</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container-fluid">
|
||||
{% for message in get_flashed_messages() %}
|
||||
<div class="alert alert-success alert-dismissible fade show" role="alert">
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
{{message}}
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% block page_content %}
|
||||
{% endblock %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
<script src="{{ url_for('static', filename='js/yoink.js') }}"></script>
|
||||
</body>
|
||||
</html>
|
||||
31
app/templates/index.html
Normal file
31
app/templates/index.html
Normal file
@@ -0,0 +1,31 @@
|
||||
{% extends "base.html" %}
|
||||
{% import 'macros/library.html' as library %}
|
||||
|
||||
{% block meta %}
|
||||
{{ super() }}
|
||||
<!-- Add additional meta tags here -->
|
||||
{% endblock %}
|
||||
|
||||
{% block title %}Testing{% endblock %}
|
||||
|
||||
{% block page_content %}
|
||||
<div class="page-header">
|
||||
<h1>Y!oink Web App</h1>
|
||||
</div>
|
||||
|
||||
<form method="post" onsubmit="download.disabled = true; url.readOnly = true; return true;">
|
||||
{{ form.hidden_tag() }}
|
||||
<div class="input-group mb-3">
|
||||
{{ form.series.label(class_='input-group-text') }}
|
||||
<div class="input-group-text">
|
||||
{{ form.series() }}
|
||||
</div>
|
||||
|
||||
{{ form.url(class_='form-control') }}
|
||||
{{ form.download(class_='btn btn-outline-primary') }}
|
||||
</div>
|
||||
</form>
|
||||
|
||||
{{ library.latest_downloads(latest) }}
|
||||
|
||||
{% endblock %}
|
||||
3
app/templates/macros/comments.html
Normal file
3
app/templates/macros/comments.html
Normal file
@@ -0,0 +1,3 @@
|
||||
{% macro render_comment(comment) %}
|
||||
<li>{{ comment }}</li>
|
||||
{% endmacro %}
|
||||
38
app/templates/macros/library.html
Normal file
38
app/templates/macros/library.html
Normal file
@@ -0,0 +1,38 @@
|
||||
<!-- latest downloads - limit to a max of 6 -->
|
||||
{% macro latest_downloads(comics) %}
|
||||
{% if comics %}
|
||||
<div class="row">
|
||||
<h2>Latest Downloads</h2>
|
||||
{% for comic in comics %}
|
||||
<div class="col col-md-3">
|
||||
<div class="card">
|
||||
<img src="{{ url_for('main.download_file', filename=comic['cover']) }}" alt="{{ comic['title'] }}" class="card-image-top position-relative">
|
||||
<div class="card-body">
|
||||
<h4 class="card-title">{{ comic['title'] }}</h4>
|
||||
<p class="card-text">{{ comic['title'] }}</p>
|
||||
</div>
|
||||
<div class="card-footer text-center">
|
||||
<a href="{{url_for('main.download_file', filename=comic.archive) }}" class="btn btn-info">Download Archive</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% else %}
|
||||
<p>Empty Comic Library</p>
|
||||
{% endif %}
|
||||
{% endmacro %}
|
||||
|
||||
<!-- all downloaded comics - TODO: pagination -->
|
||||
{% macro all_downloads(comics) %}
|
||||
{% if comics %}
|
||||
{% for comic in comics %}
|
||||
|
||||
<h3>{{ comic['title'] }}</h3>
|
||||
<img src="{{ url_for('main.download_file', filename=comic['cover']) }}">
|
||||
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<p>Empty Comic Library</p>
|
||||
{% endif %}
|
||||
{% endmacro %}
|
||||
Reference in New Issue
Block a user