2018-11-08 07:10:37 +01:00
{{define "head"}}
<title>{{.SiteName}}</title>
<style type="text/css">
h2 {
font-weight: normal;
}
#pricing . content - container div . form - container # payment-form {
display: block !important;
}
#pricing # signup-form table {
max-width: inherit !important;
width: 100%;
}
#pricing # payment-form table {
margin-top: 0 !important;
max-width: inherit !important;
width: 100%;
}
tr.subscription {
border-spacing: 0;
}
#pricing . content - container tr . subscription button {
margin-top: 0 !important;
margin-bottom: 0 !important;
width: 100%;
}
#pricing tr . subscription td {
padding: 0 0.5em;
}
#pricing table . billing > tbody > tr > td : first - child {
vertical-align: middle !important;
}
.billing-section {
display: none;
}
.billing-section.bill-me {
display: table-row;
}
#btn - create {
color: white !important;
}
#total - price {
padding-left: 0.5em;
}
#alias - site . demo {
color: #999;
}
#alias - site {
text-align: left;
margin: 0.5em 0;
}
2018-11-09 20:51:11 +01:00
form dd {
margin: 0;
}
2018-11-08 07:10:37 +01:00
</style>
{{end}}
{{define "content"}}
<div id="pricing" class="content-container wide-form">
<div class="row">
<div style="text-align:left">
2018-11-09 20:51:11 +01:00
<h1 style="margin-top:0;max-width:8em;">{{if .Federation}}Start your blog in the fediverse{{else}}Start your blog{{end}}</h1>
<p><a href="{{if .Federation}} #more { { else } } / about { { end } } " >Learn more...</a></p>
2018-11-08 07:10:37 +01:00
</div>
2018-11-10 01:55:07 +01:00
<div{{if not .OpenRegistration}} style="padding: 2em 0;"{{end}}>
{{ if .OpenRegistration }}
2018-11-08 07:10:37 +01:00
{{if .Flashes}}<ul class="errors">
{{range .Flashes}}<li class="urgent">{{.}}</li>{{end}}
</ul>{{end}}
<div id="billing">
2018-11-09 20:51:11 +01:00
<form action="/auth/signup" method="POST" id="signup-form" onsubmit="return signup()">
2018-11-08 07:10:37 +01:00
<dl class="billing">
<label>
<dt>Username</dt>
<dd>
<input type="text" id="alias" name="alias" style="width: 100%; box-sizing: border-box;" tabindex="1" autofocus />
2018-11-09 20:51:11 +01:00
{{if .Federation}}<p id="alias-site" class="demo">@<strong>your-username</strong>@{{.FriendlyHost}}</p>{{else}}<p id="alias-site" class="demo">{{.FriendlyHost}}/<strong>your-username</strong></p>{{end}}
2018-11-08 07:10:37 +01:00
</dd>
</label>
<label>
<dt>Password</dt>
<dd><input type="password" id="password" name="pass" autocomplete="new-password" placeholder="" tabindex="2" style="width: 100%; box-sizing: border-box;" /></dd>
</label>
<label>
<dt>Email (optional)</dt>
<dd><input type="email" name="email" id="email" style="letter-spacing: 1px; width: 100%; box-sizing: border-box;" placeholder="me@example.com" tabindex="3" /></dd>
</label>
<dt>
<button id="btn-create" type="submit" style="margin-top: 0">Create blog</button>
</dt>
</dl>
</form>
</div>
2018-11-10 01:55:07 +01:00
{{ else }}
<p style="font-size: 1.3em; margin: 1rem 0;">Registration is currently closed.</p>
<p>You can always sign up on <a href="https://writefreely.org/instances">another instance</a>.</p>
{{ end }}
2018-11-08 07:10:37 +01:00
</div>
</div>
{{if .Federation}}
<a name="more"></a><hr style="margin: 1em auto 3em;" />
{{end}}
</div>
{{ if .Federation }}
<div class="content-container snug">
<h2>Join the Fediverse</h2>
2019-04-12 03:33:33 +02:00
<p>The fediverse is a large network of platforms that all speak a common language. Imagine if you could reply to Instagram posts from Twitter, or interact with your favorite Medium blogs from Facebook — federated alternatives like <a href="https://pixelfed.org/" target="pixel">PixelFed</a>, <a href="https://joinmastodon.org/" target="masto">Mastodon</a>, and WriteFreely enable you to do these types of things.</p>
2018-11-08 07:10:37 +01:00
<div style="text-align:center">
<iframe style="width: 560px; height: 315px; max-width: 100%;" sandbox="allow-same-origin allow-scripts" src="https://video.writeas.org/videos/embed/cc55e615-d204-417c-9575-7b57674cc6f3" frameborder="0" allowfullscreen></iframe>
</div>
<h2>Write More Socially</h2>
2019-04-12 03:33:33 +02:00
<p>WriteFreely can communicate with other federated platforms like Mastodon, so people can follow your blogs, bookmark their favorite posts, and boost them to their followers. Sign up above to create a blog and join the fediverse.</p>
2018-11-08 07:10:37 +01:00
</div>
{{ end }}
2018-11-09 20:51:11 +01:00
<script type="text/javascript" src="/js/h.js"></script>
<script type="text/javascript">
function signup() {
var $ pass = document.getElementById('password');
// Validate input
if (!aliasOK) {
var $a = $ alias ;
$ a . el . className = 'error';
$ a . el . focus ();
$ a . el . scrollIntoView ();
return false;
}
if ( $ pass . value == "") {
var $a = $ pass ;
$ a . className = 'error';
$ a . focus ();
$ a . scrollIntoView ();
return false;
}
var $ btn = document.getElementById('btn-create');
$ btn . disabled = true;
$ btn . value = 'Creating...';
return true;
}
var $ alias = H.getEl('alias');
var $ aliasSite = document.getElementById('alias-site');
var aliasOK = true;
var typingTimer;
var doneTypingInterval = 750;
var doneTyping = function() {
// Check on username
var alias = $ alias . el . value ;
if (alias != "") {
var params = {
username: alias
};
var http = new XMLHttpRequest();
http.open("POST", '/api/alias', true);
// Send the proper header information along with the request
http.setRequestHeader("Content-type", "application/json");
http.onreadystatechange = function() {
if (http.readyState == 4) {
data = JSON.parse(http.responseText);
if (http.status == 200) {
aliasOK = true;
$ alias . removeClass ('error');
$ aliasSite . className = $ aliasSite . className . replace (/(?:^|\s)demo(?!\S)/g, '');
$ aliasSite . className = $ aliasSite . className . replace (/(?:^|\s)error(?!\S)/g, '');
$ aliasSite . innerHTML = '{{ if .Federation }}@<strong>' + data.data + '</strong>@{{.FriendlyHost}}{{ else }}{{.FriendlyHost}}/<strong>' + data.data + '</strong>/{{ end }}';
} else {
aliasOK = false;
$ alias . setClass ('error');
$ aliasSite . className = 'error';
$ aliasSite . textContent = data.error_msg;
}
}
}
http.send(JSON.stringify(params));
} else {
$ aliasSite . className += ' demo';
$ aliasSite . innerHTML = '{{ if .Federation }}@<strong>your-username</strong>@{{.FriendlyHost}}{{ else }}{{.FriendlyHost}}/<strong>your-username</strong>/{{ end }}';
}
};
$ alias . on ('keyup input', function() {
clearTimeout(typingTimer);
typingTimer = setTimeout(doneTyping, doneTypingInterval);
});
</script>
2018-11-08 07:10:37 +01:00
{{end}}