206:d0bde0e3cc62
Anton Shestakov <av6@dwimlabs.net>, Wed, 01 Jun 2016 21:26:22 +0800
index: expand, but also deduplicate existence checks for previous and contact

next change 231:94a41f59d566
previous change 197:078233f1a322

register.html

Permissions: -rw-r--r--

Other formats: Feeds:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Registration</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/uikit/2.26.3/css/uikit.min.css" integrity="sha384-xXvgKX0nqIAdfmZif+SmbHMmxUu7U5VBRN1ZHBtvC78A4FR13hYO2ZGox0fuPw57" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/uikit/2.26.3/css/components/progress.min.css" integrity="sha384-bIJ95i9/8BfHJp1jB2T0Z8G87VlsMIvRaEK5RYT7eym8N8sbeVEj/GvyaxKBLSdz" crossorigin="anonymous">
<link rel="stylesheet" href="/css/tram-im.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js" integrity="sha384-rY/jv8mMhqDabXSo+UCggqKtdmBfd3qC2/KvyTDNQ6PcUJXaxK1tMepoQda4g5vB" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js" integrity="sha384-FZY+KSLVXVyc1qAlqH9oCx1JEOlQh6iXfw3o2n3Iy32qGjXmUPWT9I0Z9e9wxYe3" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.3/backbone-min.js" integrity="sha384-NNt9ocJfZhIg2c5PbM5G2a3tTaeXhEfqCHWHNB7htzaWKn8MwFkzVyGdzLA8QMX7" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/rivets/0.8.1/rivets.bundled.min.js" integrity="sha384-KIB/b1UL6HC6He/9mc3AYNV0GjyVXGWnwqbSo3hoD6BOYi+XPtqjLtZ99Mevz4I4" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/uikit/2.26.3/js/uikit.min.js" integrity="sha384-6OYggLGXv4OPaVsh9O/0baGeEYFu1r1FE3+sNtPeDk6JofnNNZb2sHKzUa7wum04" crossorigin="anonymous"></script>
<script src="/vendor/strophejs/strophe.min.js"></script>
<script src="/vendor/strophejs-plugins/register/strophe.register.js"></script>
<script src="/vendor/strophejs-plugins/vcard/strophe.vcard.js"></script>
</head>
<body>
<div class="uk-progress uk-progress-mini page-progress" data-app="progress" rv-hide="model:progress | eq undefined">
<div class="uk-progress-bar" rv-style="model:progress | fn view.getStyle"></div>
</div>
<div class="smart-container">
<div class="uk-alert" data-step="noscript">
<p class="uk-text-center">This page needs JavaScript to work.</p>
<hr>
<small>It uses resources from cdnjs.cloudflare.com.</small>
</div>
<script>
$('[data-step="noscript"]').addClass('uk-hidden');
</script>
<div class="uk-alert uk-alert-danger uk-hidden" data-msg="registration-closed">Registration is closed at the moment.</div>
<div class="uk-form uk-form-horizontal uk-hidden" data-step="registration" data-form="registration">
<div class="uk-form-row">
<label for="username" class="uk-form-label">Username</label>
<div class="uk-form-controls">
<input id="username" type="text" class="uk-width-1-1" required autofocus
rv-value="form:username" rv-class-uk-form-danger="form:username-errors">
<div class="uk-text-danger" rv-each-error="form:username-errors">{ error }</div>
</div>
</div>
<div class="uk-form-row">
<label for="password1" class="uk-form-label">Password</label>
<div class="uk-form-controls">
<input id="password1" type="password" class="uk-width-1-1" required
rv-value="form:password1" rv-class-uk-form-danger="form:password1-errors">
<div class="uk-text-danger" rv-each-error="form:password1-errors">{ error }</div>
</div>
</div>
<div class="uk-form-row">
<label for="password2" class="uk-form-label">Confirmation</label>
<div class="uk-form-controls">
<input id="password2" type="password" class="uk-width-1-1" required
rv-value="form:password2" rv-class-uk-form-danger="form:password2-errors">
<div class="uk-text-danger" rv-each-error="form:password2-errors">{ error }</div>
</div>
</div>
<div class="uk-form-row">
<div class="uk-form-controls">
<div class="uk-alert uk-alert-danger uk-hidden" data-msg="registration-failed">Unspecified error, sorry.</div>
<button type="button" class="uk-button uk-button-primary" rv-on-click="register">Register</button>
<a class="uk-float-right uk-button uk-button-link" href="/">Log in</a>
</div>
</div>
</div>
<div class="uk-form uk-form-horizontal uk-hidden" data-step="profile" data-form="profile">
<div class="uk-form-row">
<label for="fullname" class="uk-form-label">Full Name</label>
<div class="uk-form-controls">
<input id="fullname" class="uk-width-1-1" type="text" rv-value="form:fullname">
</div>
</div>
<div class="uk-form-row">
<label for="nickname" class="uk-form-label">Nickname</label>
<div class="uk-form-controls">
<input id="nickname" class="uk-width-1-1" type="text" rv-value="form:nickname">
</div>
</div>
<div class="uk-form-row">
<label for="avatar" class="uk-form-label">Avatar</label>
<div class="uk-form-controls">
<input id="avatar" type="file" accept="image/*" value="">
<div class="uk-text-danger" rv-each-error="form:avatar-errors">{ error }</div>
<p>A good avatar:</p>
<ul>
<li>has width and height between 32 and 96 pixels</li>
<li>ideally is a square image</li>
<li>is less than 64k in size</li>
<li>is in a widespread format (png, gif or jpeg)</li>
</ul>
</div>
</div>
<div class="uk-form-row">
<div class="uk-form-controls">
<button class="uk-button uk-button-primary" rv-on-click="save">Save</button>
<button class="uk-button uk-button-danger uk-float-right" rv-on-click="cancel">Cancel registration</button>
</div>
</div>
</div>
<div class="uk-alert uk-alert-danger uk-hidden" data-msg="save-failed">Couldn't save profile.</div>
</div>
<script src='/js/tram.js'></script>
<script src='/js/rivets.js'></script>
<script src='/js/xmpp.js'></script>
<script src='/js/progress.js'></script>
<script src='/js/forms.js'></script>
<script src='/config.js'></script>
<script src='/js/register.js'></script>
</body>
</html>