thingsboard-memoizeit
Changes
ui/src/app/components/contact.directive.js 23(+23 -0)
ui/src/app/locale/locale.constant.js 6(+3 -3)
Details
ui/src/app/components/contact.directive.js 23(+23 -0)
diff --git a/ui/src/app/components/contact.directive.js b/ui/src/app/components/contact.directive.js
index f207d7d..c32d50a 100644
--- a/ui/src/app/components/contact.directive.js
+++ b/ui/src/app/components/contact.directive.js
@@ -277,10 +277,33 @@ function Contact($compile, $templateCache) {
"Zimbabwe"
];
+ var postalCodePatterns = {
+ "United States": "(\\d{5}([\\-]\\d{4})?)",
+ "Australia": "[0-9]{4}",
+ "Austria": "[0-9]{4}",
+ "Belgium": "[0-9]{4}",
+ "Brazil": "[0-9]{5}[\\-]?[0-9]{3}",
+ "Canada": "[A-Za-z][0-9][A-Za-z] [0-9][A-Za-z][0-9]",
+ "Denmark": "[0-9]{3,4}",
+ "Faroe Islands": "[0-9]{3,4}",
+ "Netherlands": "[1-9][0-9]{3}\\s?[a-zA-Z]{2}",
+ "Germany": "[0-9]{5}",
+ "Hungary": "[0-9]{4}",
+ "Italy": "[0-9]{5}",
+ "Japan": "\\d{3}-\\d{4}",
+ "Luxembourg": "(L\\s*(-|—|–))\\s*?[\\d]{4}",
+ "Poland": "[0-9]{2}\\-[0-9]{3}",
+ "Spain": "((0[1-9]|5[0-2])|[1-4][0-9])[0-9]{3}",
+ "Sweden": "\\d{3}\\s?\\d{2}",
+ "United Kingdom": "[A-Za-z]{1,2}[0-9Rr][0-9A-Za-z]? [0-9][ABD-HJLNP-UW-Zabd-hjlnp-uw-z]{2}"
+ };
+
var linker = function (scope, element) {
scope.countries = countries;
+ scope.postalCodePatterns = postalCodePatterns;
+
var template = $templateCache.get(contactTemplate);
element.html(template);
diff --git a/ui/src/app/components/contact.tpl.html b/ui/src/app/components/contact.tpl.html
index d107265..2c52fd3 100644
--- a/ui/src/app/components/contact.tpl.html
+++ b/ui/src/app/components/contact.tpl.html
@@ -34,11 +34,11 @@
</md-input-container>
<md-input-container class="md-block">
<label translate>contact.postal-code</label>
- <input name="zip" ng-model="contact.zip" ng-pattern="/^([0-9]*)$/">
+ <input name="zip" ng-model="contact.zip" ng-pattern="postalCodePatterns[contact.country]">
<div ng-messages="theForm.zip.$error" role="alert" multiple>
<div translate ng-message="pattern">contact.postal-code-invalid</div>
</div>
- </md-input-container>
+ </md-input-container>
</div>
<md-input-container class="md-block">
<label translate>contact.address</label>
ui/src/app/locale/locale.constant.js 6(+3 -3)
diff --git a/ui/src/app/locale/locale.constant.js b/ui/src/app/locale/locale.constant.js
index 7345894..bd1b9e9 100644
--- a/ui/src/app/locale/locale.constant.js
+++ b/ui/src/app/locale/locale.constant.js
@@ -294,9 +294,9 @@ export default angular.module('thingsboard.locale', [])
"contact": {
"country": "Country",
"city": "City",
- "state": "State",
- "postal-code": "Postal code",
- "postal-code-invalid": "Only digits are allowed.",
+ "state": "State / Province",
+ "postal-code": "Zip / Postal Code",
+ "postal-code-invalid": "Invalid Zip / Postal Code format.",
"address": "Address",
"address2": "Address 2",
"phone": "Phone",