Anton Shestakov <av6@dwimlabs.net>, Thu, 07 Apr 2016 22:56:16 +0800
index: check if roster has the item before removing it
Sometimes we get events from contacts that are not in user's roster, trying to
remove such contacts used to fail before this patch.
register.html
Permissions: -rw-r--r--
<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.25.0/css/uikit.min.css"> <link rel="stylesheet" href="/css/tram-im.css"> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.2.3/backbone-min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/rivets/0.8.1/rivets.bundled.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/uikit/2.25.0/js/uikit.min.js"></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> <div class="smart-container"> <div class="uk-alert" data-step="noscript"> <p class="uk-text-center">This page needs JavaScript to work.
</p> <small>It uses resources from cdnjs.cloudflare.com.
</small> $('[data-step="noscript"]').addClass('uk-hidden'); <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="data:username" rv-class-uk-form-danger="data:username-errors"> <div class="uk-text-danger" rv-each-error="data:username-errors">{ error }
</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="data:password1" rv-class-uk-form-danger="data:password1-errors"> <div class="uk-text-danger" rv-each-error="data:password1-errors">{ error }
</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="data:password2" rv-class-uk-form-danger="data:password2-errors"> <div class="uk-text-danger" rv-each-error="data:password2-errors">{ error }
</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 class="uk-form uk-form-horizontal uk-hidden" data-step="vcard" data-form="vcard"> <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="data:fullname"> <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="data:nickname"> <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-form-row"> <div class="uk-form-controls"> <button class="uk-button uk-button-primary" rv-on-click="save">Save
</button> <div class="uk-alert uk-alert-danger uk-hidden" data-msg="save-failed">Couldn't save the vCard.
</div> <script src='/js/tram.js'></script> <script src='/js/rivets.js'></script> <script src='/js/xmpp.js'></script> <script src='/config.js'></script> <script src='/js/register.js'></script>