Skip to content
This repository was archived by the owner on Jul 1, 2020. It is now read-only.

Commit 02aa250

Browse files
committed
Merge pull request #19 from tlastad/master
Added norwegian translation and changes to allow user to remove invalid validators
2 parents 2266fc1 + feae09c commit 02aa250

File tree

3 files changed

+128
-5
lines changed

3 files changed

+128
-5
lines changed

locales/validation/no.json

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
{
2+
"INVALID_ALPHA": "Kan bare inneholde bokstaver. ",
3+
"INVALID_ALPHA_SPACE": "Kan bare inneholde bokstaver og mellomrom. ",
4+
"INVALID_ALPHA_NUM": "Kan bare inneholde bokstaver og tall. ",
5+
"INVALID_ALPHA_NUM_SPACE": "Kan bare inneholde bokstaver, tall og mellomrom. ",
6+
"INVALID_ALPHA_DASH": "Kan bare inneholde bokstaver, tall og bindestrek. ",
7+
"INVALID_ALPHA_DASH_SPACE": "Kan bare inneholde bokstaver, tall, bindestrek og mellomrom. ",
8+
"INVALID_BETWEEN_CHAR": "Teksten må være mellom :param og :param tegn lang. ",
9+
"INVALID_BETWEEN_NUM": "Det må være en numerisk verdi, mellom :param og :param. ",
10+
"INVALID_BOOLEAN": "Kan bare inneholde en sann eller usann verdi. ",
11+
"INVALID_CREDIT_CARD": "Må være et gyldig kredittkortnummer. ",
12+
"INVALID_DATE_EURO_LONG": "Må være et gyldig datoformat (dd-mm-yyyy) eller (dd/mm/yyyy). ",
13+
"INVALID_DATE_EURO_LONG_BETWEEN": "Må være et gyldig datoformat (dd-mm-yyyy) eller (dd/mm/yyyy) mellom :param and :param. ",
14+
"INVALID_DATE_EURO_LONG_MAX": "Må være et gyldig datoformat (dd-mm-yyyy) eller (dd/mm/yyyy), lik eller før :param. ",
15+
"INVALID_DATE_EURO_LONG_MIN": "Må være et gyldig datoformat (dd-mm-yyyy) eller (dd/mm/yyyy), lik eller etter :param. ",
16+
"INVALID_DATE_EURO_SHORT": "Må være et gyldig datoformat (dd-mm-yy) eller (dd/mm/yy). ",
17+
"INVALID_DATE_EURO_SHORT_BETWEEN": "Må være et gyldig datoformat (dd-mm-yy) eller (dd/mm/yy) mellom :param and :param. ",
18+
"INVALID_DATE_EURO_SHORT_MAX": "Må være et gyldig datoformat (dd-mm-yy) eller (dd/mm/yy), lik eller før :param. ",
19+
"INVALID_DATE_EURO_SHORT_MIN": "Må være et gyldig datoformat (dd-mm-yy) eller (dd/mm/yy), lik eller etter :param. ",
20+
"INVALID_DATE_ISO": "Må være et gyldig datoformat (yyyy-mm-dd). ",
21+
"INVALID_DATE_ISO_BETWEEN": "Må være et gyldig datoformat (yyyy-mm-dd) mellom :param and :param. ",
22+
"INVALID_DATE_ISO_MAX": "Må være et gyldig datoformat (yyyy-mm-dd), lik eller før :param. ",
23+
"INVALID_DATE_ISO_MIN": "Må være et gyldig datoformat (yyyy-mm-dd), lik eller etter :param. ",
24+
"INVALID_DATE_US_LONG": "Må være et gyldig datoformat (mm/dd/yyyy) eller (mm-dd-yyyy). ",
25+
"INVALID_DATE_US_LONG_BETWEEN": "Må være et gyldig datoformat (mm/dd/yyyy) eller (mm-dd-yyyy) mellom :param and :param. ",
26+
"INVALID_DATE_US_LONG_MAX": "Må være et gyldig datoformat (mm/dd/yyyy) eller (mm-dd-yyyy), lik eller før :param. ",
27+
"INVALID_DATE_US_LONG_MIN": "Må være et gyldig datoformat (mm/dd/yyyy) eller (mm-dd-yyyy), lik eller etter :param. ",
28+
"INVALID_DATE_US_SHORT": "Må være et gyldig datoformat (mm/dd/yy) eller (mm-dd-yy). ",
29+
"INVALID_DATE_US_SHORT_BETWEEN": "Må være et gyldig datoformat (mm/dd/yy) eller (mm-dd-yy) between :param and :param. ",
30+
"INVALID_DATE_US_SHORT_MAX": "Må være et gyldig datoformat (mm/dd/yy) eller (mm-dd-yy), lik eller før :param. ",
31+
"INVALID_DATE_US_SHORT_MIN": "Må være et gyldig datoformat (mm/dd/yy) eller (mm-dd-yy), lik eller etter :param. ",
32+
"INVALID_EMAIL": "Må være en gyldig epostadresse. ",
33+
"INVALID_EXACT_LEN": "Må være nøyaktig :param tegn lang. ",
34+
"INVALID_FLOAT": "Kan bare inneholde en positiv flyttalsverdi (heltall ekskludert). ",
35+
"INVALID_FLOAT_SIGNED": "Kan bare inneholde en positiv eller negativ flyttalsverdi (heltall ekskludert). ",
36+
"INVALID_IBAN": "Må være en gyldig IBAN. ",
37+
"INVALID_INPUT_MATCH": "Bekreftelsesfeltet er ikke likt spesifisert felt \":param\". ",
38+
"INVALID_INTEGER": "Må være et positivt heltall. ",
39+
"INVALID_INTEGER_SIGNED": "Må være et positivt eller negativt heltall. ",
40+
"INVALID_IPV4": "Må være en gyldig IP-adresse (IPV4). ",
41+
"INVALID_IPV6": "Må være en gyldig IP-adresse (IPV6). ",
42+
"INVALID_IPV6_HEX": "Må være en gyldig IP-adresse (IPV6 Hex). ",
43+
"INVALID_KEY_CHAR": "Ugyldig tastaturoppføring på felt av type \"number\". ",
44+
"INVALID_MAX_CHAR": "Kan ikke være større enn :param characters. ",
45+
"INVALID_MAX_NUM": "Må være en numerisk verdi, lik, eller mindre enn :param. ",
46+
"INVALID_MIN_CHAR": "Må være minst :param tegn. ",
47+
"INVALID_MIN_NUM": "Må være en numerisk verdi, lik, eller større enn :param. ",
48+
"INVALID_NUMERIC": "Må være et positivt tall. ",
49+
"INVALID_NUMERIC_SIGNED": "Må være et positivt eller negativt tall. ",
50+
"INVALID_PATTERN": "Må være på følgende format: :param. ",
51+
"INVALID_REQUIRED": "Feltet er påkrevd. ",
52+
"INVALID_URL": "Må være en gyldig URL. ",
53+
"INVALID_TIME": "Må være et gyldig tidsformat (tt:mm) OR (tt:mm:ss). ",
54+
55+
"AREA1": "TextArea: Alfanumerisk + Minimum(15) + Påkrevd",
56+
"ERRORS": "Feil",
57+
"CHANGE_LANGUAGE": "Endre språk.",
58+
"INPUT2": "Positivt eller negativt nummer -- input type=\"number\" -- Feil på ikke-numeriske tegn ",
59+
"INPUT3": "Flyttalssutvalg (heltall ekskludert) -- between_num:x,y eller min_num:x|max_num:y ",
60+
"INPUT4": "Multiple Valideringer + Tilpasset Regex av dato kode (YYWW)",
61+
"INPUT5": "Epost",
62+
"INPUT6": "URL",
63+
"INPUT7": "IP (IPV4)",
64+
"INPUT8": "Kredittkort",
65+
"INPUT9": "Mellom(2,6) Tegn",
66+
"INPUT10": "ISO dato (yyyy-mm-dd)",
67+
"INPUT11": "US LONG dato (mm/dd/yyyy)",
68+
"INPUT12": "Tid (hh:mm eller hh:mm:ss) -- IKKE Påkrevd",
69+
"INPUT13": "AlphaDashSpaces + Påkrevd + Minimum(5) Tegn -- MÅ BRUKE: validation-error-to=\" \"",
70+
"INPUT14": "Alfanumerisk + Påkrevd -- NG-DISABLED",
71+
"INPUT15": "Passord",
72+
"INPUT16": "Passord bekreftelse",
73+
"INPUT17": "Alfanumerisk + Nøyaktig(3) + Påkrevd -- debounce(5sec)",
74+
"INPUT18": "ISO dato (yyyy-mm-dd) -- minimum >= 2001-01-01 ",
75+
"INPUT19": "US SHORT dato (mm/dd/yy) -- mellom 12/01/99 og 12/31/15",
76+
"SAVE": "Lagre",
77+
"SELECT1": "Påkrevd (select) -- validering med (blur) EVENT",
78+
"SHOW_VALIDATION_SUMMARY": "Vis Valideringsoppsummering"
79+
}

src/validation-common.js

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ angular
5656
validationCommon.prototype.removeFromValidationSummary = removeFromValidationSummary; // remove an element from the $validationSummary
5757
validationCommon.prototype.updateErrorMsg = updateErrorMsg; // update on screen an error message below current form element
5858
validationCommon.prototype.validate = validate; // validate current element
59-
59+
validationCommon.prototype.removeFromFormElementObjectList = removeFromFormElementObjectList; // remove named items from formElements list
6060
// return the service object
6161
return validationCommon;
6262

@@ -180,8 +180,13 @@ angular
180180
* @param object attributes
181181
*/
182182
function updateErrorMsg(message, attrs) {
183-
// attrs.obj if set should be a commonObj
184-
var self = (!!attrs && attrs.obj) ? attrs.obj : this;
183+
var self = this;
184+
// attrs.obj if set, should be a commonObj, and can be self.
185+
// In addition we need to set validatorAttrs, as they are defined as attrs on obj.
186+
if (!!attrs && attrs.obj) {
187+
self = attrs.obj;
188+
self.validatorAttrs = attrs.obj.attrs;
189+
}
185190

186191
// element name could be defined in the `attrs` or in the self object
187192
var elm = (!!attrs && attrs.elm) ? attrs.elm : self.elm;
@@ -205,7 +210,11 @@ angular
205210
var firstChar = self.validatorAttrs.validationErrorTo.charAt(0);
206211
var selector = (firstChar === '.' || firstChar === '#') ? self.validatorAttrs.validationErrorTo : '#'+self.validatorAttrs.validationErrorTo;
207212
errorElm = angular.element(document.querySelector(selector));
208-
}else {
213+
}
214+
// errorElm can be empty due to:
215+
// 1. validationErrorTo has not been set
216+
// 2. validationErrorTo has been mistyped, and if mistyped, use regular functionality
217+
if(!errorElm || errorElm.length === 0){
209218
// most common way, let's try to find our <span class="validation-inputName">
210219
errorElm = angular.element(document.querySelector('.validation-'+elmInputName));
211220
}
@@ -371,6 +380,16 @@ angular
371380
return formElements;
372381
}
373382

383+
/** Remove objects from FormElement list.
384+
* @param elementName to remove
385+
*/
386+
function removeFromFormElementObjectList(elmName) {
387+
var index = arrayFindObjectIndex(formElements, 'fieldName', elmName); // find index of object in our array
388+
if (index >= 0) {
389+
formElements.splice(index, 1);
390+
}
391+
}
392+
374393
/** Add the error to the validation summary
375394
* @param object self
376395
* @param string message: error message

src/validation-service.js

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ angular
2828
validationService.prototype.checkFormValidity = checkFormValidity; // check the form validity (can be called by an empty validationService and used by both Directive/Service)
2929
validationService.prototype.removeValidator = removeValidator; // remove a Validator from an element
3030
validationService.prototype.setGlobalOptions = setGlobalOptions; // set and initialize global options used by all validators
31-
31+
validationService.prototype.clearInvalidValidatorsInSummary = clearInvalidValidatorsInSummary; // clear clearInvalidValidatorsInSummary
32+
3233
return validationService;
3334

3435
//----
@@ -91,6 +92,30 @@ angular
9192
return self;
9293
} // addValidator()
9394

95+
/** Remove all objects in validationsummary and matching objects in FormElementList.
96+
* This is for use in a wizard type setting, where you 'move back' to a previous page in wizard.
97+
* In this case you need to remove invalid validators that will exist in 'the future'.
98+
* @param object Angular Form or Scope Object
99+
*/
100+
function clearInvalidValidatorsInSummary(obj) {
101+
var self = this;
102+
if (typeof obj === "undefined" || typeof obj.$validationSummary === "undefined") {
103+
throw 'checkFormValidity() requires a valid Angular Form or $scope object passed as argument to function properly (ex.: $scope.form1 OR $scope).';
104+
}
105+
// Get list of names to remove
106+
var elmName = [];
107+
for (var i = 0, ln = obj.$validationSummary.length; i < ln; i++) {
108+
elmName.push(obj.$validationSummary[i].field);
109+
}
110+
// Loop on list of names. Cannot loop on obj.$validationSummary as you are removing objects from it in the loop.
111+
for (i = 0, ln = elmName.length; i < ln; i++) {
112+
if (!!elmName[i]) {
113+
self.commonObj.removeFromFormElementObjectList(elmName[i]);
114+
self.commonObj.removeFromValidationSummary(obj.$validationSummary, elmName[i]);
115+
}
116+
}
117+
}
118+
94119
/** Check the form validity (can be called by an empty validationService and used by both Directive/Service)
95120
* Loop through Validation Summary and if any errors found then display them and return false on current function
96121
* @param object Angular Form or Scope Object

0 commit comments

Comments
 (0)