瀏覽代碼

Create backend main layout. Replace tab with space

JoostSijm 6 年之前
父節點
當前提交
b108734c3f
共有 6 個文件被更改,包括 213 次插入289 次删除
  1. 46 0
      app/templates/layout/backend.j2
  2. 26 52
      app/templates/page/create.j2
  3. 31 57
      app/templates/page/edit.j2
  4. 6 34
      app/templates/page/view.j2
  5. 42 84
      app/templates/site/index.j2
  6. 62 62
      app/templates/user/login.j2

+ 46 - 0
app/templates/layout/backend.j2

@@ -0,0 +1,46 @@
+
+<!DOCTYPE html>
+<html>
+<head>
+    <title>Backend</title>
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <script src="/static/js/main.js"></script>
+</head>
+<body>
+    <nav class="navbar navbar-expand-md navbar-dark bg-dark">
+        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsDefault" aria-controls="navbarsDefault" aria-expanded="false" aria-label="Toggle navigation">
+            <span class="navbar-toggler-icon"></span>
+        </button>
+        <div class="collapse navbar-collapse" id="navbarsDefault">
+            <ul class="navbar-nav mr-auto">
+                {%- for item in current_menu.children recursive -%}
+                <li class="nav-item {{ 'active' if item.active }}" data-toggle="tooltip" data-placement="right" title="{{ item.text }}">
+                    <a class="nav-link" href="{{ item.url}}">
+                        <span class="nav-link-text">{{ item.text }}</span>
+                    </a>
+                </li>
+                {%- endfor -%}
+            </ul>
+            <ul class="navbar-nav">
+                <li class="nav-item text-nowrap">
+                      <a class="nav-link" href="#">Sign out</a>
+                </li>
+            </ul>
+        </div>
+    </nav>
+    <main class="container">
+        {% with messages = get_flashed_messages(with_categories=true) %}
+        {% if messages %}
+        {% for category, message in messages %}
+        <div class="alert alert-{{ category }} alert-dismissible fade show" role="alert">
+            {{ message }}
+            <button type="button" class="close" data-dismiss="alert" aria-label="Close">
+                <span aria-hidden="true">&times;</span>
+            </button>
+        </div>
+        {% endfor %}
+        {% endif %}
+        {% endwith %}
+        {% block content %}{% endblock %}
+    </main>
+</body>

+ 26 - 52
app/templates/page/create.j2

@@ -1,52 +1,26 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>Page create</title>
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-</head>
-<body>
-	{% with messages = get_flashed_messages(with_categories=true) %}
-	{% if messages %}
-	{% for category, message in messages %}
-	<div class="alert alert-{{ category }} alert-dismissible fade show" role="alert">
-		{{ message }}
-		<button type="button" class="close" data-dismiss="alert" aria-label="Close">
-			<span aria-hidden="true">&times;</span>
-		</button>
-	</div>
-	{% endfor %}
-	{% endif %}
-	{% endwith %}
-	<ul>
-		{%- for item in current_menu.children recursive -%}
-		<li class="nav-item" data-toggle="tooltip" data-placement="right" title="{{ item.text }}">
-		    <a class="nav-link" href="{{ item.url}}">
-		        <span class="nav-link-text">{{ item.text }}</span>
-		    </a>
-		</li>
-		{%- endfor -%}
-	</ul>
-	<h1>Page create</h1>
-	<form method="post">
-		<div class="form-group">
-			<label class="text-normal text-dark">title</label>
-			<input type="text" class="form-control" name="title" placeholder="title">
-		</div>
-		<div class="form-group">
-			<label class="text-normal text-dark">Source</label>
-			<textarea class="form-control" name="source"></textarea>
-		</div>
-		<div class="form-group">
-			<label class="text-normal text-dark">Parent</label>
-			<select class="form-control" name="parent_id">
-				<option></option>
-				{% for page in pages %}
-				<option value="{{ page.id }}">{{ page.title }}</option>
-				{% endfor %}
-			</select>
-		</div>
-		<div class="form-group pull-right">
-			<button class="btn btn-primary">Create</button>
-		</div>
-	</form>
-</body>
+{% extends "layout/backend.j2" %}
+{% block content %}
+<h1>Page create</h1>
+<form method="post">
+    <div class="form-group">
+        <label class="text-normal text-dark">title</label>
+        <input type="text" class="form-control" name="title" placeholder="title">
+    </div>
+    <div class="form-group">
+        <label class="text-normal text-dark">Source</label>
+        <textarea class="form-control" name="source"></textarea>
+    </div>
+    <div class="form-group">
+        <label class="text-normal text-dark">Parent</label>
+        <select class="form-control" name="parent_id">
+            <option></option>
+            {% for page in pages %}
+            <option value="{{ page.id }}">{{ page.title }}</option>
+            {% endfor %}
+        </select>
+    </div>
+    <div class="form-group pull-right">
+        <button class="btn btn-primary">Create</button>
+    </div>
+</form>
+{% endblock %}

+ 31 - 57
app/templates/page/edit.j2

@@ -1,57 +1,31 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>Edit: {{ page.title }}</title>
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-</head>
-<body>
-	{% with messages = get_flashed_messages(with_categories=true) %}
-	{% if messages %}
-	{% for category, message in messages %}
-	<div class="alert alert-{{ category }} alert-dismissible fade show" role="alert">
-		{{ message }}
-		<button type="button" class="close" data-dismiss="alert" aria-label="Close">
-			<span aria-hidden="true">&times;</span>
-		</button>
-	</div>
-	{% endfor %}
-	{% endif %}
-	{% endwith %}
-	<ul>
-		{%- for item in current_menu.children recursive -%}
-		<li class="nav-item" data-toggle="tooltip" data-placement="right" title="{{ item.text }}">
-		    <a class="nav-link" href="{{ item.url}}">
-		        <span class="nav-link-text">{{ item.text }}</span>
-		    </a>
-		</li>
-		{%- endfor -%}
-	</ul>
-	<h1>Edit: {{ page.title }}</h1>
-	<form method="post">
-		<div class="form-group">
-			<label class="text-normal text-dark">title</label>
-			<input type="text" class="form-control" name="title" placeholder="title" value="{{ page.title }}">
-		</div>
-		<div class="form-group">
-			<label class="text-normal text-dark">Source</label>
-			<textarea class="form-control" name="source">{{ page.source }}</textarea>
-		</div>
-		<div class="form-group">
-			<label class="text-normal text-dark">Parent</label>
-			<select class="form-control" name="parent_id">
-				<option></option>
-				{% for parent_page in pages %}
-				{% if parent_page.id == page.parent_id %}
-				<option value="{{ parent_page.id }}" selected>{{ parent_page.title }}</option>
-				{% else %}
-				<option value="{{ parent_page.id }}">{{ parent_page.title }}</option>
-				{% endif %}
-				{% endfor %}
-			</select>
-		</div>
-		<div class="form-group pull-right">
-			<button class="btn btn-primary">Save</button>
-		</div>
-	</form>
-	<p>{{ page.content() }}</p>
-</body>
+{% extends "layout/backend.j2" %}
+{% block content %}
+<h1>Edit: {{ page.title }}</h1>
+<form method="post">
+    <div class="form-group">
+        <label class="text-normal text-dark">title</label>
+        <input type="text" class="form-control" name="title" placeholder="title" value="{{ page.title }}">
+    </div>
+    <div class="form-group">
+        <label class="text-normal text-dark">Source</label>
+        <textarea class="form-control" name="source">{{ page.source }}</textarea>
+    </div>
+    <div class="form-group">
+        <label class="text-normal text-dark">Parent</label>
+        <select class="form-control" name="parent_id">
+            <option></option>
+            {% for parent_page in pages %}
+            {% if parent_page.id == page.parent_id %}
+            <option value="{{ parent_page.id }}" selected>{{ parent_page.title }}</option>
+            {% else %}
+            <option value="{{ parent_page.id }}">{{ parent_page.title }}</option>
+            {% endif %}
+            {% endfor %}
+        </select>
+    </div>
+    <div class="form-group pull-right">
+        <button class="btn btn-primary">Save</button>
+    </div>
+</form>
+<p>{{ page.content() }}</p>
+{% endblock %}

+ 6 - 34
app/templates/page/view.j2

@@ -1,34 +1,6 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>View: {{ page.title }}</title>
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-</head>
-<body>
-	{% with messages = get_flashed_messages(with_categories=true) %}
-	{% if messages %}
-	{% for category, message in messages %}
-	<div class="alert alert-{{ category }} alert-dismissible fade show" role="alert">
-		{{ message }}
-		<button type="button" class="close" data-dismiss="alert" aria-label="Close">
-			<span aria-hidden="true">&times;</span>
-		</button>
-	</div>
-	{% endfor %}
-	{% endif %}
-	{% endwith %}
-	<ul>
-		{%- for item in current_menu.children recursive -%}
-		<li class="nav-item" data-toggle="tooltip" data-placement="right" title="{{ item.text }}">
-		    <a class="nav-link" href="{{ item.url}}">
-		        <span class="nav-link-text">{{ item.text }}</span>
-		    </a>
-		</li>
-		{%- endfor -%}
-	</ul>
-	<h1>Title: {{ page.title }}</h1>
-	<a href="{{ url_for('backend.edit_page', page_id=page.id) }}">Edit</a><br>
-	<p>{{ page.source }}</p>
-	<hr>
-	<p>{{ page.content() }}</p>
-</body>
+{% extends "layout/backend.j2" %}
+{% block content %}
+<h1>Title: {{ page.title }}</h1>
+<a href="{{ url_for('backend.edit_page', page_id=page.id) }}">Edit</a><br>
+<p>{{ page.content() }}</p>
+{% endblock %}

+ 42 - 84
app/templates/site/index.j2

@@ -1,85 +1,43 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>Backend</title>
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <script src="/static/js/main.js"></script>
-</head>
-<body>
-    <nav class="navbar navbar-expand-md navbar-dark bg-dark">
-        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsDefault" aria-controls="navbarsDefault" aria-expanded="false" aria-label="Toggle navigation">
-            <span class="navbar-toggler-icon"></span>
-        </button>
-        <div class="collapse navbar-collapse" id="navbarsDefault">
-            <ul class="navbar-nav mr-auto">
-                {%- for item in current_menu.children recursive -%}
-                <li class="nav-item {{ 'active' if item.active }}" data-toggle="tooltip" data-placement="right" title="{{ item.text }}">
-                    <a class="nav-link" href="{{ item.url}}">
-                        <span class="nav-link-text">{{ item.text }}</span>
+{% extends "layout/backend.j2" %}
+{% block content %}
+<h1>Backend</h1>
+<p>List of pages</p>
+<div class="table-responsive">
+    <table class="table table-striped table-sm">
+        <thead>
+            <tr>
+                <th>Action</th>
+                <th>Title</th>
+                <th>Datum</th>
+                <th>Author</th>
+            </tr>
+        </thead>
+        <tbody>
+            {%- for page in pages recursive -%}
+            <tr>
+                <td>
+                    <div class="btn-group">
+                        <button class="btn btn-secondary btn-sm dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                            Action
+                        </button>
+                        <div class="dropdown-menu">
+                            <a class="dropdown-item" href="{{ url_for('backend.view_page', page_id=page.id) }}">View</a>
+                            <a class="dropdown-item" href="{{ url_for('backend.edit_page', page_id=page.id) }}">Edit</a>
+                            <a class="dropdown-item" href="{{ url_for('backend.remove_page', page_id=page.id) }}">Remove</a>
+                        </div>
+                    </div>
+                </td>
+                <td>
+                    {{ '> ' * (loop.depth - 1) }}<a href="{{ url_for('backend.view_page', page_id=page.id) }}">
+                        {{ page.title if page.title else 'page %s' % page.id }}
                     </a>
-                </li>
-                {%- endfor -%}
-            </ul>
-            <ul class="navbar-nav">
-                <li class="nav-item text-nowrap">
-                      <a class="nav-link" href="#">Sign out</a>
-                </li>
-            </ul>
-        </div>
-    </nav>
-    <main class="container">
-        {% with messages = get_flashed_messages(with_categories=true) %}
-        {% if messages %}
-        {% for category, message in messages %}
-        <div class="alert alert-{{ category }} alert-dismissible fade show" role="alert">
-            {{ message }}
-            <button type="button" class="close" data-dismiss="alert" aria-label="Close">
-                <span aria-hidden="true">&times;</span>
-            </button>
-        </div>
-        {% endfor %}
-        {% endif %}
-        {% endwith %}
-        <h1>Backend</h1>
-        <h1>Bootstrap starter template</h1>
-        <p class="lead">Use this document as a way to quickly start any new project.<br> All you get is this text and a mostly barebones HTML document.</p>
-        <div class="table-responsive">
-            <table class="table table-striped table-sm">
-                <thead>
-                    <tr>
-                        <th>Action</th>
-                        <th>Title</th>
-                        <th>Datum</th>
-                        <th>Author</th>
-                    </tr>
-                </thead>
-                <tbody>
-                    {%- for page in pages recursive -%}
-                    <tr>
-                        <td>
-                            <div class="btn-group">
-                                <button class="btn btn-secondary btn-sm dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                                    Small button
-                                </button>
-                                <div class="dropdown-menu">
-                                    <a class="dropdown-item" href="{{ url_for('backend.view_page', page_id=page.id) }}">View</a>
-                                    <a class="dropdown-item" href="{{ url_for('backend.edit_page', page_id=page.id) }}">Edit</a>
-                                    <a class="dropdown-item" href="{{ url_for('backend.remove_page', page_id=page.id) }}">Remove</a>
-                                </div>
-                            </div>
-                        </td>
-                        <td>
-                            {{ '> ' * (loop.depth - 1) }}<a href="{{ url_for('backend.view_page', page_id=page.id) }}">
-                                {{ page.title if page.title else 'page %s' % page.id }}
-                            </a>
-                        </td>
-                        <td>{{ page.datetime }}</td>
-                        <td>{{ page.user.name }}</td>
-                    </tr>
-                    {{ loop(page.children) }}
-                    {%- endfor -%}
-                </tbody>
-            </table>
-        </div>
-    </main>
-</body>
+                </td>
+                <td>{{ page.datetime }}</td>
+                <td>{{ page.user.name }}</td>
+            </tr>
+            {{ loop(page.children) }}
+            {%- endfor -%}
+        </tbody>
+    </table>
+</div>
+{% endblock %}

+ 62 - 62
app/templates/user/login.j2

@@ -6,66 +6,66 @@
     <script src="/static/js/main.js"></script>
 </head>
 <body class="bg-dark">
-	<div class="container">
-		<div class="card mx-auto mt-5">
-			<div class="card-header">
-				<i class="fa fa-user"></i> Login
-				<div class="float-right">
-					<a href="{{ request.referrer }}" class="btn btn-sm btn-secondary">Cancel</a>
-				</div>
-			</div>
-			<div class="card-body">
-				{% with messages = get_flashed_messages(with_categories=true) %}
-				{% if messages %}
-				{% for category, message in messages %}
-				<div class="alert alert-{{ category }} alert-dismissible fade show" role="alert">
-					{{ message }}
-					<button type="button" class="close" data-dismiss="alert" aria-label="Close">
-						<span aria-hidden="true">&times;</span>
-					</button>
-				</div>
-				{% endfor %}
-				{% endif %}
-				{% endwith %}
-				<div class="row">
-					<div class="col-12 col-md-6">
-						<h2>Login</h2>
-						<form method="post">
-							<div class="form-group">
-								<label class="text-normal text-dark">Email</label>
-								<input type="email" class="form-control" name="email" placeholder="Email">
-							</div>
-							<div class="form-group">
-								<label class="text-normal text-dark">Password</label>
-								<input type="password" class="form-control" name="password" placeholder="Password">
-							</div>
-							<div class="form-group float-right">
-								<button class="btn btn-primary">Login</button>
-							</div>
-						</form>
-					</div>
-					<div class="col-12 col-md-6">
-						<h2>Register</h2>
-						<form action="{{ url_for('backend.register')}}" method="post">
-							<div class="form-group">
-								<label class="text-normal text-dark">Name</label>
-								<input type="text" class="form-control" name="name" placeholder="Name" value="{{ name }}" required>
-							</div>
-							<div class="form-group">
-								<label class="text-normal text-dark">Email</label>
-								<input type="email" class="form-control" name="email" placeholder="Email" value="{{ email }}" required>
-							</div>
-							<div class="form-group">
-								<label class="text-normal text-dark">Password</label>
-								<input type="password" class="form-control" name="password" placeholder="Password" required>
-							</div>
-							<div class="form-group float-right">
-								<button class="btn btn-primary">Register</button>
-							</div>
-						</form>
-					</div>
-				</div>
-			</div>
-		</div>
-	</div>
+    <div class="container">
+        <div class="card mx-auto mt-5">
+            <div class="card-header">
+                <i class="fa fa-user"></i> Login
+                <div class="float-right">
+                    <a href="{{ request.referrer }}" class="btn btn-sm btn-secondary">Cancel</a>
+                </div>
+            </div>
+            <div class="card-body">
+                {% with messages = get_flashed_messages(with_categories=true) %}
+                {% if messages %}
+                {% for category, message in messages %}
+                <div class="alert alert-{{ category }} alert-dismissible fade show" role="alert">
+                    {{ message }}
+                    <button type="button" class="close" data-dismiss="alert" aria-label="Close">
+                        <span aria-hidden="true">&times;</span>
+                    </button>
+                </div>
+                {% endfor %}
+                {% endif %}
+                {% endwith %}
+                <div class="row">
+                    <div class="col-12 col-md-6">
+                        <h2>Login</h2>
+                        <form method="post">
+                            <div class="form-group">
+                                <label class="text-normal text-dark">Email</label>
+                                <input type="email" class="form-control" name="email" placeholder="Email">
+                            </div>
+                            <div class="form-group">
+                                <label class="text-normal text-dark">Password</label>
+                                <input type="password" class="form-control" name="password" placeholder="Password">
+                            </div>
+                            <div class="form-group float-right">
+                                <button class="btn btn-primary">Login</button>
+                            </div>
+                        </form>
+                    </div>
+                    <div class="col-12 col-md-6">
+                        <h2>Register</h2>
+                        <form action="{{ url_for('backend.register')}}" method="post">
+                            <div class="form-group">
+                                <label class="text-normal text-dark">Name</label>
+                                <input type="text" class="form-control" name="name" placeholder="Name" value="{{ name }}" required>
+                            </div>
+                            <div class="form-group">
+                                <label class="text-normal text-dark">Email</label>
+                                <input type="email" class="form-control" name="email" placeholder="Email" value="{{ email }}" required>
+                            </div>
+                            <div class="form-group">
+                                <label class="text-normal text-dark">Password</label>
+                                <input type="password" class="form-control" name="password" placeholder="Password" required>
+                            </div>
+                            <div class="form-group float-right">
+                                <button class="btn btn-primary">Register</button>
+                            </div>
+                        </form>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
 </body>