Skip to content
This repository was archived by the owner on Jan 13, 2025. It is now read-only.

Commit 5bcc0f8

Browse files
authored
Merge pull request #119 from FifthTry/feat/multi-templ
Enable support for multiple templates in /create-site/
2 parents cee8c47 + 8b08a8f commit 5bcc0f8

File tree

9 files changed

+166
-58
lines changed

9 files changed

+166
-58
lines changed

actions/create-site-action.ftd

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,14 @@ ftd.string-field $site_slug:
1010
ftd.boolean-field public_source:
1111
js: $assets.files.assets.functions.js
1212

13-
callAlert("creating site: " + site_slug.value + ", under org: " + org_slash_username + " is public: ", public_source.value)
13+
callAlert("creating site: " + site_slug.value + ", under org: " + org_slash_username + " is public: " + public_source.value)
14+
15+
16+
-- void submit-with-templ(org_slash_username, site_slug, public_source, sample_site_id):
17+
string org_slash_username:
18+
ftd.string-field $site_slug:
19+
ftd.boolean-field public_source:
20+
ftd.integer-field sample_site_id:
21+
js: $assets.files.assets.functions.js
22+
23+
callAlert("creating site with templ: " + site_slug.value + ", under org: " + org_slash_username + " is public: " + public_source.value + " sample site: " + sample_site_id.value)

components/featured/page.ftd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ ud.user-data user-data:
1111
template-record.template list templates:
1212
children children:
1313

14-
-- ds.page: FifthTry | Better way To Build Websites
14+
-- ds.page: Templates
1515
spacing: $ds.spaces.vertical-gap.small.gap
1616
margin: $ds.spaces.vertical-gap.zero
1717

components/sites/create-site.ftd

Lines changed: 82 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,15 @@
22
-- import: ui.fifthtry.com/components/label as l
33
-- import: ui.fifthtry.com/actions/create-site-action
44
-- import: ui.fifthtry.com/utils as u
5+
-- import: ui.fifthtry.com/records/sites as site-records
56

67

78
-- component create-site:
8-
string org-slash-username:
9+
string org-slug:
910
module create-site-action: create-site-action
1011
string dashboard-url:
12+
optional site-records.sample-site-data sample-site:
13+
1114

1215
-- ds.section-column:
1316

@@ -59,6 +62,28 @@ string dashboard-url:
5962

6063
-- end: ds.column
6164

65+
-- ds.row:
66+
align-content: left
67+
spacing: $ds.spaces.horizontal-gap.small
68+
if: { create-site.sample-site }
69+
70+
-- ds.copy-small: $use-template-text(title=$create-site.sample-site.title, link=$create-site.sample-site.ide-link)
71+
72+
-- end: ds.row
73+
74+
-- ds.row:
75+
align-content: left
76+
spacing: $ds.spaces.horizontal-gap.small
77+
if: { !create-site.sample-site }
78+
79+
-- ds.copy-small: $featured-page-msg(org = $create-site.org-slug)
80+
if: { create-site.org-slug != "" }
81+
82+
-- ds.copy-small: This site will be created using a Blog template. Browse [community templates](/featured/) for more.
83+
if: { create-site.org-slug == "" }
84+
85+
-- end: ds.row
86+
6287
-- ds.column:
6388
align-content: top-left
6489

@@ -82,10 +107,17 @@ string dashboard-url:
82107
-- ds.row:
83108
spacing: $ds.spaces.horizontal-gap.medium
84109

110+
-- ds.primary-button: Create Site With Template
111+
if: { create-site.sample-site }
112+
width: full
113+
radius: curved
114+
$on-click$: $create-site.create-site-action.submit-with-templ(org_slash_username = $create-site.org-slug, $site_slug = $create-site.create-site-action.site-slug, public_source = $create-site.create-site-action.public-source, sample_site_id = $create-site.sample-site.id)
115+
85116
-- ds.primary-button: Create Site
117+
if: { !create-site.sample-site }
86118
width: full
87119
radius: curved
88-
$on-click$: $create-site.create-site-action.submit(org_slash_username = $create-site.org-slash-username, $site_slug = $create-site.create-site-action.site-slug, public_source = $create-site.create-site-action.public-source)
120+
$on-click$: $create-site.create-site-action.submit(org_slash_username = $create-site.org-slug, $site_slug = $create-site.create-site-action.site-slug, public_source = $create-site.create-site-action.public-source)
89121

90122
-- ds.secondary-button: Cancel
91123
width: full
@@ -143,8 +175,31 @@ string dashboard-url:
143175

144176
-- end: ds.column
145177

178+
-- ds.column:
179+
align-content: left
180+
spacing: $ds.spaces.horizontal-gap.small
181+
if: { create-site.sample-site }
182+
183+
-- ds.copy-small: $use-template-text(title=$create-site.sample-site.title, link=$create-site.sample-site.ide-link)
184+
185+
-- end: ds.column
186+
187+
-- ds.column:
188+
align-content: left
189+
spacing: $ds.spaces.horizontal-gap.small
190+
if: { !create-site.sample-site }
191+
192+
-- ds.copy-small: $featured-page-msg(org = $create-site.org-slug)
193+
if: { create-site.org-slug != "" }
194+
195+
-- ds.copy-small: This site will be created using a Blog template. Browse [community templates](/featured/) for more.
196+
if: { create-site.org-slug == "" }
197+
198+
-- end: ds.column
199+
146200
-- ds.column:
147201
align-content: top-left
202+
spacing: $ds.spaces.horizontal-gap.small
148203

149204
-- ds.checkbox: Make site public so that others can view source of your site
150205
$is-checked: $create-site.create-site-action.public-source.value
@@ -166,12 +221,19 @@ string dashboard-url:
166221

167222
-- ds.column:
168223
spacing: $ds.spaces.vertical-gap.medium
169-
170-
-- ds.primary-button: Create Site
171-
width: full
172-
radius: curved
173-
$on-click$: $create-site.create-site-action.submit(org_slash_username = $create-site.org-slash-username, $site_slug = $create-site.create-site-action.site-slug, public_source = $create-site.create-site-action.public-source)
174-
224+
225+
-- ds.primary-button: Create Site With Template
226+
if: { create-site.sample-site }
227+
width: full
228+
radius: curved
229+
$on-click$: $create-site.create-site-action.submit-with-templ(org_slash_username = $create-site.org-slug, $site_slug = $create-site.create-site-action.site-slug, public_source = $create-site.create-site-action.public-source, sample_site_id = $create-site.sample-site.id)
230+
231+
-- ds.primary-button: Create Site
232+
if: { !create-site.sample-site }
233+
width: full
234+
radius: curved
235+
$on-click$: $create-site.create-site-action.submit(org_slash_username = $create-site.org-slug, $site_slug = $create-site.create-site-action.site-slug, public_source = $create-site.create-site-action.public-source)
236+
175237
-- ds.secondary-button: Cancel
176238
width: full
177239
radius: curved
@@ -186,3 +248,15 @@ string dashboard-url:
186248
-- end: ds.section-column
187249

188250
-- end: create-site
251+
252+
-- string use-template-text(title, link):
253+
string title:
254+
string link:
255+
256+
257+
"This site will be created using [" + title + "](" + link + ")."
258+
259+
-- string featured-page-msg(org):
260+
string org:
261+
262+
"This site will be created using a Blog template. Browse [community templates](/featured/?r=" + org + ") for more."

pages/featured/index.ftd

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,47 @@
11
-- import: ui.fifthtry.com/components/featured/page as p
22
-- import: ui.fifthtry.com/site-data
33
-- import: ui.fifthtry.com/records/user-data as ud
4-
-- import: ui.fifthtry.com/records/sites as templates-record
4+
-- import: ui.fifthtry.com/records/sites as site-records
55
-- import: ui.fifthtry.com/pages/featured/template
66

7+
-- site-records.template list templates:
8+
9+
-- site-records.template:
10+
title: Blog Template
11+
preview-url: https://blog.fifthtry.site/
12+
preview-img: $assets.files.assets.templates.blog-temp.png
13+
slug: blog
14+
15+
-- site-records.template:
16+
title: Simple Website Template
17+
preview-url: https://simple-website-template.fifthtry.site/
18+
preview-img: $assets.files.assets.templates.simple-ws-temp.png
19+
slug: simple-website-template
20+
21+
-- site-records.template:
22+
title: Website Template
23+
preview-url: https://website-template.fifthtry.site/
24+
preview-img: $assets.files.assets.templates.ws-temp.png
25+
slug: website-template
26+
27+
-- site-records.template:
28+
title: Simple Blog Template
29+
preview-url: https://simple-blog-template.fifthtry.site/
30+
preview-img: $assets.files.assets.templates.simple-blog-temp.png
31+
slug: simple-blog-template
32+
33+
-- site-records.template:
34+
title: Resume Template
35+
preview-url: https://resume-template.fifthtry.site/
36+
preview-img: $assets.files.assets.templates.resume.png
37+
slug: resume-template
38+
39+
-- end: templates
40+
741
-- component page:
842
module site-data: site-data
943
ud.user-data user-data:
10-
templates-record.template list templates:
44+
site-records.template list templates: $templates
1145

1246
-- p.page:
1347
site-data: $page.site-data

pages/featured/template.ftd

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
-- import: ui.fifthtry.com/records/sites as template-record
2+
-- import: fastn/processors as pr
3+
4+
;; org-slug
5+
-- optional string r:
6+
$processor$: pr.request-data
27

38

49

@@ -22,7 +27,7 @@ align-content: top-left
2227
title: $obj.title
2328
preview-url: $obj.preview-url
2429
preview-img: $obj.preview-img
25-
id: $obj.id
30+
slug: $obj.slug
2631

2732
-- end: ds.row
2833

@@ -39,7 +44,7 @@ align-content: top-left
3944
title: $obj.title
4045
preview-url: $obj.preview-url
4146
preview-img: $obj.preview-img
42-
id: $obj.id
47+
slug: $obj.slug
4348

4449
-- end: ds.column
4550

@@ -62,7 +67,7 @@ align-content: top-left
6267
string title:
6368
string preview-url:
6469
ftd.image-src preview-img:
65-
integer id:
70+
string slug:
6671
boolean $mouse-in: false
6772

6873
-- ds.column:
@@ -89,14 +94,13 @@ text: $grid-of-items.title
8994
-- ds.row:
9095

9196
-- ds.primary-button: Use Template
92-
link: $grid-of-items.preview-url
97+
link if { r }: $create-site-with-org-link(slug = $grid-of-items.slug, org = $r)
98+
link if { !r }: $create-site-link(slug = $grid-of-items.slug)
9399
width: full
94-
open-in-new-tab: true
95100

96101
-- ds.secondary-button: Preview
97102
width: full
98103
link: $grid-of-items.preview-url
99-
open-in-new-tab: true
100104

101105
-- end: ds.row
102106

@@ -111,3 +115,14 @@ open-in-new-tab: true
111115
-- ftd.color overlay-bg:
112116
light: #00000066
113117
dark: #00000066
118+
119+
-- string create-site-with-org-link(slug, org):
120+
string slug:
121+
string org:
122+
123+
"/o/" + org + "/create-site/?t=" + slug
124+
125+
-- string create-site-link(slug):
126+
string slug:
127+
128+
"/create-site/?t=" + slug

pages/org/create-site.ftd

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
-- import: ui.fifthtry.com/components/label as l
44
-- import: ui.fifthtry.com/site-data
55
-- import: ui.fifthtry.com/records/user-data as ud
6+
-- import: ui.fifthtry.com/records/sites as site-records
67
-- import: ui.fifthtry.com/actions/create-site-action
78
-- import: ui.fifthtry.com/utils as u
89

@@ -16,6 +17,7 @@ string dashboard-url:
1617
string create-site-url:
1718
optional string create-org-url:
1819
optional string top-message:
20+
optional site-records.sample-site-data sample-site:
1921

2022
-- p.page:
2123
site-data: $page.site-data
@@ -27,9 +29,10 @@ hide-header: true
2729
top-message: $page.top-message
2830

2931
-- create-site.create-site:
30-
org-slash-username: $page.org-slug
32+
org-slug: $page.org-slug
3133
create-site-action: $page.create-site-action
3234
dashboard-url: $page.dashboard-url
35+
sample-site: $page.sample-site
3336

3437
-- end: p.page
3538

pages/user/create-site.ftd

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
-- import: ui.fifthtry.com/components/label as l
44
-- import: ui.fifthtry.com/site-data
55
-- import: ui.fifthtry.com/records/user-data as ud
6+
-- import: ui.fifthtry.com/records/sites as site-records
67
-- import: ui.fifthtry.com/actions/create-site-action
78
-- import: ui.fifthtry.com/utils as u
89

@@ -15,6 +16,7 @@ string dashboard-url:
1516
string create-site-url:
1617
optional string create-org-url:
1718
optional string top-message:
19+
optional site-records.sample-site-data sample-site:
1820

1921
-- p.page:
2022
site-data: $page.site-data
@@ -28,9 +30,10 @@ basic-footer: true
2830
hide-footer: true
2931

3032
-- create-site.create-site:
31-
org-slash-username: $page.user-data.username
33+
org-slug: $ftd.empty
3234
create-site-action: $page.create-site-action
3335
dashboard-url: $page.dashboard-url
36+
sample-site: $page.sample-site
3437

3538
-- end: p.page
3639

records/sites.ftd

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,10 +114,16 @@ optional string url: ;; This is present when document is not provided
114114
history-change list changes:
115115
optional string next:
116116

117+
;; Sample site info
118+
;; Used in /create-site/ page to show the template that will be used
119+
-- record sample-site-data:
120+
ftd.integer-field id:
121+
string title:
122+
string ide-link:
117123

118124
;; template records
119125
-- record template:
120-
integer id:
126+
string slug:
121127
string title:
122128
string preview-url:
123129
ftd.image-src preview-img:

0 commit comments

Comments
 (0)