Implement listeners

Signed-off-by: Avior <florian.bouillon@delta-wings.net>
This commit is contained in:
Florian Bouillon 2019-12-09 14:14:52 +01:00
parent e0629e9595
commit ed5db58b89
No known key found for this signature in database
GPG Key ID: B143FF27EF555D16
2 changed files with 23 additions and 7 deletions

View File

@ -48,6 +48,13 @@ export default class AttributesManager {
}
}
public onUnfocus(ev:FocusEvent) {
const target = ev.target
if (target) {
this.triggerElement(AttributeListeners.INPUT_UNFOCUS, this.form.inputs[(target as HTMLInputElement).name])
}
}
// private onChange
public setup() {
@ -61,6 +68,8 @@ export default class AttributesManager {
el.element.addEventListener("keyup", ev => this.onChange(ev))
el.element.removeEventListener("change", ev => this.onChange(ev))
el.element.addEventListener("change", ev => this.onChange(ev))
el.element.removeEventListener("focusout", ev => this.onUnfocus(ev))
el.element.addEventListener("focusout", ev => this.onUnfocus(ev))
// loop through assignments
for (const key in this.attributesArray) {

View File

@ -163,8 +163,11 @@ export default class FormManager {
const input = this.inputs[name];
const res = this.attributeManager.triggerElement(AttributeListeners.VERIFY, input) as boolean
if (input.verify() && res) continue
this.attributeManager.triggerElement(AttributeListeners.INPUT_ERROR, input)
errored.push(input)
if(quick) return errored
if(quick) {
return errored
}
}
return errored
}
@ -175,8 +178,8 @@ export default class FormManager {
* @returns {boolean}
* @memberof FormManager
*/
public verify(): boolean {
return this.validate(true).length === 0
public verify(quick = true): boolean {
return this.validate(quick).length === 0
}
/**
@ -250,11 +253,15 @@ export default class FormManager {
*/
public fillFromJSON(json: any) {
for (const key in json) {
if (json.hasOwnProperty(key)) {
const element = json[key];
if(this.inputs[key] !== undefined) this.inputs[key].setValue(element)
else console.warn(`${key} is not a valid input name`)
if (!json.hasOwnProperty(key)) {
continue
}
const element = json[key];
if (this.inputs[key] === undefined) {
console.warn(`${key} is not a valid input name`)
continue
}
this.inputs[key].setValue(element)
}
this.attributeManager.trigger(AttributeListeners.FORM_FILL)
}