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

Added norwegian translation and changes to allow user to remove invalid validators #19

Merged
merged 9 commits into from
Apr 8, 2015
79 changes: 79 additions & 0 deletions locales/validation/no.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
{
"INVALID_ALPHA": "Kan bare inneholde bokstaver. ",
"INVALID_ALPHA_SPACE": "Kan bare inneholde bokstaver og mellomrom. ",
"INVALID_ALPHA_NUM": "Kan bare inneholde bokstaver og tall. ",
"INVALID_ALPHA_NUM_SPACE": "Kan bare inneholde bokstaver, tall og mellomrom. ",
"INVALID_ALPHA_DASH": "Kan bare inneholde bokstaver, tall og bindestrek. ",
"INVALID_ALPHA_DASH_SPACE": "Kan bare inneholde bokstaver, tall, bindestrek og mellomrom. ",
"INVALID_BETWEEN_CHAR": "Teksten må være mellom :param og :param tegn lang. ",
"INVALID_BETWEEN_NUM": "Det må være en numerisk verdi, mellom :param og :param. ",
"INVALID_BOOLEAN": "Kan bare inneholde en sann eller usann verdi. ",
"INVALID_CREDIT_CARD": "Må være et gyldig kredittkortnummer. ",
"INVALID_DATE_EURO_LONG": "Må være et gyldig datoformat (dd-mm-yyyy) eller (dd/mm/yyyy). ",
"INVALID_DATE_EURO_LONG_BETWEEN": "Må være et gyldig datoformat (dd-mm-yyyy) eller (dd/mm/yyyy) mellom :param and :param. ",
"INVALID_DATE_EURO_LONG_MAX": "Må være et gyldig datoformat (dd-mm-yyyy) eller (dd/mm/yyyy), lik eller før :param. ",
"INVALID_DATE_EURO_LONG_MIN": "Må være et gyldig datoformat (dd-mm-yyyy) eller (dd/mm/yyyy), lik eller etter :param. ",
"INVALID_DATE_EURO_SHORT": "Må være et gyldig datoformat (dd-mm-yy) eller (dd/mm/yy). ",
"INVALID_DATE_EURO_SHORT_BETWEEN": "Må være et gyldig datoformat (dd-mm-yy) eller (dd/mm/yy) mellom :param and :param. ",
"INVALID_DATE_EURO_SHORT_MAX": "Må være et gyldig datoformat (dd-mm-yy) eller (dd/mm/yy), lik eller før :param. ",
"INVALID_DATE_EURO_SHORT_MIN": "Må være et gyldig datoformat (dd-mm-yy) eller (dd/mm/yy), lik eller etter :param. ",
"INVALID_DATE_ISO": "Må være et gyldig datoformat (yyyy-mm-dd). ",
"INVALID_DATE_ISO_BETWEEN": "Må være et gyldig datoformat (yyyy-mm-dd) mellom :param and :param. ",
"INVALID_DATE_ISO_MAX": "Må være et gyldig datoformat (yyyy-mm-dd), lik eller før :param. ",
"INVALID_DATE_ISO_MIN": "Må være et gyldig datoformat (yyyy-mm-dd), lik eller etter :param. ",
"INVALID_DATE_US_LONG": "Må være et gyldig datoformat (mm/dd/yyyy) eller (mm-dd-yyyy). ",
"INVALID_DATE_US_LONG_BETWEEN": "Må være et gyldig datoformat (mm/dd/yyyy) eller (mm-dd-yyyy) mellom :param and :param. ",
"INVALID_DATE_US_LONG_MAX": "Må være et gyldig datoformat (mm/dd/yyyy) eller (mm-dd-yyyy), lik eller før :param. ",
"INVALID_DATE_US_LONG_MIN": "Må være et gyldig datoformat (mm/dd/yyyy) eller (mm-dd-yyyy), lik eller etter :param. ",
"INVALID_DATE_US_SHORT": "Må være et gyldig datoformat (mm/dd/yy) eller (mm-dd-yy). ",
"INVALID_DATE_US_SHORT_BETWEEN": "Må være et gyldig datoformat (mm/dd/yy) eller (mm-dd-yy) between :param and :param. ",
"INVALID_DATE_US_SHORT_MAX": "Må være et gyldig datoformat (mm/dd/yy) eller (mm-dd-yy), lik eller før :param. ",
"INVALID_DATE_US_SHORT_MIN": "Må være et gyldig datoformat (mm/dd/yy) eller (mm-dd-yy), lik eller etter :param. ",
"INVALID_EMAIL": "Må være en gyldig epostadresse. ",
"INVALID_EXACT_LEN": "Må være nøyaktig :param tegn lang. ",
"INVALID_FLOAT": "Kan bare inneholde en positiv flyttalsverdi (heltall ekskludert). ",
"INVALID_FLOAT_SIGNED": "Kan bare inneholde en positiv eller negativ flyttalsverdi (heltall ekskludert). ",
"INVALID_IBAN": "Må være en gyldig IBAN. ",
"INVALID_INPUT_MATCH": "Bekreftelsesfeltet er ikke likt spesifisert felt \":param\". ",
"INVALID_INTEGER": "Må være et positivt heltall. ",
"INVALID_INTEGER_SIGNED": "Må være et positivt eller negativt heltall. ",
"INVALID_IPV4": "Må være en gyldig IP-adresse (IPV4). ",
"INVALID_IPV6": "Må være en gyldig IP-adresse (IPV6). ",
"INVALID_IPV6_HEX": "Må være en gyldig IP-adresse (IPV6 Hex). ",
"INVALID_KEY_CHAR": "Ugyldig tastaturoppføring på felt av type \"number\". ",
"INVALID_MAX_CHAR": "Kan ikke være større enn :param characters. ",
"INVALID_MAX_NUM": "Må være en numerisk verdi, lik, eller mindre enn :param. ",
"INVALID_MIN_CHAR": "Må være minst :param tegn. ",
"INVALID_MIN_NUM": "Må være en numerisk verdi, lik, eller større enn :param. ",
"INVALID_NUMERIC": "Må være et positivt tall. ",
"INVALID_NUMERIC_SIGNED": "Må være et positivt eller negativt tall. ",
"INVALID_PATTERN": "Må være på følgende format: :param. ",
"INVALID_REQUIRED": "Feltet er påkrevd. ",
"INVALID_URL": "Må være en gyldig URL. ",
"INVALID_TIME": "Må være et gyldig tidsformat (tt:mm) OR (tt:mm:ss). ",

"AREA1": "TextArea: Alfanumerisk + Minimum(15) + Påkrevd",
"ERRORS": "Feil",
"CHANGE_LANGUAGE": "Endre språk.",
"INPUT2": "Positivt eller negativt nummer -- input type=\"number\" -- Feil på ikke-numeriske tegn ",
"INPUT3": "Flyttalssutvalg (heltall ekskludert) -- between_num:x,y eller min_num:x|max_num:y ",
"INPUT4": "Multiple Valideringer + Tilpasset Regex av dato kode (YYWW)",
"INPUT5": "Epost",
"INPUT6": "URL",
"INPUT7": "IP (IPV4)",
"INPUT8": "Kredittkort",
"INPUT9": "Mellom(2,6) Tegn",
"INPUT10": "ISO dato (yyyy-mm-dd)",
"INPUT11": "US LONG dato (mm/dd/yyyy)",
"INPUT12": "Tid (hh:mm eller hh:mm:ss) -- IKKE Påkrevd",
"INPUT13": "AlphaDashSpaces + Påkrevd + Minimum(5) Tegn -- MÅ BRUKE: validation-error-to=\" \"",
"INPUT14": "Alfanumerisk + Påkrevd -- NG-DISABLED",
"INPUT15": "Passord",
"INPUT16": "Passord bekreftelse",
"INPUT17": "Alfanumerisk + Nøyaktig(3) + Påkrevd -- debounce(5sec)",
"INPUT18": "ISO dato (yyyy-mm-dd) -- minimum >= 2001-01-01 ",
"INPUT19": "US SHORT dato (mm/dd/yy) -- mellom 12/01/99 og 12/31/15",
"SAVE": "Lagre",
"SELECT1": "Påkrevd (select) -- validering med (blur) EVENT",
"SHOW_VALIDATION_SUMMARY": "Vis Valideringsoppsummering"
}
27 changes: 23 additions & 4 deletions src/validation-common.js
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ angular
validationCommon.prototype.removeFromValidationSummary = removeFromValidationSummary; // remove an element from the $validationSummary
validationCommon.prototype.updateErrorMsg = updateErrorMsg; // update on screen an error message below current form element
validationCommon.prototype.validate = validate; // validate current element

validationCommon.prototype.removeFromFormElementObjectList = removeFromFormElementObjectList; // remove named items from formElements list
// return the service object
return validationCommon;

Expand Down Expand Up @@ -180,8 +180,13 @@ angular
* @param object attributes
*/
function updateErrorMsg(message, attrs) {
// attrs.obj if set should be a commonObj
var self = (!!attrs && attrs.obj) ? attrs.obj : this;
var self = this;
// attrs.obj if set, should be a commonObj, and can be self.
// In addition we need to set validatorAttrs, as they are defined as attrs on obj.
if (!!attrs && attrs.obj) {
self = attrs.obj;
self.validatorAttrs = attrs.obj.attrs;
}

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

/** Remove objects from FormElement list.
* @param elementName to remove
*/
function removeFromFormElementObjectList(elmName) {
var index = arrayFindObjectIndex(formElements, 'fieldName', elmName); // find index of object in our array
if (index >= 0) {
formElements.splice(index, 1);
}
}

/** Add the error to the validation summary
* @param object self
* @param string message: error message
Expand Down
27 changes: 26 additions & 1 deletion src/validation-service.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ angular
validationService.prototype.checkFormValidity = checkFormValidity; // check the form validity (can be called by an empty validationService and used by both Directive/Service)
validationService.prototype.removeValidator = removeValidator; // remove a Validator from an element
validationService.prototype.setGlobalOptions = setGlobalOptions; // set and initialize global options used by all validators

validationService.prototype.clearInvalidValidatorsInSummary = clearInvalidValidatorsInSummary; // clear clearInvalidValidatorsInSummary

return validationService;

//----
Expand Down Expand Up @@ -91,6 +92,30 @@ angular
return self;
} // addValidator()

/** Remove all objects in validationsummary and matching objects in FormElementList.
* This is for use in a wizard type setting, where you 'move back' to a previous page in wizard.
* In this case you need to remove invalid validators that will exist in 'the future'.
* @param object Angular Form or Scope Object
*/
function clearInvalidValidatorsInSummary(obj) {
var self = this;
if (typeof obj === "undefined" || typeof obj.$validationSummary === "undefined") {
throw 'checkFormValidity() requires a valid Angular Form or $scope object passed as argument to function properly (ex.: $scope.form1 OR $scope).';
}
// Get list of names to remove
var elmName = [];
for (var i = 0, ln = obj.$validationSummary.length; i < ln; i++) {
elmName.push(obj.$validationSummary[i].field);
}
// Loop on list of names. Cannot loop on obj.$validationSummary as you are removing objects from it in the loop.
for (i = 0, ln = elmName.length; i < ln; i++) {
if (!!elmName[i]) {
self.commonObj.removeFromFormElementObjectList(elmName[i]);
self.commonObj.removeFromValidationSummary(obj.$validationSummary, elmName[i]);
}
}
}

/** Check the form validity (can be called by an empty validationService and used by both Directive/Service)
* Loop through Validation Summary and if any errors found then display them and return false on current function
* @param object Angular Form or Scope Object
Expand Down