Skip to content

Commit 55806e2

Browse files
committed
Chapter 10 updates [wip: broken edit => LeafKit bug]
1 parent c434ff4 commit 55806e2

File tree

19 files changed

+148
-201
lines changed

19 files changed

+148
-201
lines changed

Chapter 10/myProject/Package.resolved

Lines changed: 19 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Chapter 10/myProject/Package.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ let package = Package(
2020
.package(url: "https://github.com/binarybirds/view-kit", from: "1.2.0-rc"),
2121
.package(url: "https://github.com/binarybirds/viper-kit", from: "1.4.0-beta"),
2222
.package(url: "https://github.com/binarybirds/content-api", from: "1.0.5"),
23+
.package(url: "https://github.com/binarybirds/leaf-foundation", from: "1.0.0-beta"),
2324
.package(url: "https://github.com/lukaskubanek/LoremSwiftum", from: "2.2.1"),
2425
],
2526
targets: [
@@ -34,6 +35,7 @@ let package = Package(
3435
.product(name: "ViewKit", package: "view-kit"),
3536
.product(name: "ViperKit", package: "viper-kit"),
3637
.product(name: "ContentApi", package: "content-api"),
38+
.product(name: "LeafFoundation", package: "leaf-foundation"),
3739
.product(name: "LoremSwiftum", package: "LoremSwiftum"),
3840
.product(name: "Vapor", package: "vapor"),
3941
],

Chapter 10/myProject/Public/javascript/admin.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,37 @@ function confirmDelete(path, id) {
1414
}
1515
}
1616

17+
function chooseImage() {
18+
document.getElementById('imageDelete').value = false;
19+
document.getElementById('image').click();
20+
}
21+
function removeImage() {
22+
document.getElementById('image').value = null;
23+
document.getElementById('imageDelete').value = true;
24+
const element = document.getElementById('uploaded-image');
25+
if (element !== null) {
26+
element.parentNode.removeChild(element);
27+
}
28+
}
29+
30+
const imageElement = document.getElementById("image")
31+
if (imageElement !== null) {
32+
imageElement.onchange = function(event) {
33+
const file = event.target.files[0];
34+
const blobURL = URL.createObjectURL(file);
35+
let element = document.getElementById('uploaded-image');
36+
if (element === null) {
37+
var newElement = document.createElement("img");
38+
newElement.id = 'uploaded-image';
39+
const sibling = document.getElementById('choose-button');
40+
sibling.parentNode.insertBefore(newElement, sibling);
41+
element = newElement
42+
}
43+
element.src = blobURL;
44+
}
45+
}
46+
47+
1748
document.addEventListener("keydown", function(e) {
1849
if ( (window.navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey) && e.keyCode == 83 ) {
1950
e.preventDefault();

Chapter 10/myProject/Sources/App/Leaf/RequestSetQueryLeafFunction.swift

Lines changed: 0 additions & 33 deletions
This file was deleted.

Chapter 10/myProject/Sources/App/Modules/Admin/Views/Form/Edit.html renamed to Chapter 10/myProject/Sources/App/Modules/Admin/Views/Form.html

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
#define(body):
2-
#(let form = formData ?? nil)
3-
2+
#let(form = formData ?? nil)
43
<div class="wrapper">
54
<h2><a href="#(form.url)">#(form.title ?? form.key.capitalized())</a> / #(form.id != nil ? "Edit" : "Create")</h2>
65
</div>
76

87
<form id="#(form.key)-edit-form" class="wrapper" method="post" action="#(form.url)/#(form.id ?? "new")">
98
<input type="hidden" name="id" value="#(form.id)">
109

11-
#evaluate(fields)
10+
#fields()
1211

1312
<section>
1413
<input type="submit" class="submit" value="Save">
Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
1+
#let(field = fieldData ?? nil)
12
<section>
2-
<label for="image">Image</label>
3+
<label for="#(field.id)">#(field.label ?? field.id.capitalized())</label>
34
<div id="image-uploader" class="image-uploader">
4-
#if(edit.image.value != ""):
5-
<img id="uploaded-image" src="#(edit.image.value)">
5+
#if(field.data.value != ""):
6+
<img id="uploaded-image" src="#(field.data.value)">
67
#endif
78
<a id="choose-button" href="javascript:void(0);" onclick="chooseImage();">Choose</a>
89
<a id="remove-button" href="javascript:void(0);" onclick="removeImage()">Remove</a>
9-
<input id="imageDelete" name="imageDelete" type="hidden" value="false">
10-
<input id="image" name="image" type="file" accept="image/jpeg" style="display:none;">
10+
<input id="#(field.id)Delete" name="#(field.id)Delete" type="hidden" value="false">
11+
<input id="#(field.id)" name="#(field.id)" type="file" accept="image/jpeg" style="display:none;">
1112
</div>
12-
#if(edit.image.error != nil):
13-
<span class="error">#(edit.image.error)</span>
13+
#if(field.data.error != nil):
14+
<span class="error">#(field.data.error)</span>
1415
#endif
1516
</section>
Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
1-
#define(fieldBlock):
2-
#(let field = fieldData ?? nil)
1+
#let(field = fieldData ?? nil)
32
<section>
43
<label for="#(field.id)">#(field.label)</label>
54
<select name="#(field.id)">
6-
#for(item in field.field.options):
7-
<option #if(item.key == field.field.value): selected="selected" #endif value="#(item.key)">#(item.label)</option>
5+
#for(item in field.data.options):
6+
<option #if(item.key == field.data.value): selected="selected" #endif value="#(item.key)">#(item.label)</option>
87
#endfor
98
</select>
10-
#if(field.field.error != nil):
11-
<span class="error">#(field.field.error)</span>
9+
#if(field.data.error != nil):
10+
<span class="error">#(field.data.error)</span>
1211
#endif
1312
</section>
14-
#enddefine
15-
16-
#evaluate(fieldBlock)
Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,8 @@
1-
#define(fieldBlock):
2-
#(let field = fieldData ?? nil)
1+
#let(field = fieldData ?? nil)
32
<section>
43
<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>
5-
<input type="text" id="#(field.id)" name="#(field.id)" value="#(field.field.value)" class="field">
6-
#if(field.field.error != nil):
7-
<span class="error">#(field.field.error)</span>
4+
<input type="text" id="#(field.id)" name="#(field.id)" value="#(field.data.value)" class="field">
5+
#if(field.data.error != nil):
6+
<span class="error">#(field.data.error)</span>
87
#endif
98
</section>
10-
#enddefine
11-
#evaluate(fieldBlock)
12-
Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
1-
#define(fieldBlock):
2-
#(let field = fieldData ?? nil)
1+
#let(field = fieldData ?? nil)
32
<section>
43
<label for="#(field.id)">#(field.label ?? field.id.capitalized())</label>
5-
<textarea name="#(field.id)" class="#(field.size)">#(field.field.value)</textarea>
6-
#if(field.field.error != nil):
7-
<span class="error">#(field.field.error)</span>
4+
<textarea name="#(field.id)" class="#(field.size)">#(field.data.value)</textarea>
5+
#if(field.data.error != nil):
6+
<span class="error">#(field.data.error)</span>
87
#endif
98
</section>
10-
#enddefine
11-
#evaluate(fieldBlock)

Chapter 10/myProject/Sources/App/Modules/Admin/Views/Home.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#define(title, "Admin home")
1+
#let(title = "Admin home")
22
#define(body):
33
<section class="wrapper">
44
<h2>#(header)</h2>

0 commit comments

Comments
 (0)