Skip to content

Commit 49e9571

Browse files
committed
Chapter 12 done
1 parent 51f3b05 commit 49e9571

26 files changed

+127
-203
lines changed

Chapter 12/myProject/Package.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ let package = Package(
2121
.package(url: "https://github.com/binarybirds/content-api", from: "1.0.0"),
2222
.package(url: "https://github.com/binarybirds/view-kit", from: "1.2.0-rc"),
2323
.package(url: "https://github.com/binarybirds/leaf-foundation", from: "1.0.0-beta"),
24+
.package(url: "https://github.com/binarybirds/viper-kit", from: "1.4.0-beta"),
2425
],
2526
targets: [
2627
.target(name: "App", dependencies: [
@@ -34,6 +35,7 @@ let package = Package(
3435
.product(name: "ContentApi", package: "content-api"),
3536
.product(name: "ViewKit", package: "view-kit"),
3637
.product(name: "LeafFoundation", package: "leaf-foundation"),
38+
.product(name: "ViperKit", package: "viper-kit"),
3739
.product(name: "Vapor", package: "vapor"),
3840
],
3941
exclude: [
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import Vapor
22
import Fluent
33

4-
struct AdminModule: Module {
4+
struct AdminModule: ViperModule {
55

6-
var name: String = "admin"
6+
static var name: String = "admin"
77

8-
var router: RouteCollection? { AdminRouter() }
8+
var router: ViperRouter? { AdminRouter() }
99
}

Chapter 12/myProject/Sources/App/Modules/Admin/AdminRouter.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import Vapor
22

3-
struct AdminRouter: RouteCollection {
3+
struct AdminRouter: ViperRouter {
44

55
let controller = AdminController()
66

7-
func boot(routes: RoutesBuilder) throws {
7+
func boot(routes: RoutesBuilder, app: Application) throws {
88

99
routes.grouped(UserModelSessionAuthenticator())
1010
.get("admin", use: controller.homeView)
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<section>
2+
<label for="#(field.id)">#(field.label ?? field.id.capitalized())</label>
3+
<div id="image-uploader" class="image-uploader">
4+
#if(field.data.value != ""):
5+
<img id="uploaded-image" src="#(field.data.value)">
6+
#endif
7+
<a id="choose-button" href="javascript:void(0);" onclick="chooseImage();">Choose</a>
8+
<a id="remove-button" href="javascript:void(0);" onclick="removeImage()">Remove</a>
9+
<input id="#(field.id)Delete" name="#(field.id)Delete" type="hidden" value="false">
10+
<input id="#(field.id)" name="#(field.id)" type="file" accept="image/jpeg" style="display:none;">
11+
</div>
12+
#if(field.data.error != nil):
13+
<span class="error">#(field.data.error)</span>
14+
#endif
15+
</section>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<section>
2+
<label for="#(field.id)">#(field.label)</label>
3+
<select name="#(field.id)">
4+
#for(item in field.data.options):
5+
<option #if(item.key == field.data.value): selected="selected" #endif value="#(item.key)">#(item.label)</option>
6+
#endfor
7+
</select>
8+
#if(field.data.error != nil):
9+
<span class="error">#(field.data.error)</span>
10+
#endif
11+
</section>

Chapter 12/myProject/Sources/App/Modules/Admin/Views/Fields/Text.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<section>
2-
<label for="#(field.id)">#(field.title ?? field.id.capitalized())#if(field.required ?? false): <span class="required">(required)</span>#endif</label>
3-
<input type="text" id="#(field.id)" name="#(field.id)" value="#(field.data.value)" class="field">
2+
<label for="#(field.id)">#(field.label ?? field.id.capitalized())#if(field.required ?? false): <span class="required">(required)</span>#endif#if(field.more ?? false): <span class="more">(#(field.more))</span>#endif</label>
3+
<input type="text" id="#(field.id)" name="#(field.id)" value="#(field.data.value)" class="field">
44
#if(field.data.error != nil):
55
<span class="error">#(field.data.error)</span>
66
#endif
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<section>
2+
<label for="#(field.id)">#(field.label ?? field.id.capitalized())</label>
3+
<textarea name="#(field.id)" class="#(field.size)">#(field.data.value)</textarea>
4+
#if(field.data.error != nil):
5+
<span class="error">#(field.data.error)</span>
6+
#endif
7+
</section>

Chapter 12/myProject/Sources/App/Modules/Admin/Views/Form.html

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
1-
#let(title = "Blog admin")
21
#define(body):
32
<div class="wrapper">
4-
<h2><a href="/admin/blog/#(form.id)">#(form.title ?? form.id.capitalized())</a> / #(edit.id != nil ? "Edit" : "Create")</h2>
3+
<h2><a href="/#(form.url)">#(form.title ?? form.key.capitalized())</a> / #(form.id != nil ? "Edit" : "Create")</h2>
54
</div>
65

7-
<form id="#(form.id)-edit-form" class="wrapper" method="post" action="/admin/blog/#(form.id)/#(form.idValue ?? "new")/">
8-
<input type="hidden" name="id" value="#(form.idValue)">
6+
<form id="#(form.key)-edit-form" class="wrapper" method="post" action="/#(form.url)/#(form.id ?? "new")/">
7+
<input type="hidden" name="id" value="#(form.id)">
98

109
#fields()
1110

1211
<section>
13-
<input type="submit" class="submit" value="Save">
12+
<input type="submit" class="submit" value="#(form.button ?? "Save")">
1413
</section>
1514
</form>
1615
#enddefine

Chapter 12/myProject/Sources/App/Modules/Blog/BlogModule.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import Vapor
22
import Fluent
33

4-
struct BlogModule: Module {
4+
struct BlogModule: ViperModule {
55

6-
var name: String = "blog"
6+
static var name: String = "blog"
77

8-
var router: RouteCollection? { BlogRouter() }
8+
var router: ViperRouter? { BlogRouter() }
99

1010
var migrations: [Migration] {
1111
[

Chapter 12/myProject/Sources/App/Modules/Blog/BlogRouter.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import Vapor
22

3-
struct BlogRouter: RouteCollection {
3+
struct BlogRouter: ViperRouter {
44

55
let frontendController = BlogFrontendController()
66
let postAdminController = BlogPostAdminController()
77
let categoryAdminController = BlogCategoryAdminController()
88

9-
func boot(routes: RoutesBuilder) throws {
9+
func boot(routes: RoutesBuilder, app: Application) throws {
1010

1111
routes.get("blog", use: frontendController.blogView)
1212
routes.get(.anything, use: frontendController.postView)

0 commit comments

Comments
 (0)