C:/GoDev/src/TCSTK-Angular/projects/tibco-tcstk/tc-liveapps-lib/src/lib/components/live-apps-creator-standalone/live-apps-creator-standalone.component.ts
Handles rendering of case creator form.
<tcla-live-apps-case-creator></tcla-live-apps-case-creator>
| selector | tcla-live-apps-creator-standalone |
| styleUrls | ./live-apps-creator-standalone.component.css |
| templateUrl | ./live-apps-creator-standalone.component.html |
Properties |
|
Methods |
Inputs |
Outputs |
HostListeners |
Accessors |
constructor(liveapps: LiveAppsService, processesService: TcCaseProcessesService, caseDataService: TcCaseDataService)
|
||||||||||||
|
Parameters :
|
| applicationId | |
Type : string
|
|
|
LA application ID |
|
| customFormTag | |
Type : string
|
|
|
Custom Form tag if using an external form app |
|
| dataOverride | |
Type : any
|
|
|
Data object that will be displayed on the form. Allows overriding over form data (eg. when selecting data in spotfire) |
|
| formsFramework | |
Type : string
|
|
| layout | |
Type : any[]
|
|
|
Custom Form Layout |
|
| legacyCreators | |
Type : boolean
|
|
| processName | |
Type : string
|
|
|
The process definition of the action or creator to execute |
|
| sandboxId | |
Type : number
|
|
|
sandboxId - this comes from claims resolver |
|
| typeId | |
Type : string
|
|
|
The LA Application Type Id (generally 1) |
|
| window:resize |
Arguments : '$event'
|
window:resize(event)
|
|
Inherited from
LiveAppsComponent
|
|
Defined in
LiveAppsComponent:45
|
| ngOnChanges | ||||||
ngOnChanges(changes: SimpleChanges)
|
||||||
|
Parameters :
Returns :
void
|
| ngOnInit |
ngOnInit()
|
|
Returns :
void
|
| ngAfterViewInit |
ngAfterViewInit()
|
|
Inherited from
LiveAppsComponent
|
|
Defined in
LiveAppsComponent:91
|
|
Returns :
void
|
| ngOnDestroy |
ngOnDestroy()
|
|
Inherited from
LiveAppsComponent
|
|
Defined in
LiveAppsComponent:99
|
|
Returns :
void
|
| ngOnInit |
ngOnInit()
|
|
Inherited from
LiveAppsComponent
|
|
Defined in
LiveAppsComponent:104
|
|
Returns :
void
|
| setupWidthObserver |
setupWidthObserver()
|
|
Inherited from
LiveAppsComponent
|
|
Defined in
LiveAppsComponent:70
|
|
Returns :
void
|
| customFormDefs |
Type : any
|
| data |
Type : any
|
| Public formsFramework |
Type : string
|
Default value : 'material-design'
|
|
Allow override of forms framework Options: bootstrap-4 or material-design |
| handleLegacyProcessCancelled |
Default value : () => {...}
|
| handleLegacyProcessComplete |
Default value : () => {...}
|
| handleSubmit |
Default value : () => {...}
|
| isCustomForm |
Default value : false
|
| Public legacyCreators |
Type : boolean
|
Default value : false
|
|
Enable legacy creators |
| options |
Type : any
|
| process |
Type : Process
|
| useLegacy |
Default value : false
|
| Protected _destroyed$ |
Default value : new Subject()
|
|
Inherited from
LiveAppsComponent
|
|
Defined in
LiveAppsComponent:39
|
| componentChildDivs |
Type : LiveAppsComponent[]
|
Decorators :
@ViewChildren('componentChildDiv')
|
|
Inherited from
LiveAppsComponent
|
|
Defined in
LiveAppsComponent:36
|
| componentDiv |
Type : ElementRef
|
Decorators :
@ViewChild('componentDiv', {static: false})
|
|
Inherited from
LiveAppsComponent
|
|
Defined in
LiveAppsComponent:35
|
| Protected containerChanges$ |
Type : Observable<TcComponent>
|
|
Inherited from
LiveAppsComponent
|
|
Defined in
LiveAppsComponent:40
|
| Private observer |
|
Inherited from
LiveAppsComponent
|
|
Defined in
LiveAppsComponent:42
|
| Public resize |
Default value : () => {...}
|
|
Inherited from
LiveAppsComponent
|
|
Defined in
LiveAppsComponent:56
|
| Public widget |
Type : TcComponent
|
|
Inherited from
LiveAppsComponent
|
|
Defined in
LiveAppsComponent:41
|
| LegacyCreators | ||||||
setLegacyCreators(legacyCreators: boolean)
|
||||||
|
Parameters :
Returns :
void
|
| FormsFramework | ||||||
setFormsFramework(formsFramework: string)
|
||||||
|
Parameters :
Returns :
void
|
import {Component, EventEmitter, Input, Output, OnDestroy, SimpleChanges, OnChanges, OnInit} from '@angular/core';
import {LiveAppsComponent} from '../live-apps-component/live-apps-component.component';
import { Process, ProcessId} from '../../models/liveappsdata';
import {LiveAppsService} from '../../services/live-apps.service';
import {take, takeUntil} from 'rxjs/operators';
import {TcCaseProcessesService} from '../../services/tc-case-processes.service';
import {TcCaseDataService} from '../../services/tc-case-data.service';
/**
* Handles rendering of case creator form.
*
*@example <tcla-live-apps-case-creator></tcla-live-apps-case-creator>
*/
@Component({
selector: 'tcla-live-apps-creator-standalone',
templateUrl: './live-apps-creator-standalone.component.html',
styleUrls: ['./live-apps-creator-standalone.component.css']
})
export class LiveAppsCreatorStandaloneComponent extends LiveAppsComponent implements OnChanges, OnInit {
/**
* sandboxId - this comes from claims resolver
*/
@Input() sandboxId: number;
/**
* LA application ID
*/
@Input() applicationId: string;
/**
* The LA Application Type Id (generally 1)
*/
@Input() typeId: string;
/**
* The process definition of the action or creator to execute
*/
@Input() processName: string;
/**
* Data object that will be displayed on the form. Allows overriding over form data (eg. when selecting data in spotfire)
*/
@Input() dataOverride: any;
/**
* Custom Form tag if using an external form app
*/
@Input() customFormTag: string;
/**
* Custom Form Layout
*/
@Input() layout: any[];
/**
* Enable legacy creators
*/
public legacyCreators: boolean = false;
@Input('legacyCreators') set LegacyCreators(legacyCreators: boolean) {
if (legacyCreators){
this.legacyCreators = legacyCreators;
}
}
/**
* Allow override of forms framework
* Options: bootstrap-4 or material-design
*/
public formsFramework: string = 'material-design';
@Input('formsFramework') set FormsFramework(formsFramework: string) {
if (formsFramework){
this.formsFramework = formsFramework;
}
}
/**
* ~event caseChanged : Case action started (process started)
* ~payload ProcessId : ProcessId object passed when a case has been updated or created by a process (action/creator)
*/
@Output() caseCreated: EventEmitter<ProcessId> = new EventEmitter<ProcessId>();
data: any;
options: any;
process: Process;
isCustomForm = false;
customFormDefs: any;
useLegacy = false;
handleSubmit = (data, caseRef) => {
// if no_process_submit then no need to run process as this was done inside a custom form app
if (data !== 'NO_PROCESS_SUBMIT') {
// run the process
this.liveapps.runProcess(this.sandboxId, this.applicationId, this.process.id, caseRef, data)
.pipe(
take(1),
takeUntil(this._destroyed$)
)
.subscribe(response => {
if (response) {
if (!response.data.errorMsg) {
// parse data to object
response.data = JSON.parse(response.data);
// case created send back response including caseIdentifier if one is present
let caseIdentifier;
let caseReference;
if (response.caseIdentifier) {
caseIdentifier = response.caseIdentifier;
}
if (response.caseReference) {
caseReference = response.caseReference;
}
const processResponse = new ProcessId().deserialize({'caseIdentifier': caseIdentifier, 'caseReference': caseReference});
this.caseCreated.emit(processResponse);
this.process = undefined;
this.data = undefined;
this.layout = undefined;
} else {
console.error('Unable to run case creator');
console.error(response.data.errorMsg);
}
}
}, error => {
console.error('Unable to run case creator');
console.error(error);
}
);
} else {
const processResponse = new ProcessId().deserialize({'caseIdentifier': undefined, 'caseReference': undefined});
this.caseCreated.emit(processResponse);
this.process = undefined;
this.data = undefined;
this.layout = undefined;
}
}
handleLegacyProcessComplete = () => {
const processResponse = new ProcessId().deserialize({'caseIdentifier': undefined, 'caseReference': undefined});
this.caseCreated.emit(processResponse);
}
handleLegacyProcessCancelled = () => {
// -1 for caseReference means cancelled
const processResponse = new ProcessId().deserialize({'caseIdentifier': undefined, 'caseReference': '-1'});
this.caseCreated.emit(processResponse);
}
constructor(protected liveapps: LiveAppsService, protected processesService: TcCaseProcessesService, protected caseDataService: TcCaseDataService) {
super();
}
ngOnInit() {
this.options = {
defaultOptions: {
'appearance': 'legacy'
}
};
}
ngOnChanges(changes: SimpleChanges) {
// initialize once data is available
if (this.applicationId && this.processName && this.typeId && this.sandboxId) {
if (this.legacyCreators) {
// use legacy creator iframe
this.useLegacy = this.legacyCreators;
}
// use rendered form
if (this.customFormTag) {
// use custom form
this.customFormDefs = { customForms: [this.customFormTag] };
}
// get schema
this.processesService.getProcess(this.sandboxId, this.applicationId, this.typeId, this.processName, 'creator').subscribe(
next => {
this.process = next;
},
error => {
console.error('Unable to get creator info');
console.error(error);
}
);
}
}
}
<div fxFill>
<tcfrm-rendered-form *ngIf="process && !useLegacy" style="overflow: auto;" [formsFramework]="formsFramework" [layout]="layout" [customFormDefs]=customFormDefs [formRef]="process.formTag" [appId]="applicationId" [customFormDefs]="customFormDefs" [schema]="process.jsonSchema" [data]="data" [options]="options" (formSubmit)="handleSubmit($event, undefined)"></tcfrm-rendered-form>
<tcla-live-apps-legacy-process *ngIf="process && useLegacy" [process]="{ process: process }" [type]="'creator'" [applicationId]="applicationId" [typeId]="typeId" (processCancelled)="handleLegacyProcessCancelled()" (processComplete)="handleLegacyProcessComplete()" class="live-apps-widget" fxFill></tcla-live-apps-legacy-process>
</div>
./live-apps-creator-standalone.component.css