angular-jsf-components
Version:
JSF Compliant Angular Components
71 lines (62 loc) • 1.94 kB
text/typescript
import {Component, EventEmitter, Input, Output} from '@angular/core';
import {IAjaxEventParameter} from '../../interfaces/ajax-event-parameter';
import {HFormService} from '../../services/h-form.service';
import {JsfService} from '../../services/jsf.service';
import {JsfCore} from '../../superclass/jsf-core';
export class FAjaxComponent {
event = 'click';
execute: string;
// just for compatibility purposes, angular renders what is has to render anyway
render: string;
immediate = false;
listener = new EventEmitter<IAjaxEventParameter>();
this: object;
constructor(private hFormService: HFormService, private jsfService: JsfService) {
}
/**
* trigger ajax call
*/
call(caller: JsfCore) {
let execElem: JsfCore;
let renderElem: JsfCore;
switch (this.execute) {
case '@all':
execElem = this.jsfService.all;
break;
case '@form':
execElem = this.hFormService.form;
break;
case '@this':
default:
execElem = caller;
break;
}
switch (this.render) {
// @all is no longer useful, the ajax function itself is contained in the page component itself which is basically @all
case '@all':
renderElem = this.jsfService.all;
break;
case '@form':
renderElem = this.hFormService.form;
break;
case '@this':
default:
renderElem = caller;
break;
}
this.listener.emit({
render: renderElem,
exec: execElem,
});
}
}