Custom validator for urls

stable
Daniel García 2018-08-23 17:18:29 +02:00 committed by Alex Hermida
parent 64846dca72
commit e87d594106
2 changed files with 41 additions and 2 deletions

View File

@ -777,6 +777,45 @@ init = ($log, $rootscope, $auth, $events, $analytics, $translate, $location, $na
pikaday: (val) ->
prettyDate = $translate.instant("COMMON.PICKERDATE.FORMAT")
return moment(val, prettyDate).isValid()
url: (val) ->
re_weburl = new RegExp(
"^" +
# protocol identifier
"(?:(?:https?|ftp)://)" +
# user:pass authentication
"(?:\\S+(?::\\S*)?@)?" +
"(?:" +
# IP address exclusion
# private & local networks
"(?!(?:10|127)(?:\\.\\d{1,3}){3})" +
"(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})" +
"(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})" +
# IP address dotted notation octets
# excludes loopback network 0.0.0.0
# excludes reserved space >= 224.0.0.0
# excludes network & broacast addresses
# (first & last IP address of each class)
"(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])" +
"(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}" +
"(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))" +
"|" +
# host name
"(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)" +
# domain name
"(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*" +
# TLD identifier
"(?:\\.(?:[a-z\\u00a1-\\uffff]{2,}))" +
# TLD may end with dot
"\\.?" +
")" +
# port number
"(?::\\d{2,5})?" +
# resource path
"(?:[/?#]\\S*)?" +
"$", "i"
)
return re_weburl.test(val)
}
checksley.updateValidators(validators)

View File

@ -164,11 +164,11 @@ div.wrapper(
input(
id="videoconference-url"
name="videoconference-url"
type="url"
type="text"
ng-model="project.videoconferences_extra_data"
data-maxlength="250"
placeholder="{{'ADMIN.MODULES.URL_CHAT_ROOM' | translate}}"
data-type="url"
data-url
data-required="true"
)
fieldset.options