mirror of https://github.com/zulip/zulip.git
portico: Auto-correct and error-handle short name input.
This commit is contained in:
parent
8e2ec1cddc
commit
0995780f82
|
@ -597,6 +597,7 @@ button.login-google-button {
|
||||||
|
|
||||||
#registration .input-box {
|
#registration .input-box {
|
||||||
margin: 10px;
|
margin: 10px;
|
||||||
|
padding-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#registration {
|
#registration {
|
||||||
|
|
|
@ -115,9 +115,10 @@ Form is validated both client-side using jquery-validate (see signup.js) and ser
|
||||||
{% if realms_have_subdomains %}
|
{% if realms_have_subdomains %}
|
||||||
<div class="inline-block external-host"> .{{ external_host }}</div>
|
<div class="inline-block external-host"> .{{ external_host }}</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
<p id="id_team_subdomain_error_client" class="error help-inline text-error"></p>
|
||||||
{% if form.realm_subdomain.errors %}
|
{% if form.realm_subdomain.errors %}
|
||||||
{% for error in form.realm_subdomain.errors %}
|
{% for error in form.realm_subdomain.errors %}
|
||||||
<p class="help-inline text-error">{{ error }}</p>
|
<p class="error help-inline text-error team_subdomain_error_server">{{ error }}</p>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
@ -181,6 +182,37 @@ if ($('.team_subdomain_error_server').text() === '') {
|
||||||
}
|
}
|
||||||
|
|
||||||
$("#timezone").val(moment.tz.guess());
|
$("#timezone").val(moment.tz.guess());
|
||||||
|
|
||||||
|
$('#id_team_subdomain').on('input', function (e) {
|
||||||
|
// preserve selection range, to be set after setting the text
|
||||||
|
var start = e.target.selectionStart,
|
||||||
|
end = e.target.selectionEnd;
|
||||||
|
|
||||||
|
// toggle displaying server-side / client-side errors; messages
|
||||||
|
// from only one of the two should be showing at any time.
|
||||||
|
$('.team_subdomain_error_server').text('').css('display', 'none');
|
||||||
|
|
||||||
|
var autocorrected = e.target.value
|
||||||
|
.toLowerCase()
|
||||||
|
.replace(/[_|\s]/g, '-');
|
||||||
|
|
||||||
|
e.target.value = autocorrected;
|
||||||
|
|
||||||
|
if (e.target.value.charAt(0) === '-' ||
|
||||||
|
e.target.value.charAt(e.target.value.length - 1) === '-') {
|
||||||
|
$('#id_team_subdomain_error_client')
|
||||||
|
.text(i18n.t("Cannot start or end with a '-'"))
|
||||||
|
.css('display', 'block');
|
||||||
|
} else if (/[^0-9a-z\-]/.test(e.target.value)) {
|
||||||
|
$('#id_team_subdomain_error_client')
|
||||||
|
.text(i18n.t("Can only use letters a-z, numbers 0-9, and '-'s."))
|
||||||
|
.css('display', 'block');
|
||||||
|
} else {
|
||||||
|
$('#id_team_subdomain_error_client').text('').css('display', 'none');
|
||||||
|
}
|
||||||
|
|
||||||
|
e.target.setSelectionRange(start, end);
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
Loading…
Reference in New Issue