{"version":3,"file":"main.aa6376f80106d7b5.js","mappings":"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","names":["ClientConfig","JobSetup","TriggerEventConfigDetails","EmailConfig","OnDemandProcessingDetails","Sourcesystem","Organizations","Trackedtables","Timecode","Expensecode","Client","user","ConfigService","constructor","http","authClientConfig","this","BehaviorSubject","config","asObservable","getConfig","configVal","getApiUrls","type","apiUrls","adminconfiguration","getAuthData","auth","load","Promise","resolve","reject","get","subscribe","next","loadConfig","response","core","factory","APIService","post","url","body","option","headers","pipe","catchError","handleErrorPassthrough","put","delete","tap","_","log","handleError","operation","error","console","message","throwError","sanitizeUrl","endsWith","result","of","ClientService","configService","apiService","urls","getClientConfiguration","clientConfigurationId","PrefixURLRead","getAllclientconfiguration","postClient","data","PrefixURLCommand","putClient","MasterdataService","getAllSourceSystem","getAllOrganization","getAllTrackedTable","getAllTriggerType","getAllTimecode","getAllExpensecode","getAllJobfrequency","getAllClient","postAllSourceSystem","putAllSourceSystem","postAllOrganization","putAllOrganization","postAllTrackedTable","putAllTrackedTable","postAllTimecode","putAllTimecode","postAllExpensecode","putAllExpensecode","postAllClient","putAllClient","getAllConsumers","consumerId","postApiConsumer","JobSetupService","GetClientJobSetUpByClientConfigurationId","getClientJobsDetails","clientId","postClientJobSetup","putClientJobSetup","TriggerEventService","getClientTriggerEventConfigurationDetails","createClientTriggerEventConfiguration","updateClientTriggerEventConfiguration","ClientConfigComponent","clientService","jobSetupService","triggerEventService","masterdataService","fb","dialogService","_location","clientForm","group","fesm2020_forms","clientName","clientValidator","createdBy","firstClaimIdToProcess","isActive","isNotificationNeededForFailedClaims","bcpClientId","lastProcessedClaimId","fetchPreviousClaims","lastProcessedTriggerObjectId","organizationId","sourceSystemId","getFormControl","controls","ngOnInit","filteredSourceSystem","sourceSystemMasterData","filteredClientData","clientMasterData","filteredOrgData","orgMasterData","parseInt","localStorage","getItem","isEditMode","getClientData","clientFilter","value","filter","s","name","toLowerCase","indexOf","orgFilter","orgName","sourceFilter","getFormData","LoggedInName","sessionStorage","formValue","getRawValue","id","Number","setItem","modifiedBy","sourceSystemName","find","item","toString","saveClient","putClientData","updateRelatedData","postClientData","jobSetupData","clientJobSetupId","resp","isSuccess","triggerEventData","clientTriggerEventConfigurationId","showConfirmation","clientApiData","patchValue","exit","dirty","showConfirmationOnBack","window","location","reload","dialogTitle","dialogContent","open","title","content","actions","text","themeColor","cssClass","width","height","minWidth","progress_kendo_angular_dialog","JSON","stringify","disabled","valid","selectors","ctx","JobSetupComponent","Date","weekDays","weekDaySource","slice","monthDays","monthDaySource","jobSetupForm","jobFrequencyId","jobDuration","jobfreq","dayOfWeekMonth","jobName","jobStartTime","retryJobCount","documentClick","event","sourceSystem","orgCode","disableJobSetupTab","filteredFrequencyData","frequecyMasterData","getJobSetupDetails","isJobNameDisabled","isJobSetupDisabled","frequencySelectionChange","selectedFrequency","frequency","dayofWeekOrMonth","Boolean","parse","toLocaleString","saveJobSetup","updateClientJobSetup","createClientJobSetup","frquencyFilter","daysFilter","monthFilter","jobSetupApiData","getFrequency","selDate","selTriggerType","TriggerEventComponent","triggerTypeData","triggerType","triggerEventForm","trigtype","timeCodeToBeTracked","tableToTrack","disableTriggerEventTab","filteredAllTrackedData","allTrackedMasterData","filteredTimeCodeMasterData","timeCodeMasterData","selectedSourceSystem","getTriggerEventData","triggerTypeId","trackedTablesId","map","itm","join","timeCodeId","sort","saveTrigger","t","tableName","clientNameChange","selectedClientName","triggerTypeFilter","triggerTypeSelectionChange","selectedTriggerType","tableToTrackFilter","timeCodeFilter","code","triggerTypeObj","tableTrackData","timeCodeData","triggerEventApiData","split","includes","String","length","selectedTrackedTables","selectedTimeCodes","ContentheaderComponent","AllorganizationsComponent","masterdataservice","organizationForm","org","allData","bind","main","organization","field","dir","getOrganizationData","reverse","openDialog","Title","opened","showTextbox","close","isTextboxVisible","onInput","newData","saveData","putOrganizationData","postOrganizationData","setValue","AllsourcesystemComponent","document","sourcesystemForm","logout","logoutParams","returnTo","origin","getSourceSystemData","openedEdit","showaddTextbox","isaddTextboxVisible","touched","putSourcesystemData","postSourcesystemData","common","AlljobfrequencyComponent","Name","Id","jobFrequency","onCancel","editDialog","onSave","status","AlltrackedtablesComponent","trackedtableForm","trackedTables","getTrackedtableData","putTrackedtableData","postTrackedtableData","alert","AlltimecodeComponent","timecodeForm","timeCode","getTimecodeData","putTimecodeData","postTimecodeData","AllexpensecodeComponent","expensecodeForm","expenseCode","getExpensecodeData","putExpensecodeData","postExpensecodeData","AlltriggertypeComponent","AllclientsComponent","client","MasterdataComponent","userRole","OndemandprocessingService","GetOnDemandProcessedClaimsDetailsByClientId","postOnDemandProcessedClaimsDetails","putOnDemandProcessedClaimsDetails","StopOnDemandProcessedClaimsDetails","OndemandClaimProcessingId","OndemandprocessingComponent","triggereventService","ondemandprocessingService","clientData","jobNameSource","ondemandForm","ondemand","isRangeOfClaims","triggerJobId","startClaimId","endClaimId","trigerredOn","triggeredBy","isNotificationRequiredForUnprocessedClaim","jobNameFilter","clientNameSelectionChange","jobNameSelectionChange","selectedJobName","timeCodeIds","onTriggerChange","setValidators","removeValidators","updateValueAndValidity","getOnDemandData","addOnDemandProcessing","addDemand","jobId","timeCodes","isRangeofClaims","toISOString","onCheckboxChange","e","target","checked","MAX_SAFE_INTEGER","onClick","isStoppedProcessing","saveondemand","ondemandApiData","onDemandGridView","onFilter","input","inputValue","logic","filters","operator","openmessage","openedmessage","showmessageTextbox","ismessageTextboxVisible","progress_kendo_angular_grid","UserAuthService","accessToken","expires_in","getAuthenticationToken","getJwtInjectionConfig","token","TabstripComponent","expenseCodeMasterData","onTabSelect","ClientsetupComponent","clientGridView","removeItem","ClientID","ClientSecret","res","access_token","addClient","showTabs","editClient","TwilioSmsClaimdetailsService","getTwilioSMSClaimDetails","TwilioSMSClaimDetailsComponent","twiliosmsclaimdetailsservice","twiliosmsApiData","loadHistory","twiliosmsdata","optedOutReadSMSMessage","showTextarea","openBody","twilioMessageBody","openedBody","showTextareaBody","isTextareaVisibleBody","isTextareaVisible","HistoryService","getHistory","skip","pageSize","getJsonHistoryByClientId","ClaimWatcherHistoryComponent","historyservice","take","total","state","dataStateChange","gridData","historyApiData","history","sortChange","getJsonDataByClientId","jsonData","dataItem","HistoryComponent","EmailConfigurationService","getClientEmailTemplateDetails","getEmailTemplate","postClientEmailTemplate","putClientEmailTemplate","AllemailconfigComponent","emailconfigurationService","emailconfigData","emailGridView","showGrid","showEmailTemplate","addEmailtemplate","editEmail","AuthCallbackComponent","router","LoginComponent","login","loginWithRedirect","appState","UserService","getUserInfoByUserEmail","emailId","updateUserLastLogin","apiConsumerKey","apiUrl","CallbackGaurdService","authService","canActivate","route","isAuthenticated$","loggedIn","user$","authTokenData","email","userdata","userId","role","navigate","NavbarService","visible","show","hide","NotAuthorizedComponent","homepage","UsersService","GetUsersDetails","GetUsersDetailsById","GetUsersDetailsByEmailId","postUsersDetails","putUsersDetails","UserComponent","usersService","userform","userValidation","emailValidator","address","contactNo","company","AdminUserRole","f","userData","getUserData","userGridView","addNewUser","adduser","editUsers","control","match","invalidEmail","saveuser","index","userRoleData","findIndex","x","routes","path","component","pathMatch","redirectTo","auth0_auth0_angular","AppRoutingModule","fesm2020_router","HeaderComponent","zone","horizontal","vertical","link","items","onToggle","isAuthenticated","userName","closeUserPanel","userLoginPanel","ngAfterViewInit","runOutsideAngular","addEventListener","run","toggleUserPanel","$event","stopPropagation","FooterComponent","LoaderService","Subject","isLoading","i0","LoaderComponent","loaderService","AppComponent","events","forEach","showFooter","EmailconfigurationComponent","emailConfigurationService","toEmails","triggertypeSource","emailForm","emaildata","ccEmail","bccEmail","subject","isJsonNeedsToBeAttached","CreatedDate","modifiedDate","getClientEmailData","saveEmail","markAllAsTouched","putClientEmailData","postClientEmailData","emailApiData","InterceptorService","intercept","request","jwtInjectionConfig","now","secondsToAdd","getTime","currentTime","clone","setHeaders","Authorization","handle","finalize","errorMessage","ErrorEvent","errormes","AppModule","bootstrap","provide","APP_INITIALIZER","useFactory","configInitializer","handler","HttpClient","toPromise","then","set","domain","authorizationParams","redirect_uri","multi","deps","HttpBackend","AuthClientConfig","HTTP_INTERCEPTORS","useClass","imports","HttpClientModule","FormsModule","ReactiveFormsModule","BrowserModule","LayoutModule","BrowserAnimationsModule","InputsModule","NavigationModule","IconsModule","PopupModule","IndicatorsModule","ButtonsModule","LabelModule","DateInputsModule","DropDownsModule","GridModule","DialogModule","PDFModule","ExcelModule","EditorModule","AuthModule","environment","config_namespaceObject","platform_browser","bootstrapModule","catch","err"],"sourceRoot":"webpack:///","sources":["./src/app/models/config.model.ts","./src/app/services/config.service.ts","./src/app/services/api.service.ts","./src/app/services/client.service.ts","./src/app/services/masterdata.service.ts","./src/app/services/job-setup.service.ts","./src/app/services/trigger-event.service.ts","./src/app/clientsetup/tabcontent/client-config/client-config.component.html","./src/app/clientsetup/tabcontent/client-config/client-config.component.ts","./src/app/clientsetup/tabcontent/job-setup/job-setup.component.html","./src/app/clientsetup/tabcontent/job-setup/job-setup.component.ts","./src/app/clientsetup/tabcontent/trigger-event/trigger-event.component.html","./src/app/clientsetup/tabcontent/trigger-event/trigger-event.component.ts","./src/app/contentheader/contentheader.component.ts","./src/app/contentheader/contentheader.component.html","./src/app/masterdata/allorganizations/allorganizations.component.html","./src/app/masterdata/allorganizations/allorganizations.component.ts","./src/app/masterdata/allsourcesystem/allsourcesystem.component.html","./src/app/masterdata/allsourcesystem/allsourcesystem.component.ts","./src/app/masterdata/alljobfrequency/alljobfrequency.component.html","./src/app/masterdata/alljobfrequency/alljobfrequency.component.ts","./src/app/masterdata/alltrackedtables/alltrackedtables.component.html","./src/app/masterdata/alltrackedtables/alltrackedtables.component.ts","./src/app/masterdata/alltimecode/alltimecode.component.html","./src/app/masterdata/alltimecode/alltimecode.component.ts","./src/app/masterdata/allexpensecode/allexpensecode.component.html","./src/app/masterdata/allexpensecode/allexpensecode.component.ts","./src/app/masterdata/alltriggertype/alltriggertype.component.html","./src/app/masterdata/alltriggertype/alltriggertype.component.ts","./src/app/masterdata/allclients/allclients.component.html","./src/app/masterdata/allclients/allclients.component.ts","./src/app/masterdata/masterdata.component.html","./src/app/masterdata/masterdata.component.ts","./src/app/services/ondemandprocessing.service.ts","./src/app/ondemandprocessing/ondemandprocessing.component.html","./src/app/ondemandprocessing/ondemandprocessing.component.ts","./src/app/auth/services/user-auth.service.ts","./src/app/clientsetup/tabstrip/tabstrip.component.html","./src/app/clientsetup/tabstrip/tabstrip.component.ts","./src/app/clientsetup/clientsetup.component.html","./src/app/clientsetup/clientsetup.component.ts","./src/app/services/twilio-sms-claimdetails.service.ts","./src/app/history/twilio-smsclaim-details/twilio-smsclaim-details.component.html","./src/app/history/twilio-smsclaim-details/twilio-smsclaim-details.component.ts","./src/app/services/history.service.ts","./src/app/history/claim-watcher-history/claim-watcher-history.component.html","./src/app/history/claim-watcher-history/claim-watcher-history.component.ts","./src/app/history/history.component.html","./src/app/history/history.component.ts","./src/app/services/email-configuration.service.ts","./src/app/emailconfiguration/allemailconfig/allemailconfig.component.html","./src/app/emailconfiguration/allemailconfig/allemailconfig.component.ts","./src/app/callback.component.ts","./src/app/login/login.component.ts","./src/app/login/login.component.html","./src/app/services/user.service.ts","./src/app/services/callback.gaurd.service.ts","./src/app/services/navbar.service.ts","./src/app/not-authorized/not-authorized.component.ts","./src/app/not-authorized/not-authorized.component.html","./src/app/services/users.service.ts","./src/app/user/user.component.html","./src/app/user/user.component.ts","./src/app/app-routing.module.ts","./src/app/layouts/header/header.component.html","./src/app/layouts/header/header.component.ts","./src/app/layouts/footer/footer.component.ts","./src/app/layouts/footer/footer.component.html","./src/app/services/loader.service.ts","./src/app/loader/loader.component.html","./src/app/loader/loader.component.ts","./src/app/app.component.html","./src/app/app.component.ts","./src/app/emailconfiguration/emailconfiguration/emailconfiguration.component.html","./src/app/emailconfiguration/emailconfiguration/emailconfiguration.component.ts","./src/app/services/interceptor.service.ts","./src/app/app.module.ts","./src/environments/environment.prod.ts","./src/main.ts"],"sourcesContent":["import * as exp from \"constants\";\n\nexport interface Config {\n apiUrls: ApiUrls;\n auth: Auth;\n}\nexport interface Auth {\n ClientID: string;\n APIConsumerKey: string;\n ClientSecret:string;\n expires_in:string;\n authorizedOn:string;\n tokenType:string;\n}\nexport interface UrlGroup {\n PrefixURLCommand: string;\n PrefixURLRead: string;\n oData: string;\n //prefixurl: string;\n //ClientID: string;\n //APIConsumerKey: string;\n}\n\nexport interface ApiUrls {\n [key: string]: any;\n adminconfiguration: UrlGroup;\n anonymous: string;\n}\n\nexport class ClientConfig {\n id: number;\n clientConfigurationId: number;\n clientId: number;\n clientName: string;\n createdBy: string;\n modifiedBy: string;\n filePath: string;\n firstClaimIdToProcess: number;\n isActive: boolean;\n fetchPreviousClaims: boolean;\n isNotificationNeededForFailedClaims: boolean;\n lastProcessedClaimId: number;\n bcpClientId: number;\n lastProcessedTriggerObjectId: number;\n organizationId: number;\n sourceSystemId: number;\n}\n\nexport class JobSetup {\n id: number;\n clientJobSetupId: number;\n clientConfigurationId: number;\n jobName: string;\n jobFrequencyId: number;\n clientId: number;\n jobDuration: number;\n dayOfWeekMonth: number;\n jobStartTime: string;\n retryJobCount: number;\n lastExecuted: string;\n isActive: boolean;\n createdBy: string;\n // createdDate: string;\n modifiedBy: string;\n // modifiedDate: string;\n}\n\nexport class TriggerEventConfigDetails {\n id: number;\n clientTriggerEventConfigurationId: number;\n clientConfigurationId: number;\n clientId: number;\n triggerType: string;\n triggerTypeId: number;\n timeCode: string;\n timeCodeId: number;\n expenseCode: string;\n expenseCodeId: number;\n trackedTableName: string;\n trackedTablesId: string;\n isActive: boolean;\n createdBy: string;\n // createdDate: string;\n modifiedBy: string;\n // modifiedDate: string;\n}\n\nexport class EmailConfig {\n id: number;\n clientId: number;\n clientName: string;\n triggerTypeId: number;\n triggerType: string;\n toEmails: string;\n isActive: boolean;\n ccEmail: string;\n bccEmail: string;\n subject: string;\n body: string;\n isJsonNeedsToBeAttached: boolean;\n createdBy: string;\n // createdDate: string;\n modifiedBy: string;\n // modifiedDate: string;\n}\n\nexport class OnDemandProcessingDetails {\n id: number;\n clientId: number;\n clientName: string;\n jobName: string;\n triggerJobId: number;\n startClaimId: number;\n endClaimId: number;\n triggerTypeId: number;\n timeCodeIds: number;\n timeCodes: string;\n isNotificationRequiredForUnprocessedClaim: boolean;\n isRangeOfClaims: boolean;\n triggeredBy: string;\n trigerredOn: string;\n isStoppedProcessing: boolean;\n createdBy: string;\n // createdDate: string;\n modifiedBy: string;\n // modifiedDate: string;\n}\n\nexport class Sourcesystem {\n id: number;\n name: string;\n isActive: boolean;\n createdBy: string;\n modifiedBy: string;\n}\n\nexport class Organizations {\n id: number;\n orgName: string;\n orgCode: string;\n createdBy: string;\n isActive: boolean;\n modifiedBy: string;\n}\n\nexport class Trackedtables {\n id: number;\n tableName: string;\n isActive: boolean;\n createdBy: string;\n isRequiredToClaimFetch: boolean;\n trackedColumnName: string;\n}\n\nexport class Timecode {\n id: number;\n code: string;\n isActive: boolean;\n createdBy: string;\n modifiedBy: string;\n}\n\nexport class Expensecode {\n id: number;\n code: string;\n isActive: boolean;\n createdBy: string;\n modifiedBy: string;\n}\n\nexport class Client {\n id: number;\n name: string;\n isActive: boolean;\n createdBy: string;\n modifiedBy: string;\n}\n\nexport class History {\n total: number;\n id: number;\n clientJobSetupId: number;\n clientJobSetupName: string;\n clientId: number;\n clientName: string;\n //jsonData: string;\n message: string;\n targetRefrenceId: string;\n // createdDate: string;\n status: string;\n processedClaimId: number;\n processedTriggerObjectId: number;\n isEmailSent: boolean;\n jobRetriedCount: number;\n // createdBy: string;\n // modifiedBy: string;\n // modifiedDate: string;\n}\n\nexport class user {\n id: number;\n address: string;\n userId: string;\n company: string;\n contactNo: number;\n isActive: boolean;\n createdBy: string;\n modifiedBy: string;\n role:string;\n // createdDate: string;\n // modifiedDate: string;\n\n\n}\n\nexport class consumerAPI {\n id: string;\n clientId: string;\n apiConsumerKey: string;\n name: string;\n}\nexport class TwilioSMSClaimDetails {\n id: number;\n claimId: number;\n phoneNumber: string;\n clientId: number;\n twilioSID: string;\n errorMessage: string;\n twilioMessageStatus: string;\n docketIdForOptInRequested: number;\n docketType: string;\n isDocketAddedInCMS: boolean;\n optedOutReadSMSMessage: string;\n // createdDate: string;\n isOptedIn: boolean;\n createdBy: string;\n modifiedBy: string;\n // modifiedDate: string;\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpClientModule, HttpHeaders } from '@angular/common/http';\nimport { Auth, Config, UrlGroup } from '../models/config.model';\nimport { of, Subject, BehaviorSubject, Observable } from 'rxjs';\nimport { AuthClientConfig } from '@auth0/auth0-angular';\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfigService {\n\n static settings: IAppConfig;\n private configVal: Config;\n\n private config: Subject = new BehaviorSubject(undefined)\n public config$ = this.config.asObservable();\n constructor(@Inject(HttpClient) private http: HttpClient, private authClientConfig: AuthClientConfig) {\n }\n public getConfig(): Config {\n return this.configVal;\n }\n\n public getApiUrls(type: string): UrlGroup {\n return this.configVal.apiUrls['adminconfiguration'];\n }\n\n public getAuthData(type: string): Auth {\n return this.configVal.auth;\n }\n public load() {\n return new Promise((resolve, reject) => {\n this.http.get(`assets/config/config.json`).subscribe(config => {\n this.configVal = config;\n this.config.next(config);\n resolve(true);\n });\n });\n }\n\n // loadConfig() {\n // //return new Promise((resolve, reject) => {\n // //this.httpClient = new HttpClient(this.handler);\n // this.http.get(`assets/config/config.json`).subscribe(response => {\n // this.configVal = response;\n // this.config.next(response);\n // // ConfigService.settings = response;\n // // this.authClientConfig.set({\n // // clientId: ConfigService.settings.AdminUIAuth0_clientID,\n // // domain: ConfigService.settings.OAuth0_Domain,\n // // authorizationParams: {\n // // redirect_uri: window.location.origin + \"/callback\"\n // // }\n // // });\n\n // // resolve();\n // })\n\n // // });\n // }\n\n loadConfig() {\n // const url = this.http.get(this.urls.prefixurl) + `adminconfiguration-read/v1/clientconfiguration/` + clientConfigurationId + `/getClientConfigurationDetails`;\n const url = `assets/config/config.json`;\n this.http.get(url).subscribe(response =>{\n this.configVal = response;\n this.config.next(response);\n });\n }\n\n}\n\nexport interface IAppConfig {\n AdminUIAuth0_clientID: string\n OAuth0_Domain: string\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { catchError, tap, map } from 'rxjs/operators';\nimport { Observable, of, Subject, BehaviorSubject, throwError } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class APIService {\n\n constructor(private http: HttpClient) { }\n\n \n post(url: string, body: any, option?: any): Observable {\n return this.http\n .post(url, body, { ...option, headers: {} })\n .pipe(catchError(this.handleErrorPassthrough(`POST: ${url}`)));\n };\n\n put(url: string, body: any, option?: any): Observable {\n return this.http\n .put(url, body, { ...option, headers: {} })\n .pipe(catchError(this.handleErrorPassthrough(`PUT: ${url}`)));\n };\n\n delete(url: string): Observable {\n return this.http.delete(url).pipe(\n tap(_ => this.log(`fetched ${url}`)),\n catchError(this.handleError(`DELETE: ${url}`, undefined))\n );\n }\n\n public get(url: string): Observable {\n return this.http.get(url).pipe(\n tap(_ => this.log(`fetched ${url}`)),\n catchError(this.handleError(`GET: ${url}`, undefined))\n );\n };\n\n private handleErrorPassthrough(operation = 'operation') {\n return (error: any): Observable => {\n console.error(error);\n this.log(`${operation} failed: ${error.message}`);\n return throwError(error);\n };\n };\n\n public sanitizeUrl(url: string): string {\n return url.endsWith('/') ? url : url + '/';\n }\n \n private handleError(operation = 'operation', result?: T) {\n return (error: any): Observable => {\n console.error(error); \n\n this.log(`${operation} failed: ${error.message}`);\n\n return of(result as T);\n };\n }\n\n private log(message: string) {\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable,Inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ClientConfig } from '../interfaces/client-config'\nimport { UrlGroup } from '../models/config.model';\nimport { APIService } from './api.service';\nimport { ConfigService } from './config.service';\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class ClientService {\nconstructor(@Inject(ConfigService) private configService: ConfigService, private apiService: APIService) { }\n\nget urls(): UrlGroup {\n return this.configService.getApiUrls('adminconfiguration');\n}\n\npublic getClientConfiguration(clientConfigurationId: number): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLRead) + `adminconfiguration-read/v1/clientconfiguration/` + clientConfigurationId + `/getClientConfigurationDetails`;\n return this.apiService.get(url);\n}\n\npublic getAllclientconfiguration(): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLRead) + `adminconfiguration-read/v1/clientconfiguration/allclientconfiguration`;\n return this.apiService.get(url);\n}\n\npublic postClient(data: any): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLCommand) + `adminconfiguration-command/v1/clientconfiguration/CreateClientConfiguration`;\n return this.apiService.post(url, data);\n}\npublic putClient(data: ClientConfig): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLCommand) + `adminconfiguration-command/v1/clientconfiguration/updateClientConfiguration`;\n return this.apiService.put(url, data);\n}\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, Inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { UrlGroup } from '../models/config.model';\nimport { APIService } from './api.service';\nimport { ConfigService } from './config.service';\nimport { Sourcesystem } from 'src/app/models/config.model';\n// import { Sourcesystem } from 'src/app/interfaces/sourcesystem';\n\nimport { Organizations } from 'src/app/models/config.model';\nimport { Trackedtables } from 'src/app/models/config.model';\nimport { Triggertype } from 'src/app/interfaces/triggertype';\nimport { Timecode } from 'src/app/models/config.model';\nimport { Expensecode } from 'src/app/models/config.model';\nimport { Jobfrequency } from 'src/app/interfaces/jobfrequency';\nimport { Client } from 'src/app/models/config.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MasterdataService {\n\n constructor(@Inject(ConfigService) private configService: ConfigService, private apiService: APIService) { }\n\n get urls(): UrlGroup {\n return this.configService.getApiUrls('adminconfiguration');\n }\n // public getSourcesystem(id: string): Observable {\n // const url = this.apiService.sanitizeUrl(this.urls.prefixurl) + `adminconfiguration-read/v1/masterdata/allsourcesystem`;\n\n // return this.http.get(url);\n // }\n // public getClientList(): Observable {\n // return this.http.get(\"url\");\n // }\n public getAllSourceSystem(): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLRead) + `adminconfiguration-read/v1/masterdata/allsourcesystem`;\n console.log(\"url:\");\n console.log(url);\n return this.apiService.get(url);\n }\n\n public getAllOrganization(): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLRead) + `adminconfiguration-read/v1/masterdata/allorganizations`;\n return this.apiService.get(url);\n }\n\n public getAllTrackedTable(): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLRead) + `adminconfiguration-read/v1/masterdata/alltrackedtables`;\n return this.apiService.get(url);\n }\n\n public getAllTriggerType(): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLRead) + `adminconfiguration-read/v1/masterdata/alltriggertype`;\n return this.apiService.get(url);\n }\n\n public getAllTimecode(): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLRead) + `adminconfiguration-read/v1/masterdata/alltimecode`;\n return this.apiService.get(url);\n }\n\n public getAllExpensecode(): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLRead) + `adminconfiguration-read/v1/masterdata/allexpensecode`;\n return this.apiService.get(url);\n }\n\n public getAllJobfrequency(): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLRead) + `adminconfiguration-read/v1/masterdata/alljobfrequency`;\n return this.apiService.get(url);\n }\n\n public getAllClient(): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLRead) + `adminconfiguration-read/v1/masterdata/allclient`;\n return this.apiService.get(url);\n }\n\n public postAllSourceSystem(data: any): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLCommand) + `adminconfiguration-command/v1/MasterData/CreateSourceSystem`;\n console.log(\"url:\");\n console.log(url);\n return this.apiService.post(url, data);\n }\n public putAllSourceSystem(data: any): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLCommand) + `adminconfiguration-command/v1/MasterData/UpdateSourceSystem`;\n console.log(\"url:\");\n console.log(url);\n return this.apiService.put(url, data);\n }\n\n public postAllOrganization(data: any): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLCommand) + `adminconfiguration-command/v1/MasterData/CreateOrganization`;\n console.log(\"url:\");\n console.log(url);\n return this.apiService.post(url, data);\n }\n public putAllOrganization(data: any): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLCommand) + `adminconfiguration-command/v1/MasterData/UpdateOrganization`;\n console.log(\"url:\");\n console.log(url);\n return this.apiService.put(url, data);\n }\n\n public postAllTrackedTable(data: any): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLCommand) + `adminconfiguration-command/v1/MasterData/CreateTrackedTables`;\n console.log(\"url:\");\n console.log(url);\n return this.apiService.post(url, data);\n }\n public putAllTrackedTable(data: any): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLCommand) + `adminconfiguration-command/v1/MasterData/UpdateTrackedTables`;\n console.log(\"url:\");\n console.log(url);\n return this.apiService.put(url, data);\n }\n\n public postAllTimecode(data: any): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLCommand) + `adminconfiguration-command/v1/MasterData/CreateTimeCode`;\n console.log(\"url:\");\n console.log(url);\n return this.apiService.post(url, data);\n }\n public putAllTimecode(data: any): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLCommand) + `adminconfiguration-command/v1/MasterData/UpdateTimeCode`;\n console.log(\"url:\");\n console.log(url);\n return this.apiService.put(url, data);\n }\n\n public postAllExpensecode(data: any): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLCommand) + `adminconfiguration-command/v1/MasterData/CreateExpenseCode`;\n console.log(\"url:\");\n console.log(url);\n return this.apiService.post(url, data);\n }\n public putAllExpensecode(data: any): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLCommand) + `adminconfiguration-command/v1/MasterData/UpdateExpenseCode`;\n console.log(\"url:\");\n console.log(url);\n return this.apiService.put(url, data);\n }\n public postAllClient(data: any): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLCommand) + `adminconfiguration-command/v1/MasterData/CreateClient`;\n console.log(\"url:\");\n console.log(url);\n return this.apiService.post(url, data);\n }\n public putAllClient(data: any): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLCommand) + `adminconfiguration-command/v1/MasterData/UpdateClient`;\n console.log(\"url:\");\n console.log(url);\n return this.apiService.put(url, data);\n }\n\n public getAllConsumers(consumerId): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLRead) + `adminconfiguration-read/v1/clientconfiguration/${consumerId}/getConsumer`;\n return this.apiService.get(url);\n }\n\n public postApiConsumer(data: any): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLCommand) + `adminconfiguration-command/v1/clientconfiguration/createConsumer`;\n return this.apiService.post(url, data);\n }\n\n\n}\n\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable,Inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { UrlGroup, JobSetup } from '../models/config.model';\nimport { JobName } from 'src/app/interfaces/jobName';\nimport { APIService } from './api.service';\nimport { ConfigService } from './config.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class JobSetupService {\nconstructor(@Inject(ConfigService) private configService: ConfigService, private apiService: APIService) { }\n\n get urls(): UrlGroup {\n return this.configService.getApiUrls('adminconfiguration');\n }\n\n public GetClientJobSetUpByClientConfigurationId(clientConfigurationId : number): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLRead) + `adminconfiguration-read/v1/clientconfiguration/` + clientConfigurationId + `/getClientJobSetupDetails`;\n return this.apiService.get(url);\n }\n\n public getClientJobsDetails(clientId : number): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLRead) + `adminconfiguration-read/v1/clientconfiguration/` + clientId + `/getClientJobsDetails`;\n return this.apiService.get(url);\n }\n\n public postClientJobSetup(data: JobSetup): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLCommand) + `adminconfiguration-command/v1/clientconfiguration/CreateClientJobSetup`;\n return this.apiService.post(url, data);\n }\n\n public putClientJobSetup(data: JobSetup): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLCommand) + `adminconfiguration-command/v1/clientconfiguration/updateClientJobSetup`;\n return this.apiService.put(url, data);\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable,Inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { UrlGroup, TriggerEventConfigDetails } from '../models/config.model';\nimport { APIService } from './api.service';\nimport { ConfigService } from './config.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TriggerEventService {\n constructor(@Inject(ConfigService) private configService: ConfigService, private apiService: APIService) { }\n\n get urls(): UrlGroup {\n return this.configService.getApiUrls('adminconfiguration');\n }\n\n public getClientTriggerEventConfigurationDetails(clientConfigurationId : number): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLRead) + `adminconfiguration-read/v1/clientconfiguration/` + clientConfigurationId + `/getClientTriggerEventConfigurationDetails`;\n return this.apiService.get(url);\n }\n\n public createClientTriggerEventConfiguration(data: any): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLCommand) + `adminconfiguration-command/v1/clientconfiguration/CreateClientTriggerEventConfiguration`;\n return this.apiService.post(url, data);\n }\n\n public updateClientTriggerEventConfiguration(data: TriggerEventConfigDetails): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLCommand) + `adminconfiguration-command/v1/clientconfiguration/updateClientTriggerEventConfiguration`;\n return this.apiService.put(url, data);\n }\n}\n","
\n
\n
\n
\n \n \n \n \n \n \n Client Name is required\n \n
\n
\n \n \n \n \n Organization is required\n \n
\n
\n \n \n \n \n Source System is required\n \n
\n
\n \n \n \n \n Please enter valid First\n claim id\n
\n
\n \n \n \n \n BCP claim id\n required\n \n
\n
\n \n  \n \n Is Notification Required For Unprocessed Claims\n \n
\n
\n \n  \n \n Is Active\n \n
\n
\n
\n \n  \n \n Fetch Previous Claims\n \n
\n
\n
\n

*Start Claim Processing from Claim ID is optional, If value is not provided,\n Claims/Dockets will be fetched having Last Changed Date from CMS greater than Job Start Time for this client configuration\n\n

\n \n
\n
\n \n\n \n
\n
\n\n
\n
\n
\n\n","import { Component, Inject, Input } from '@angular/core';\nimport { FormControl, FormGroup, Validators, FormArray, FormBuilder } from '@angular/forms';\nimport { ClientConfig } from 'src/app/models/config.model';\nimport { ClientService } from 'src/app/services/client.service';\nimport { MasterdataService } from 'src/app/services/masterdata.service';\nimport { Sourcesystem } from 'src/app/interfaces/sourcesystem';\nimport { Organizations } from 'src/app/interfaces/organizations';\nimport { Client } from 'src/app/interfaces/client';\nimport { DialogService, DialogRef, DialogCloseResult } from '@progress/kendo-angular-dialog';\nimport { JobSetupService } from 'src/app/services/job-setup.service';\nimport { JobSetup } from 'src/app/models/config.model';\nimport { TriggerEventService } from 'src/app/services/trigger-event.service';\nimport { TriggerEventConfigDetails } from 'src/app/models/config.model';\nimport { Location } from '@angular/common';\nimport { takeWhile } from 'rxjs/operators';\nimport { isNullOrEmptyString } from '@progress/kendo-angular-grid/utils';\n// import * as objectHash from 'object-hash/index';\n\n@Component({\n selector: 'app-client-config',\n templateUrl: './client-config.component.html',\n styleUrls: ['./client-config.component.scss'],\n})\nexport class ClientConfigComponent {\n public clientApiData: ClientConfig;\n public jobSetupApiData: JobSetup;\n public triggerEventApiData: TriggerEventConfigDetails;\n\n @Input()\n clientConfigurationId: number = 0;\n public selectedClientValue: Number = 0;\n public selectedOrgValue: Number = 0;\n public selectedSourceFilterValue: Number = 0;\n\n\n public clientconfig: ClientConfig[] = [];\n\n public clientForm: FormGroup;\n LoggedInName: string;\n get getFormControl() { return this.clientForm.controls; }\n\n public isEditMode: boolean = false;\n @Input() sourceSystemMasterData: Sourcesystem[] = [];\n filteredSourceSystem: Sourcesystem[] = [];\n\n\n @Input() clientMasterData: Client[] = [];\n filteredClientData: Client[] = [];\n\n @Input() orgMasterData: Organizations[] = [];\n filteredOrgData: Organizations[] = [];\n\n public clientValidator: any = {};\n // isSaveButtonDisabled: boolean = true;\n // isFormDirty : boolean = false;\n\n\n constructor(@Inject(ClientService) private clientService: ClientService, @Inject(JobSetupService) private jobSetupService: JobSetupService, @Inject(TriggerEventService) private triggerEventService: TriggerEventService, @Inject(MasterdataService) private masterdataService: MasterdataService, private fb: FormBuilder, private dialogService: DialogService, private _location: Location) {\n\n\n this.clientForm = this.fb.group({\n clientConfigurationId: new FormControl(),\n clientId: new FormControl(),\n clientName: new FormControl(this.clientValidator.clientName, [Validators.required]),\n createdBy: new FormControl(),\n firstClaimIdToProcess: new FormControl(this.clientValidator.firstClaimIdToProcess, [Validators.pattern(\"^[0-9]+$\")]),\n isActive: new FormControl(true),\n isNotificationNeededForFailedClaims: new FormControl(true),\n bcpClientId: new FormControl(this.clientValidator.bcpClientId, [Validators.required]),\n lastProcessedClaimId: new FormControl(),\n fetchPreviousClaims: new FormControl(false),\n lastProcessedTriggerObjectId: new FormControl(),\n organizationId: new FormControl(this.clientValidator.organizationId, [Validators.required]),\n sourceSystemId: new FormControl(this.clientValidator.sourceSystemId, [Validators.required])\n })\n\n\n }\n\n ngOnInit(): void {\n // this.isSaveButtonDisabled = true;\n this.filteredSourceSystem = this.sourceSystemMasterData;\n this.filteredClientData = this.clientMasterData;\n this.filteredOrgData = this.orgMasterData;\n if (this.clientConfigurationId == 0) {\n this.clientConfigurationId = parseInt(localStorage.getItem(\"clientConfigurationId\"));\n }\n if (this.clientConfigurationId > 0) {\n this.isEditMode = true;\n this.getClientData(this.clientConfigurationId);\n }\n // this.clientForm.valueChanges.subscribe(() => {\n // this.isFormDirty = this.clientForm.dirty;\n // this.isSaveButtonDisabled = !this.isFormDirty;\n // });\n\n // this.clientForm.valueChanges.subscribe((currentValue) => {\n // if (objectHash.sha1(currentValue) !== objectHash.sha1(this.clientApiData)) {\n // this.isSaveButtonDisabled = true;\n // } else {\n // this.isSaveButtonDisabled = false;\n // }\n // });\n}\n\n\n public clientFilter(value: string) {\n this.filteredClientData = this.clientMasterData;\n this.filteredClientData = this.clientMasterData.filter(\n (s) => s.name.toLowerCase().indexOf(value?.toLowerCase()) !== -1\n );\n }\n\n public orgFilter(value: string) {\n this.filteredOrgData = this.orgMasterData;\n this.filteredOrgData = this.orgMasterData.filter(\n (s) => s.orgName.toLowerCase().indexOf(value?.toLowerCase()) !== -1\n );\n }\n\n public sourceFilter(value: string) {\n this.filteredSourceSystem = this.sourceSystemMasterData;\n this.filteredSourceSystem = this.sourceSystemMasterData.filter(\n (s) => s.name.toLowerCase().indexOf(value?.toLowerCase()) !== -1\n );\n }\n\n public getFormData(): any {\n let data: ClientConfig = new ClientConfig();\n this.LoggedInName = sessionStorage.getItem('username');\n\n const formValue = this.clientForm.getRawValue();\n if (this.isEditMode) {\n data.id = Number(localStorage.getItem('clientConfigurationId'));\n data.clientId = Number(localStorage.getItem('clientId'));\n data.clientName = formValue.clientName;\n\n }\n else {\n data.clientId = formValue.clientName.id;\n data.clientName = formValue.clientName.name;\n localStorage.setItem('clientName', data.clientName);\n }\n data.organizationId = +formValue.organizationId?.id ? +formValue.organizationId.id : 0;\n data.sourceSystemId = +formValue.sourceSystemId?.id ? +formValue.sourceSystemId.id : 0;\n data.isActive = formValue.isActive;\n data.fetchPreviousClaims = formValue.fetchPreviousClaims;\n if(formValue.firstClaimIdToProcess == \"\"){\n formValue.firstClaimIdToProcess = null;\n }\n data.firstClaimIdToProcess = formValue.firstClaimIdToProcess\n data.lastProcessedClaimId = +formValue.lastProcessedClaimId;\n data.lastProcessedTriggerObjectId = +formValue.lastProcessedTriggerObjectId;\n data.isNotificationNeededForFailedClaims = formValue.isNotificationNeededForFailedClaims;\n data.bcpClientId = formValue.bcpClientId\n if (+this.isEditMode > 0) {\n data.modifiedBy = this.LoggedInName;\n // data.modifiedBy = localStorage.getItem(this.storageKeys.createdBy);\n }\n else {\n data.createdBy = this.LoggedInName;\n //data.createdBy = localStorage.getItem(this.storageKeys.createdBy);\n }\n\n let sourceSystemName = this.sourceSystemMasterData.find(item => item.id === data.sourceSystemId).name;\n //console.log(\"source\", this.source);\n //console.log(data.sourceSystemId);\n //console.log(\"sourceSystem\", sourceSystemName);\n localStorage.setItem('clientId', data.clientId?.toString());\n localStorage.setItem('isActive', data.isActive.toString());\n localStorage.setItem('clientName', data.clientName);\n localStorage.setItem('sourceSystem', sourceSystemName);\n localStorage.setItem('orgCode', data.organizationId.toString());\n // localStorage.setItem('firstClaimIdToProcess',data.firstClaimIdToProcess.toString());\n return data;\n }\n\n public saveClient() {\n let data = this.getFormData();\n if (this.clientConfigurationId > 0) {\n this.putClientData(data);\n this.updateRelatedData(data);\n } else {\n this.postClientData(data);\n // this.clientForm.pristine = false;\n // document.getElementById('disabledTabs').innerText = this.clientConfigurationId?this.clientConfigurationId.toString():\"\";\n }\n // this.isSaveButtonDisabled = true;\n }\n // public saveDisable(): any{\n // if(!this.clientForm.dirty){\n // this.isSaveButtonDisabled = true;\n // }\n // else{\n // this.isSaveButtonDisabled = false;\n // }\n // }\n\n public updateRelatedData(data: any) {\n this.jobSetupService.GetClientJobSetUpByClientConfigurationId(this.clientConfigurationId).subscribe(jobSetupData => {\n jobSetupData.isActive = data.isActive;\n jobSetupData.id = jobSetupData.clientJobSetupId;\n\n if (jobSetupData.id>0) {\n this.jobSetupService.putClientJobSetup(jobSetupData).subscribe((resp) => {\n if (resp.isSuccess) {\n console.log(\"Client job setup updated successfully\");\n }\n else {\n console.log(\"Error: \" + resp.message);\n }\n })\n }\n })\n this.triggerEventService.getClientTriggerEventConfigurationDetails(this.clientConfigurationId).subscribe(triggerEventData => {\n triggerEventData.isActive = data.isActive;\n triggerEventData.id = triggerEventData.clientTriggerEventConfigurationId;\n\n if (triggerEventData.id > 0) {\n this.triggerEventService.updateClientTriggerEventConfiguration(triggerEventData).subscribe((resp) => {\n if (resp.isSuccess) {\n console.log(\"Trigger event updated successfully\");\n }\n else {\n console.log(\"Error: \" + resp.message);\n }\n })\n }\n })\n }\n\n public putClientData(data: any) {\n this.clientService.putClient(data).subscribe((resp) => {\n if (resp.isSuccess) {\n this.showConfirmation(\"Success\", \"Client configuration updated successfully\");\n console.log(\"Client configuration updated successfully\");\n this.getClientData(this.clientConfigurationId);\n } else {\n this.showConfirmation(\"Error\", \"Error: \" + resp.message);\n console.log(\"Error: \" + resp.message);\n }\n }, (error: any) => {\n console.log(\"update error1\");\n });\n }\n\n public postClientData(data: any) {\n\n this.clientService.postClient(data).subscribe((resp) => {\n if (resp.isSuccess) {\n this.clientConfigurationId = resp.id;\n this.showConfirmation(\"Success\", \"Client configuration added successfully\");\n console.log(\"Client configuration added successfully\");\n this.getClientData(this.clientConfigurationId);\n } else {\n this.showConfirmation(\"Error\", \"Error: \" + resp.message);\n console.log(\"Error: \" + resp.message);\n }\n }, (error: any) => {\n console.log(error.message);\n });\n }\n\n public getClientData(clientConfigurationId: number) {\n if (clientConfigurationId > 0) {\n this.clientService.getClientConfiguration(clientConfigurationId).subscribe(data => {\n this.clientApiData = data;\n if (this.clientApiData) {\n\n this.clientForm.patchValue({\n organizationId: this.orgMasterData.find(item => item.id === this.clientApiData.organizationId),\n sourceSystemId: this.sourceSystemMasterData.find(item => item.id === this.clientApiData.sourceSystemId),\n firstClaimIdToProcess: this.clientApiData.firstClaimIdToProcess,\n bcpClientId: this.clientApiData.bcpClientId,\n isActive: this.clientApiData.isActive,\n fetchPreviousClaims: this.clientApiData.fetchPreviousClaims,\n isNotificationNeededForFailedClaims: this.clientApiData.isNotificationNeededForFailedClaims,\n clientName: this.clientApiData.clientName\n });\n let sourceSystemId = this.sourceSystemMasterData.find(item => item.id === this.clientApiData.sourceSystemId).name;\n localStorage.setItem('clientId', this.clientApiData.clientId?.toString());\n localStorage.setItem('clientConfigurationId', this.clientConfigurationId.toString());\n localStorage.setItem('isActive', this.clientApiData.isActive.toString());\n localStorage.setItem('clientName', this.clientApiData?.clientName);\n localStorage.setItem('sourceSystem', sourceSystemId);\n localStorage.setItem('orgCode', this.clientApiData.organizationId?.toString());\n //document.getElementById('disabledTabs').innerText = this.clientConfigurationId ? this.clientConfigurationId.toString():\"\";\n }\n });\n }\n }\n\n public exit() {\n if (this.clientForm.dirty && this.isEditMode) {\n this.showConfirmationOnBack(\"Please Confirm\",\"You have unsaved data on the page.Do you want to continue?\");\n } else {\n window.location.reload();\n }\n }\n\n public result;\n public showConfirmation(dialogTitle, dialogContent): void {\n\n const dialog: DialogRef = this.dialogService.open({\n title: dialogTitle,\n content: dialogContent,\n actions: [{ text: \"Close\", themeColor: \"primary\", cssClass: \"modal-close-button\" }],\n width: 400,\n height: 150,\n minWidth: 250,\n\n });\n\n dialog.result.subscribe((result) => {\n if (result instanceof DialogCloseResult) {\n console.log(\"close\");\n } else {\n console.log(\"action\", result);\n }\n this.result = JSON.stringify(result);\n });\n // if(this.clientForm.dirty)\n // this.isSaveButtonDisabled = true;\n\n }\n\n\n public showConfirmationOnBack(dialogTitle,dialogContent): void {\n const dialog: DialogRef = this.dialogService.open({\n title: dialogTitle,\n content: dialogContent,\n actions: [{ text: \"Yes\" }, { text: \"No\", themeColor: \"primary\" }],\n width: 350,\n height: 170,\n minWidth: 250\n\n });\n\n dialog.result.subscribe((result) => {\n if (result instanceof DialogCloseResult) {\n console.log(\"close\");\n } else if (result.text == \"Yes\") {\n //this._location.back();\n window.location.reload();\n }\n this.result = JSON.stringify(result);\n });\n }\n\n disabled() {\n if (this.isEditMode) {\n if (!this.clientForm.valid || !this.clientForm.dirty) {\n return true;\n\n }\n } else{\n if (!this.clientForm.valid) {\n return true;\n }\n }\n return false;\n }\n\n\n\n}\n","
\n Tab disabled, Please configure Client first\n
\n
\n
\n
\n
\n \n \n \n \n \n Frequency required\n \n
\n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n Job Name is required\n \n
\n
\n \n \n \n Job Start Time is required\n \n
\n
\n \n \n \n \n
\n \n
\n
\n \n Back\n \n Save\n
\n
\n \n
\n\n","import { Component, Inject, Input, HostListener } from '@angular/core';\nimport { SelectEvent } from '@progress/kendo-angular-upload/events/select-event';\nimport { JobSetupService } from 'src/app/services/job-setup.service';\nimport { FormControl, FormGroup, Validators, FormArray, FormBuilder } from '@angular/forms';\nimport { JobSetup } from 'src/app/models/config.model';\nimport { Jobfrequency } from 'src/app/interfaces/jobfrequency';\nimport { JobName } from 'src/app/interfaces/jobName';\nimport { MasterdataService } from 'src/app/services/masterdata.service';\nimport { DialogService, DialogRef, DialogCloseResult } from '@progress/kendo-angular-dialog';\nimport { DateInputSize, DateInputRounded, DateInputFillMode } from \"@progress/kendo-angular-dateinputs\";\n\n@Component({\n selector: 'app-job-setup',\n templateUrl: './job-setup.component.html',\n styleUrls: ['./job-setup.component.scss']\n})\nexport class JobSetupComponent {\n public jobSetupApiData: JobSetup;\n public disableJobSetupTab: boolean;\n public showAlert: boolean = true;\n public date: Date = new Date();\n public selectedFrequency: string | undefined;\n public autoCorrect = true;\n public minDate = 1;\n public maxDate = 31;\n public minHour = 1;\n public maxHour = 23;\n public min = 0;\n public max = 59;\n public format = \"MM/dd/yyyy HH:mm\";\n public selDate: Date = new Date(2019, 5, 1, 21, 45);\n public selectedJobFrequencyValue: Number = 0;\n public selectedDayOfWeekMonthValue: Number = 0;\n //public frequencySource: Jobfrequency[] = [];\n //public frequencies: Jobfrequency[] = [];\n @Input() frequecyMasterData:Jobfrequency[] = [];\n\n public filteredFrequencyData : Jobfrequency[] = [];\n public selTriggerType: string;\n\n public weekDaySource: Array<{ text: string; value: number }> = [\n { text: \"Monday\", value: 1 },\n { text: \"Tuesday\", value: 2 },\n { text: \"Wednesday\", value: 3 },\n { text: \"Thursday\", value: 4 },\n { text: \"Friday\", value: 5 },\n { text: \"Saturday\", value: 6 },\n { text: \"Sunday\", value: 7 },\n ];\n\n public weekDays: Array<{ text: string; value: number }>;\n\n public monthDaySource: Array<{ text: string; value: number }> = [\n { text: \"1\", value: 1 },\n { text: \"2\", value: 2 },\n { text: \"3\", value: 3 },\n { text: \"4\", value: 4 },\n { text: \"5\", value: 5 },\n { text: \"6\", value: 6 },\n { text: \"7\", value: 7 },\n { text: \"8\", value: 8 },\n { text: \"9\", value: 9 },\n { text: \"10\", value: 10 },\n { text: \"11\", value: 11 },\n { text: \"12\", value: 12 },\n { text: \"13\", value: 13 },\n { text: \"14\", value: 14 },\n { text: \"15\", value: 15 },\n { text: \"16\", value: 16 },\n { text: \"17\", value: 17 },\n { text: \"18\", value: 18 },\n { text: \"19\", value: 19 },\n { text: \"20\", value: 20 },\n { text: \"21\", value: 21 },\n { text: \"22\", value: 22 },\n { text: \"23\", value: 23 },\n { text: \"24\", value: 24 },\n { text: \"25\", value: 25 },\n { text: \"26\", value: 26 },\n { text: \"27\", value: 27 },\n { text: \"28\", value: 28 },\n { text: \"Last Day Of Month\", value: -1 },\n\n ];\n public monthDays: Array<{ text: string; value: number }>;\n\n @Input()\n clientConfigurationId: number = 0;\n clientJobSetupId: number = 0;\n clientId: number = 0;\n clientName: string;\n sourceSystem: string;\n orgCode: string;\n\n public isEditMode: boolean = false;\n public isJobSetupDisabled: boolean = false;\n public rounded: DateInputRounded = \"small\";\n public fillMode: DateInputFillMode = \"flat\";\n public size: DateInputSize = \"small\";\n\n public jobfreq: any = {};\n\n public jobSetupForm: FormGroup;\n LoggedInName: string = \"\";\n\n\n constructor(@Inject(MasterdataService) private masterdataService: MasterdataService, @Inject(JobSetupService) private jobSetupService: JobSetupService, private fb: FormBuilder, private dialogService: DialogService) {\n // this.masterdataService.getAllJobfrequency().subscribe(data => {\n // this.frequencySource = data;\n // this.frequencies = data;\n // });\n\n this.clientId = Number(localStorage.getItem('clientId'));\n this.weekDays = this.weekDaySource.slice();\n this.monthDays = this.monthDaySource.slice();\n\n this.jobSetupForm = this.fb.group({\n clientJobSetupId: new FormControl(),\n clientId: new FormControl(),\n clientConfigurationId: new FormControl(),\n jobFrequencyId: new FormControl([Validators.required]),\n jobDuration: new FormControl(this.jobfreq.jobDuration, [Validators.required]),\n isActive: new FormControl(),\n dayOfWeekMonth: new FormControl(this.jobfreq.dayOfWeekMonth, [Validators.required]),\n jobName: new FormControl(this.jobfreq.jobName, [Validators.required]),\n jobStartTime: new FormControl(this.jobfreq.jobStartTime, [Validators.required]),\n retryJobCount: new FormControl()\n })\n }\n\n @HostListener(\"document:click\", [\"$event\"])\n public documentClick(event: KeyboardEvent): void {\n this.clientName = localStorage.getItem('clientName');\n this.sourceSystem = localStorage.getItem('sourceSystem');\n this.orgCode = localStorage.getItem('orgCode');\n if (!this.clientName || !this.sourceSystem || !this.orgCode) {\n this.disableJobSetupTab = true;\n this.showConfirmation(\"Tab disabled\", \"Please configure client first\");\n }\n }\n\n ngOnInit(): void {\n this.filteredFrequencyData = this.frequecyMasterData;\n this.clientConfigurationId = Number(localStorage.getItem('clientConfigurationId'));\n if (this.clientConfigurationId > 0) {\n this.getJobSetupDetails(this.clientConfigurationId);\n if(this.clientJobSetupId>0){\n this.isEditMode = true;\n }\n }\n }\n public isJobNameDisabled(jobName: any): void {\n if(jobName!=='' || jobName == undefined){\n this.isJobSetupDisabled = true;\n }\n else{\n this.isJobSetupDisabled = false;\n }\n }\n\n public frequencySelectionChange(value: any): void {\n this.selectedFrequency = value.frequency;\n }\n\n public getFormData(): any {\n let data: JobSetup = new JobSetup();\n this.LoggedInName = sessionStorage.getItem('username');\n // if(this.LoggedInName == null || this.LoggedInName == '' || this.LoggedInName == undefined){\n // this.LoggedInName = 'pranay';\n // }\n const formValue = this.jobSetupForm.getRawValue();\n if (+formValue.clientJobSetupId > 0) {\n data.id = formValue.clientJobSetupId\n }\n if (this.clientConfigurationId <= 0) {\n this.clientConfigurationId = Number(localStorage.getItem('clientConfigurationId'));\n }\n data.clientConfigurationId = this.clientConfigurationId;\n data.clientId = Number(localStorage.getItem('clientId'));\n data.jobFrequencyId = formValue.jobFrequencyId.id;\n data.jobDuration = formValue.jobDuration;\n data.isActive = Boolean(JSON.parse(localStorage.getItem('isActive')));\n let dayofWeekOrMonth;\n if (formValue.jobFrequencyId.frequency == 'Monthly') {\n dayofWeekOrMonth = formValue.dayOfWeekMonth;\n }\n else if (formValue.jobFrequencyId.frequency == 'Weekly') {\n dayofWeekOrMonth = formValue.dayOfWeekMonth.value;\n }\n else {\n dayofWeekOrMonth = null;\n }\n data.dayOfWeekMonth = dayofWeekOrMonth;\n data.jobName = formValue.jobName;\n\n data.jobStartTime = formValue.jobStartTime.toLocaleString(\"en-us\");\n data.retryJobCount = formValue.retryJobCount;\n if (+this.isEditMode > 0) {\n data.modifiedBy = this.LoggedInName;\n\n }\n else {\n data.createdBy = this.LoggedInName;\n }\n return data;\n }\n\n public saveJobSetup(): void {\n let data = this.getFormData();\n if (+this.clientJobSetupId > 0) {\n this.updateClientJobSetup(data);\n } else {\n this.createClientJobSetup(data);\n }\n }\n\n public updateClientJobSetup(data: any) {\n this.jobSetupService.putClientJobSetup(data).subscribe((resp) => {\n if (resp.isSuccess) {\n console.log(\"Client job setup updated successfully\");\n\n this.showConfirmation(\"Success\", \"Client job setup updated successfully\");\n this.clientConfigurationId = this.clientConfigurationId > 0 ? this.clientConfigurationId : Number(localStorage.getItem('clientConfigurationId'));\n this.getJobSetupDetails(this.clientConfigurationId);\n } else {\n\n this.showConfirmation(\"Error\", \"Error: \" + resp.message);\n console.log(\"Error: \" + resp.message);\n }\n }, (error: any) => {\n console.log(\"update error1\");\n });\n }\n\n public createClientJobSetup(data: any) {\n this.jobSetupService.postClientJobSetup(data).subscribe((resp) => {\n // this.clientJobSetupId = resp.id;\n if (resp.isSuccess) {\n this.showConfirmation(\"Success\", \"Client job setup updated successfully\");\n //need to fetch recently created data using resp.id which has value of clientConfigurationId\n //now but will need clientJobSetupId to fetch ClientJobSetup data instead clientConfigurationId\n this.clientConfigurationId = this.clientConfigurationId > 0 ? this.clientConfigurationId : Number(localStorage.getItem('clientConfigurationId'));\n this.getJobSetupDetails(this.clientConfigurationId);\n } else {\n this.showConfirmation(\"Error\", \"Error: \" + resp.message);\n }\n }, (error: any) => {\n console.log(\"error1\");\n });\n }\n\n\n\n frquencyFilter(value: any) {\n // this.frequencySource = this.frequencies;\n // this.frequencySource = this.frequencies.filter(\n // (s) => s.frequency.toLowerCase().indexOf(value.toLowerCase()) !== -1\n // );\n this.filteredFrequencyData = this.frequecyMasterData;\n this.filteredFrequencyData = this.frequecyMasterData.filter(\n (s) => s.frequency.toLowerCase().indexOf(value.toLowerCase()) !== -1\n );\n }\n\n daysFilter(value: any) {\n this.weekDays = this.weekDaySource.filter(\n (s) => s.text.toLowerCase().indexOf(value.toLowerCase()) !== -1\n );\n }\n monthFilter(value: any) {\n this.monthDays = this.monthDaySource.filter(\n (s) => s.text.toLowerCase().indexOf(value.toLowerCase()) !== -1\n );\n }\n\n public getJobSetupDetails(clientConfigurationId: number) {\n this.jobSetupService.GetClientJobSetUpByClientConfigurationId(clientConfigurationId).subscribe(jobSetupApiData => {\n if (jobSetupApiData) {\n let getFrequency = this.frequecyMasterData.find(item => item.id === jobSetupApiData.jobFrequencyId);\n this.selectedFrequency = this.frequecyMasterData.find(item => item.id === jobSetupApiData.jobFrequencyId)?.frequency;\n this.clientJobSetupId =jobSetupApiData.clientJobSetupId;\n this.jobSetupForm.patchValue({\n clientJobSetupId: jobSetupApiData.clientJobSetupId,\n clientConfigurationId: Number(localStorage.getItem('clientConfigurationId')),\n clientId: Number(localStorage.getItem('clientId')),\n jobName:jobSetupApiData.jobName,\n dayOfWeekMonth:jobSetupApiData.jobFrequencyId === 4 ? this.weekDays.find(item => item.value === jobSetupApiData.dayOfWeekMonth) : jobSetupApiData.dayOfWeekMonth ||\n jobSetupApiData.jobFrequencyId === 5 ? this.monthDays.find(item => item.value === jobSetupApiData.dayOfWeekMonth): jobSetupApiData.dayOfWeekMonth,\n\n isActive:jobSetupApiData.isActive,\n jobDuration: jobSetupApiData.jobDuration,\n jobFrequencyId: getFrequency,\n\n jobStartTime: (jobSetupApiData.jobStartTime == \"Invalid Date\" || jobSetupApiData.jobStartTime == null) ? '' : new Date(jobSetupApiData.jobStartTime?.toString()),\n retryJobCount: jobSetupApiData.retryJobCount,\n });\n this.selDate = new Date(jobSetupApiData.jobStartTime?.toString());\n this.isJobNameDisabled(jobSetupApiData.jobName);\n }\n this.selTriggerType = localStorage.getItem('triggerType').toString();\n });\n }\n\n public exit() {\n if(this.jobSetupForm.dirty){\n this.showConfirmationOnBack(\"You have unsaved data on the page.Do you want to continue?\");\n }else{\n window.location.reload();\n }\n }\n\n public result;\n public showConfirmation(dialogTitle, dialogContent): void {\n const dialog: DialogRef = this.dialogService.open({\n title: dialogTitle,\n content: dialogContent,\n actions: [{ text: \"Close\", themeColor: \"primary\", cssClass: \"modal-close-button\" }],\n width: 400,\n height: 150,\n minWidth: 250,\n });\n\n dialog.result.subscribe((result) => {\n if (result instanceof DialogCloseResult) {\n console.log(\"close\");\n } else {\n console.log(\"action\", result);\n window.location.reload();\n }\n this.result = JSON.stringify(result);\n });\n }\n\n public showConfirmationOnBack(dialogContent): void {\n const dialog: DialogRef = this.dialogService.open({\n title: \"Please confirm\",\n content: dialogContent,\n actions: [{ text: \"Yes\"}, { text: \"No\", themeColor: \"primary\" }],\n width: 350,\n height: 170,\n });\n\n dialog.result.subscribe((result) => {\n if (result instanceof DialogCloseResult) {\n console.log(\"close\");\n } else {\n if(result.text == \"Yes\"){\n //this._location.back();\n window.location.reload();\n }\n }\n this.result = JSON.stringify(result);\n });\n }\n\n disabled() {\n if (this.clientConfigurationId > 0) {\n if(this.clientJobSetupId>0){\n this.isEditMode = true;\n }\n }\n if (this.isEditMode) {\n if (!this.jobSetupForm.valid || !this.jobSetupForm.dirty) {\n return true;\n }\n } else {\n if (!this.jobSetupForm.valid) {\n return true;\n }\n }\n return false;\n }\n}\n","
\n Tab disabled,Please configure Client first\n
\n
\n
\n
\n
\n \n \n \n \n \n Trigger Type required\n \n
\n
\n \n \n \n Tables to be tracked is\n required\n \n
\n
\n
\n
\n \n \n \n
\n\n \n
\n
\n\n
\n
\n
\n
\n
\n\n
\n
\n \n Save\n
\n
\n
\n
\n
\n","import { Component, Inject, Input, HostListener } from '@angular/core';\nimport { FormControl, FormGroup, Validators, FormArray, FormBuilder } from '@angular/forms';\nimport { MasterdataService } from 'src/app/services/masterdata.service';\nimport { TriggerEventService } from 'src/app/services/trigger-event.service';\nimport { Triggertype } from 'src/app/interfaces/triggertype';\nimport { Trackedtables, Timecode, Expensecode, TriggerEventConfigDetails } from 'src/app/models/config.model';\nimport { DialogService, DialogRef, DialogCloseResult } from '@progress/kendo-angular-dialog';\nimport { Console } from 'console';\n\n@Component({\n selector: 'app-trigger-event',\n templateUrl: './trigger-event.component.html',\n styleUrls: ['./trigger-event.component.scss']\n})\nexport class TriggerEventComponent {\n\n public triggerEventApiData: TriggerEventConfigDetails;\n public disableTriggerEventTab: boolean;\n\n @Input()\n clientConfigurationId: number;\n clientTriggerEventConfigurationId: number = 0;\n clientName: string;\n sourceSystem: string;\n orgCode: string;\n\n public isEditMode: boolean = false;\n public selectedTrackedTables: any[] = [];\n public selectedTimeCodes:any[] = [];\n public selectedExpenseCode:any[] = [];\n public triggerTypeData: Triggertype[] = [];\n public triggerType: Triggertype[] = [];\n public selectedExpenseCodeValue: Number = 0;\n public selectedTriggerTypeValue: Number = 0;\n public selectedTimeCodeValue: Number = 0;\n\n //public tableToTrackData: Trackedtables[] = [];\n // public tableToBeTrack: Trackedtables[] = [];\n\n //public timeCodeData: Timecode[] = [];\n public timeCode: Timecode[] = [];\n\n public expenseCodeData: Expensecode[] = [];\n public expenseCode: Expensecode[] = [];\n\n public trigtype: any = {};\n\n public triggerEventForm: FormGroup;\n\n public selectedSourceSystem: string | undefined;\n public selectedClientName: string | null;\n public selectedTriggerType: string | null;\n LoggedInName: string;\n @Input() allTrackedMasterData: any = [];\n @Input() expenseCodeMasterData: any = [];\n @Input() timeCodeMasterData: any = [];\n public selectedItems: Trackedtables[]=[];\n\n filteredAllTrackedData: any = [];\n filteredTimeCodeMasterData:any = [];\n // filteredExpenseCodeMasterData:any = [];\n get getFormControl() { return this.triggerEventForm.controls; }\n\n\n\n constructor(@Inject(TriggerEventService) private triggerEventService: TriggerEventService, @Inject(MasterdataService) private masterdataService: MasterdataService, private fb: FormBuilder, private dialogService: DialogService) {\n\n this.masterdataService.getAllTriggerType().subscribe(data => {\n this.triggerTypeData = data;\n this.triggerType = data;\n });\n this.triggerEventForm = this.fb.group({\n id: new FormControl(),\n triggerType: new FormControl(this.trigtype.triggerType, [Validators.required]),\n timeCodeToBeTracked: new FormControl(),\n //expenseCodeToBeTracked: new FormControl(),\n tableToTrack: new FormControl(this.trigtype.triggerType, [Validators.required]),\n })\n\n }\n\n @HostListener(\"document:click\", [\"$event\"])\n public documentClick(event: KeyboardEvent): void {\n this.clientName = localStorage.getItem('clientName');\n this.sourceSystem = localStorage.getItem('sourceSystem');\n this.orgCode = localStorage.getItem('orgCode');\n if (!this.clientName || !this.sourceSystem || !this.orgCode) {\n this.disableTriggerEventTab = true;\n this.showConfirmation(\"Tab disabled\", \"Please configure Client first\")\n console.log(\"this.showConfirmation\");\n }\n }\n\n ngOnInit(): void {\n this.filteredAllTrackedData = this.allTrackedMasterData;\n this.filteredTimeCodeMasterData = this.timeCodeMasterData;\n //this.filteredExpenseCodeMasterData = this.expenseCodeMasterData;\n this.clientConfigurationId = Number(localStorage.getItem('clientConfigurationId'));\n this.selectedSourceSystem = localStorage.getItem('sourceSystem');\n //this.selectedItems = [this.allTrackedMasterData[0]];\n\n\n if (this.clientConfigurationId > 0) {\n this.getTriggerEventData(this.clientConfigurationId);\n }\n if (this.clientTriggerEventConfigurationId > 0) {\n this.isEditMode = true;\n }\n }\n\n public getFormData(): any {\n this.LoggedInName = sessionStorage.getItem('username');\n // if(this.LoggedInName == null || this.LoggedInName == '' || this.LoggedInName == undefined){\n // this.LoggedInName = 'pranay';\n // }\n let data: TriggerEventConfigDetails = new TriggerEventConfigDetails();\n const formValue = this.triggerEventForm.getRawValue();\n console.log(\"formValue\", formValue);\n localStorage.setItem('triggerType', formValue.triggerType.type);\n //if (formValue.clientTriggerEventConfigurationId > 0) {\n if (formValue.clientTriggerEventConfigurationId > 0) {\n data.id = formValue.clientTriggerEventConfigurationId;\n }\n data.clientId = Number(localStorage.getItem('clientId'));\n data.clientConfigurationId = this.clientConfigurationId;\n data.triggerTypeId = formValue.triggerType.id;\n\n data.trackedTablesId = formValue.tableToTrack ? formValue.tableToTrack.filter(s => s.isActive == true).map(itm => itm.id).join(',') : [];\n if(formValue.triggerType.id == 1){\n data.timeCodeId = formValue.timeCodeToBeTracked ?formValue.timeCodeToBeTracked.filter(s=>s.isActive).map(itm => itm.id).sort().join(',') :[];\n //data.expenseCodeId = formValue.expenseCodeToBeTracked ? formValue.expenseCodeToBeTracked.filter(s=>s.isActive).map(itm=>itm.id).sort().join(','):[];\n }\n console.log(data);\n data.isActive = Boolean(JSON.parse(localStorage.getItem('isActive')));\n if (+formValue.id > 0) {\n data.modifiedBy = this.LoggedInName;\n }\n else {\n data.createdBy = this.LoggedInName;\n }\n // }\n return data;\n }\n\n public saveTrigger(): void {\n let data = this.getFormData();\n console.log(\"data\",data);\n if(this.triggerEventForm.getRawValue().tableToTrack?.find(t => t.tableName == 'Claim') == undefined){\n this.showConfirmation(\"Error\",\"Please select Claim table from tracked tables\");\n }\n\n else if (this.clientTriggerEventConfigurationId > 0) {\n this.updateClientTriggerEventConfiguration(data);\n } else {\n this.createClientTriggerEventConfiguration(data);\n }\n }\n\n public updateClientTriggerEventConfiguration(data: any) {\n this.triggerEventService.updateClientTriggerEventConfiguration(data).subscribe((resp) => {\n if (resp.isSuccess) {\n console.log(\"Trigger event updated successfully\");\n this.showConfirmation(\"Success\", \"Trigger event updated successfully\");\n this.clientConfigurationId = this.clientConfigurationId > 0 ? this.clientConfigurationId : Number(localStorage.getItem('clientConfigurationId'));\n this.getTriggerEventData(this.clientConfigurationId);\n } else {\n this.showConfirmation(\"Error\", \"Error: \" + resp.message);\n console.log(\"Error: \" + resp.message);\n }\n }, (error: any) => {\n console.log(\"update error1\");\n });\n }\n\n public createClientTriggerEventConfiguration(data: any) {\n console.log(\"data\", data);\n this.triggerEventService.createClientTriggerEventConfiguration(data).subscribe((resp) => {\n this.clientConfigurationId = this.clientConfigurationId > 0 ? this.clientConfigurationId : Number(localStorage.getItem('clientConfigurationId'));\n if (resp.isSuccess) {\n console.log(\"success\");\n this.showConfirmation(\"Success\", \"Trigger event added successfully\");\n this.getTriggerEventData(this.clientConfigurationId);\n } else {\n this.showConfirmation(\"Error\", \"Error: \" + resp.message);\n console.log(\"Error: \" + resp.message);\n }\n }, (error: any) => {\n console.log(\"error1\");\n });\n }\n\n public clientNameChange(value: any): void {\n this.selectedClientName = value.name\n }\n\n public triggerTypeFilter(value: string) {\n this.triggerTypeData = this.triggerType;\n this.triggerTypeData = this.triggerType.filter(\n (s) => s.type.toLowerCase().indexOf(value?.toLowerCase()) !== -1\n );\n }\n\n public triggerTypeSelectionChange(value: any): void {\n this.selectedTriggerType = value.type;\n localStorage.setItem('triggerType', this.selectedTriggerType);\n }\n\n public tableToTrackFilter(value: string) {\n // this.tableToTrackData = this.tableToBeTrack;\n // this.tableToTrackData = this.tableToBeTrack?.filter(\n // (s) => s.tableName.toLowerCase().indexOf(value?.toLowerCase()) !== -1\n // );\n //this.allTrackedMasterData = this.tableToBeTrack;\n this.filteredAllTrackedData = this.allTrackedMasterData?.filter(\n (s) => s.tableName.toLowerCase().indexOf(value?.toLowerCase()) !== -1\n );\n }\n\n public timeCodeFilter(value: string) {\n //this.timeCodeData = this.timeCode;\n this.filteredTimeCodeMasterData = this.timeCodeMasterData.filter(\n (s) => s.code.toLowerCase().indexOf(value?.toLowerCase()) !== -1\n );\n }\n\n // public expenseCodeFilter(value: string) {\n // //this.expenseCodeData = this.expenseCode;\n // this.filteredExpenseCodeMasterData = this.expenseCodeMasterData.filter(\n // (s) => s.code.toLowerCase().indexOf(value?.toLowerCase()) !== -1\n // );\n // }\n\n public getTriggerEventData(clientConfigurationId: number) {\n //this.masterdataService.getAllTrackedTable().subscribe(AllTrackedMasterData => {\n //this.tableToBeTrack = AllTrackedMasterData;\n let triggerTypeObj = {};\n let tableTrackData = [];\n let timeCodeData = [];\n //let expenseCodeData = [];\n this.triggerEventService.getClientTriggerEventConfigurationDetails(clientConfigurationId).subscribe(triggerEventApiData => {\n console.log(\"triggerEventApiData\",triggerEventApiData);\n if (triggerEventApiData) {\n tableTrackData = (triggerEventApiData.trackedTablesId != null) ? this.allTrackedMasterData?.filter(item => triggerEventApiData.trackedTablesId?.split(',').includes(item.id.toString())) : '';\n timeCodeData = (triggerEventApiData.timeCodeId != null) ? this.timeCodeMasterData?.filter(item => String(triggerEventApiData.timeCodeId)?.split(',').includes(item.id.toString())) : '';\n // expenseCodeData = (triggerEventApiData.expenseCodeId != null) ? this.expenseCodeMasterData?.filter(item => String(triggerEventApiData.expenseCodeId)?.split(',').includes(item.id.toString())) : '';\n if(tableTrackData.length < 1){\n tableTrackData = [this.allTrackedMasterData[0]];\n }\n\n\n if (triggerEventApiData.triggerTypeId != 0) {\n this.selectedTriggerType = triggerEventApiData.triggerType;\n triggerTypeObj = {id:triggerEventApiData.triggerTypeId,type:triggerEventApiData.triggerType}\n //console.log(\"triggerTypeObj\",triggerTypeObj);\n }else{\n triggerTypeObj = null;\n }\n\n this.selectedClientName = localStorage.getItem('clientName')?.toString();\n this.clientTriggerEventConfigurationId = triggerEventApiData.clientTriggerEventConfigurationId;\n if (triggerEventApiData.trackedTablesId) {\n this.selectedTrackedTables = this.allTrackedMasterData?.filter(item => triggerEventApiData.trackedTablesId?.split(',').includes(item.id.toString()));\n }\n if(triggerEventApiData.timeCodeId != 0){\n this.selectedTimeCodes = this.timeCodeMasterData?.filter(item => String(triggerEventApiData.timeCodeId)?.split(',').includes(item.id.toString()));\n }\n // if(triggerEventApiData.expenseCodeId != 0){\n // this.selectedExpenseCode = this.expenseCodeMasterData?.filter(item => String(triggerEventApiData.expenseCodeId)?.split(',').includes(item.id.toString()));\n // }\n\n this.triggerEventForm.patchValue({\n id: triggerEventApiData.clientTriggerEventConfigurationId,\n clientId: Number(localStorage.getItem('clientId')),\n clientName: localStorage.getItem('clientName')?.toString(),\n triggerType:triggerTypeObj,\n sourceSystem: localStorage.getItem('sourceSystem')?.toString(),\n //timeCodeToBeTracked: this.timeCodeMasterData.find(item => item.id === triggerEventApiData.timeCodeId),\n //expenseCodeToBeTracked: this.expenseCodeMasterData.find(item => item.id === triggerEventApiData.expenseCodeId),\n timeCodeToBeTracked:timeCodeData,\n //expenseCodeToBeTracked:expenseCodeData,\n tableToTrack: tableTrackData\n },);\n }\n });\n }\n\n public exit() {\n if(this.triggerEventForm.dirty){\n this.showConfirmationOnBack(\"You have unsaved data on the page.Do you want to continue?\");\n }else{\n window.location.reload();\n }\n }\n\n public result;\n public showConfirmation(dialogTitle, dialogContent): void {\n const dialog: DialogRef = this.dialogService.open({\n title: dialogTitle,\n content: dialogContent,\n actions: [{ text: \"Close\", themeColor: \"primary\", cssClass: \"modal-close-button\" }],\n width: 400,\n height: 150,\n minWidth: 250,\n });\n\n dialog.result.subscribe((result) => {\n if (result instanceof DialogCloseResult) {\n console.log(\"close\");\n } else {\n console.log(\"action\", result);\n }\n this.result = JSON.stringify(result);\n });\n }\n\n public showConfirmationOnBack(dialogContent): void {\n const dialog: DialogRef = this.dialogService.open({\n title: \"Please confirm\",\n content: dialogContent,\n actions: [{ text: \"Yes\"}, { text: \"No\", themeColor: \"primary\" }],\n width: 350,\n height: 170,\n });\n\n dialog.result.subscribe((result) => {\n if (result instanceof DialogCloseResult) {\n console.log(\"close\");\n } else {\n if(result.text == \"Yes\"){\n window.location.reload();\n }\n }\n this.result = JSON.stringify(result);\n });\n }\n\n disabled() {\n if (this.clientTriggerEventConfigurationId > 0) {\n this.isEditMode = true;\n }\n if (this.isEditMode) {\n console.log(this.triggerEventForm.dirty);\n if (!this.triggerEventForm.valid || !this.triggerEventForm.dirty) {\n return true;\n }\n } else {\n if (!this.triggerEventForm.valid) {\n return true;\n }\n }\n return false;\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-contentheader',\n templateUrl: './contentheader.component.html',\n styleUrls: ['./contentheader.component.scss']\n})\nexport class ContentheaderComponent implements OnInit {\n @Input()\n headerText: string | undefined;\n\n constructor() { }\n\n ngOnInit(): void { \n }\n}\n","
\n
{{ headerText }}
\n
\n
\n","
\n
\n
\n Add Organization\n
\n
\n \n \n \n \n \n \n\n \n \n \n\n \n \n \n \n Edit\n \n \n \n \n\n \n \n \n
\n
\n
\n Page {{ pageNum }} of {{ totalPages }}\n
\n
\n
Page {{ pageNum }} of {{ totalPages }}
\n
\n \n \n \n \n\n
\n
\n\n
\n \n \n \n \n \n \n \n Organization Name required\n \n \n \n \n \n\n Only Alphabets and numerics are allowed\n\n Organization Code required\n \n \n Is Active\n \n
\n
\n Save\n \n
\n
\n
\n
\n
\n
\n
\n","import { Component, ViewEncapsulation, ViewChild, Input } from '@angular/core';\nimport { SelectEvent } from '@progress/kendo-angular-layout';\nimport { FormControl, FormGroup, Validators, FormArray, FormBuilder } from '@angular/forms';\nimport { DialogService, DialogCloseResult, DialogRef } from '@progress/kendo-angular-dialog';\nimport { Observable } from 'rxjs';\nimport { OnInit, Inject } from '@angular/core';\nimport { GridDataResult, AddEvent, RemoveEvent } from '@progress/kendo-angular-grid';\nimport { State, process } from '@progress/kendo-data-query';\nimport { map } from 'rxjs/operators';\nimport { MasterdataService } from 'src/app/services/masterdata.service';\nimport { ClientConfig } from 'src/app/interfaces/client-config';\nimport { Sourcesystem } from 'src/app/interfaces/sourcesystem';\nimport { Organizations } from 'src/app/models/config.model';\nimport { Trackedtables } from 'src/app/interfaces/trackedtables';\nimport { Triggertype } from 'src/app/interfaces/triggertype';\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\n\n@Component({\n selector: 'app-allorganizations',\n templateUrl: './allorganizations.component.html',\n styleUrls: ['./allorganizations.component.scss']\n})\nexport class AllorganizationsComponent implements OnInit {\n\n public isTextboxVisible: boolean = false;\n public newData: any = '';\n public opened = false;\n public FileName: string = \"\";\n public newName: string = '';\n @ViewChild('editDialog') editDialog!: DialogRef;\n public orgName: string = \"\";\n public orgCode: string = \"\";\n public Title: string = \"\";\n public formData = { orgName: '' };\n public formValid = false;\n public isEditMode: boolean = false;\n @Input()\n id: number = 0;\n public organization: Organizations[] = [];\n public org :any = {\n\n };\n public pageSizes:boolean = true;\n public organizationForm: FormGroup;\n LoggedInName: string;\n get getFormControl() { return this.organizationForm.controls; }\n\n constructor(private dialogService: DialogService,@Inject(MasterdataService) private masterdataservice: MasterdataService, private fb: FormBuilder) {\n this.organizationForm = this.fb.group({\n id: new FormControl(),\n orgCode: new FormControl(this.org.orgCode,[Validators.required,Validators.pattern(\"^[a-zA-Z0-9]*$\")]),\n orgName: new FormControl('',[Validators.required]),\n isActive: new FormControl(true),\n createdBy: new FormControl()\n })\n this.allData = this.allData.bind(this);\n\n }\n public allData(): ExcelExportData{\n const result: ExcelExportData = {\n data: process(this.organization, {\n\n sort: [{ field: \"id\", dir: \"desc\" }],\n }).data,\n\n\n };\n return result;\n }\n\n ngOnInit(): void {\n if(this.orgName == ''){\n this.isEditMode = true;\n this.getOrganizationData();\n console.log('getting organization');\n }\n console.log(this.isEditMode);\n console.log('data from read api:');\n this.masterdataservice.getAllOrganization().subscribe(data=>{ this.organization = data.reverse();\n console.log(data);});\n }\n\n public getFormData(): any {\n this.LoggedInName = sessionStorage.getItem('username');\n // if(this.LoggedInName == null || this.LoggedInName == '' || this.LoggedInName == undefined){\n // this.LoggedInName = 'pranay';\n // }\n let data: Organizations = new Organizations();\n const formValue = this.organizationForm.getRawValue();\n if (this.isEditMode) {\n data.id = formValue.id;\n data.orgName = formValue.orgName;\n data.orgCode = formValue.orgCode;\n data.isActive = formValue.isActive;\n data.modifiedBy = this.LoggedInName;\n }\n else {\n data.orgName = formValue.orgName;\n data.orgCode = formValue.orgCode;\n data.createdBy = this.LoggedInName;\n data.isActive = true;\n\n }\n return (data);\n }\n\n public openDialog(orgName: string, orgCode: string, id: number, isActive: boolean) {\n this.isEditMode = true;\n this.orgName = orgName;\n this.orgCode = orgCode;\n this.id = id;\n this.organizationForm.patchValue({ orgName: orgName });\n this.organizationForm.patchValue({ orgCode: orgCode });\n this.organizationForm.patchValue({ id: id });\n this.organizationForm.patchValue({ isActive: isActive });\n\n this.Title = \"Edit Organization\";\n this.opened = true;\n console.log(this.orgName);\n console.log(this.orgCode);\n console.log(this.id);\n this.showTextbox();\n\n }\n\n public close(): void {\n\n this.opened = false;\n }\n public open(): void {\n this.opened = true;\n this.isEditMode = false;\n this.showTextbox();\n this.Title = \"Add Organization\";\n this.organizationForm = this.fb.group({\n orgCode: new FormControl(this.org.orgCode,[Validators.required,Validators.pattern(\"^[a-zA-Z0-9]*$\")]),\n orgName: new FormControl('',[Validators.required]),\n isActive:[],\n id:[]\n\n })\n }\n public showTextbox() {\n this.isTextboxVisible = true;\n }\n\n public onInput(value: string) {\n this.newData = value;\n }\n public saveData() {\n let data = this.getFormData();\n console.log(data);\n if (this.orgName && this.isEditMode) {\n this.putOrganizationData(data);\n } else {\n this.postOrganizationData(data);\n }\n // this.getOrganizationData();\n // this.masterdataservice.getAllOrganization().subscribe(data=>{ this.organization = data;\n // });\n }\n\n public putOrganizationData(data: any) {\n this.masterdataservice.putAllOrganization(data).subscribe((resp) => {\n this.orgName = resp.orgName;\n this.orgCode = resp.orgCode;\n\n // this.id = resp.id;\n if (resp.isSuccess) {\n this.showConfirmation(\"Success\",\"Organization updated successfully\");\n console.log(\"Organization updated successfully\");\n // this.masterdataservice.getAllOrganization();\n } else {\n this.showConfirmation(\"Error\", \"Error: \" + resp.message);\n console.log(\"Error: \" + resp.message);\n }\n }, (error: any) => {\n console.log(\"update error1\");\n });\n }\n\n\n public postOrganizationData(data: any) {\n console.log(data);\n this.masterdataservice.postAllOrganization(data).\n subscribe((resp) => {\n // this.orgName = resp.orgName;\n // this.orgCode = resp.orgCode;\n //this.createdBy = resp.createdBy;\n if (resp.isSuccess) {\n this.showConfirmation(\"Success\",\"Organization added successfully\");\n console.log(\"Organization added successfully\");\n // this.getOrganizationData();\n } else {\n this.showConfirmation(\"Error\",\"Error: \" + resp.message);\n console.log(\"Error: \" + resp.message);\n }\n }, (error: any) => {\n console.log(\"error1\");\n });\n }\n\n public getOrganizationData() {\n this.masterdataservice.getAllOrganization().subscribe(data => {\n this.organization = data.reverse();\n\n if (this.organization) {\n this.organizationForm.setValue(this.organization);\n console.log(this.organization);\n }\n console.log(this.organization)\n });\n\n }\n\n public result;\n public showConfirmation(dialogTitle, dialogContent): void {\n const dialog: DialogRef = this.dialogService.open({\n title: dialogTitle,\n content: dialogContent,\n actions: [{ text: \"Close\", themeColor: \"primary\", cssClass: \"modal-close-button\" }],\n width: 400,\n height: 180,\n minWidth: 250,\n });\n\n dialog.result.subscribe((result) => {\n if (result instanceof DialogCloseResult) {\n } else {\n console.log(\"action\", result);\n this.opened = false;\n this.getOrganizationData();\n // window.location.reload();\n\n }\n this.result = JSON.stringify(result);\n });\n }\n\n}\n","
\n
\n
\n Add Source System\n
\n
\n \n \n \n \n \n \n\n \n \n \n \n \n \n Edit\n \n \n \n\n \n\n \n \n \n
\n
\n
\n Page {{ pageNum }} of {{ totalPages }}\n
\n
\n
Page {{ pageNum }} of {{ totalPages }}
\n
\n \n \n \n \n\n \n \n \n \n \n \n \n \n Only Alphabets and numerics are allowed\n name required\n\n\n \n\n
\n Save\n \n
\n
\n\n \n \n \n \n \n\n \n Only Alphabets and numerics are allowed\n name required\n\n \n\n \n \n Is Active\n \n
\n Save\n \n
\n
\n
\n
\n
\n
\n","import { Component, ViewEncapsulation, ViewChild, Input } from '@angular/core';\nimport { SelectEvent } from '@progress/kendo-angular-layout';\nimport { FormControl, FormGroup, Validators, FormArray, FormBuilder } from '@angular/forms';\nimport { DialogService, DialogCloseResult, DialogRef } from '@progress/kendo-angular-dialog';\nimport { process } from \"@progress/kendo-data-query\";\nimport { Observable } from 'rxjs';\nimport { OnInit, Inject } from '@angular/core';\nimport { MasterdataService } from 'src/app/services/masterdata.service';\nimport { ClientConfig } from 'src/app/interfaces/client-config';\nimport { Sourcesystem } from 'src/app/models/config.model';\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\nimport { AuthService } from '@auth0/auth0-angular';\nimport { DOCUMENT } from '@angular/common';\n\n@Component({\n selector: 'app-allsourcesystem',\n templateUrl: './allsourcesystem.component.html',\n styleUrls: ['./allsourcesystem.component.scss']\n})\nexport class AllsourcesystemComponent implements OnInit {\n\n public isTextboxVisible: boolean = false;\n public isaddTextboxVisible: boolean = false;\n public openedEdit = false;\n public newData: any = '';\n public opened = false;\n public FileName: string = \"\";\n public newName: string = '';\n @ViewChild('editDialog') editDialog!: DialogRef;\n public name: string = \"\";\n public Title: string = \"\";\n public isEditMode: boolean = false;\n @Input()\n id: number = 0;\n public sourceSystem: Sourcesystem[] = [];\n public Data = [];\n public sourcesystem: Sourcesystem[] = [];\n validPattern = \"^[a-zA-Z0-9]{10}$\"\n public sourcesystemForm: FormGroup;\n LoggedInName: string;\n public pageSizes = true;\n get getFormControl() { return this.sourcesystemForm.controls; }\n\n constructor(private dialogService: DialogService, @Inject(MasterdataService) private masterdataservice: MasterdataService, private fb: FormBuilder,@Inject(DOCUMENT) public document: Document,public auth: AuthService) {\n this.sourcesystemForm = this.fb.group({\n id: new FormControl(),\n name: new FormControl('', [Validators.required, Validators.pattern(\"^[a-zA-Z0-9]*$\")]),\n isActive: new FormControl(),\n createdBy: new FormControl(),\n })\n this.allData = this.allData.bind(this);\n\n }\n public allData(): ExcelExportData{\n const result: ExcelExportData = {\n data: process(this.sourceSystem, {\n\n sort: [{ field: \"id\", dir: \"desc\" }],\n }).data,\n\n\n };\n return result;\n }\n\n ngOnInit(): void {\n if(sessionStorage.getItem('token')== null){\n this.auth.logout({\n logoutParams: {\n returnTo: this.document.location.origin\n }\n });\n\n }\n if (this.name == '') {\n this.isEditMode = true;\n this.getSourceSystemData();\n console.log('getting ng on it')\n console.log(this.isEditMode);\n }\n console.log('data from read api:');\n this.masterdataservice.getAllSourceSystem().subscribe(data => {\n this.sourceSystem = data.reverse();\n });\n\n }\n\n public getFormData(): any {\n this.LoggedInName = sessionStorage.getItem('username');\n // if(this.LoggedInName == null || this.LoggedInName == '' || this.LoggedInName == undefined){\n // this.LoggedInName = 'pranay';\n // }\n let data: Sourcesystem = new Sourcesystem();\n const formValue = this.sourcesystemForm.getRawValue();\n console.log(this.sourcesystemForm.getRawValue());\n if (this.isEditMode) {\n data.id = formValue.id;\n data.name = formValue.name;\n data.isActive = formValue.isActive;\n data.modifiedBy = this.LoggedInName;\n }\n else {\n data.name = formValue.name;\n data.createdBy = this.LoggedInName;\n data.isActive = true;\n\n\n }\n\n return (data);\n }\n\n public openDialog(name: string, id: number, isActive: boolean) {\n this.isEditMode = true;\n this.name = name;\n this.id = id;\n this.sourcesystemForm.patchValue({ id: id });\n this.sourcesystemForm.patchValue({ name: name });\n this.sourcesystemForm.patchValue({ isActive: isActive });\n this.Title = \"Edit Source System\";\n this.openedEdit = true;\n console.log(this.name);\n this.showTextbox();\n }\n\n // public onCancel(){\n // this.editDialog.close();\n // }\n\n public close(): void {\n this.isEditMode = false;\n this.name = null;\n this.opened = false;\n this.openedEdit = false;\n }\n\n public open(): void {\n this.opened = true;\n this.isEditMode = false;\n this.showaddTextbox();\n this.Title = \"Add Source System\";\n this.sourcesystemForm = this.fb.group({\n id: new FormControl(),\n name: new FormControl('', [Validators.required,Validators.pattern(\"^[a-zA-Z0-9]*$\")]),\n isActive: new FormControl(),\n createdBy: new FormControl(),\n })\n }\n\n public showaddTextbox() {\n this.isaddTextboxVisible = true;\n }\n\n public showTextbox() {\n this.isTextboxVisible = true;\n }\n\n public onInput(value: string) {\n this.newData = value;\n }\n public saveData() {\n let data = this.getFormData();\n console.log(data);\n if (this.name && this.sourcesystemForm.touched && this.isEditMode) {\n this.putSourcesystemData(data);\n } else {\n this.postSourcesystemData(data);\n }\n }\n\n public putSourcesystemData(data: any){\n this.masterdataservice.putAllSourceSystem(data).subscribe((resp) => {\n this.name = resp.name;\n if (resp.isSuccess) {\n this.showConfirmation(\"Success\",\"Source system updated successfully\");\n console.log(\"Source system updated successfully\")\n // this.masterdataservice.getAllSourceSystem();\n } else {\n this.showConfirmation(\"Error\",\"Error: \" + resp.message);\n console.log(\"Error: \" + resp.message);\n }\n }, (error: any) => {\n console.log(\"update error1\");\n });\n }\n\n\n public postSourcesystemData(data: any) {\n console.log(data);\n this.masterdataservice.postAllSourceSystem(data).\n subscribe((resp) => {\n //this.name = resp.name;\n // this.createdBy = resp.createdBy;\n if (resp.isSuccess) {\n this.showConfirmation(\"Success\", \"Source system added successfully\");\n console.log(\"Source system added successfully\");\n //this.postAllSourceSystem();\n // this.getSourceSystemData();\n } else {\n this.showConfirmation(\"Error\", \"Error: \" + resp.message);\n console.log(\"Error: \" + resp.message);\n }\n }, (error: any) => {\n console.log(error.message);\n });\n }\n public getSourceSystemData() {\n this.masterdataservice.getAllSourceSystem().subscribe(data => {\n this.sourceSystem = data.reverse();\n if (this.sourceSystem) {\n this.sourcesystemForm.setValue(this.sourceSystem);\n console.log(this.sourceSystem);\n }\n console.log(this.sourceSystem)\n });\n\n }\n\n public result;\n public showConfirmation(dialogTitle, dialogContent): void {\n const dialog: DialogRef = this.dialogService.open({\n title: dialogTitle,\n content: dialogContent,\n actions: [{ text: \"Close\", themeColor: \"primary\", cssClass: \"modal-close-button\" }],\n width: 400,\n height: 180,\n minWidth: 250,\n })\n dialog.result.subscribe((result) => {\n if (result instanceof DialogCloseResult) {\n // // window.location.reload()\n // this.getSourceSystemData();\n // // this.opened = false;\n // if(this.isEditMode){\n // this.openedEdit = false;\n // }\n // else{\n // this.opened = false;\n\n // }\n // console.log(\"close\");\n } else {\n this.opened = false;\n this.openedEdit = false;\n this.getSourceSystemData();\n // window.location.reload();\n console.log(\"action\", result);\n }\n this.result = JSON.stringify(result);\n });\n }\n}\n","
\n
\n \n \n \n \n \n \n\n \n \n \n\n \n \n \n
\n
\n
\n Page {{ pageNum }} of {{ totalPages }}\n
\n
\n
Page {{ pageNum }} of {{ totalPages }}
\n
\n \n \n \n \n\n
\n
\n
\n","import { Component, ViewEncapsulation, ViewChild, Input } from '@angular/core';\nimport { SelectEvent } from '@progress/kendo-angular-layout';\nimport { FormControl, FormGroup, Validators, FormArray, FormBuilder } from '@angular/forms';\nimport { DialogService, DialogCloseResult,DialogRef } from '@progress/kendo-angular-dialog';\nimport { Observable } from 'rxjs';\nimport { OnInit, Inject } from '@angular/core';\nimport { GridDataResult, AddEvent, RemoveEvent } from '@progress/kendo-angular-grid';\nimport { State, process } from '@progress/kendo-data-query';\nimport { map } from 'rxjs/operators';\nimport { MasterdataService } from 'src/app/services/masterdata.service';\nimport { ClientConfig } from 'src/app/interfaces/client-config';\nimport { Sourcesystem } from 'src/app/interfaces/sourcesystem';\nimport { Organizations } from 'src/app/interfaces/organizations';\nimport { Trackedtables } from 'src/app/interfaces/trackedtables';\nimport { Triggertype } from 'src/app/interfaces/triggertype';\nimport { Timecode } from 'src/app/interfaces/timecode';\nimport { Jobfrequency } from 'src/app/interfaces/jobfrequency';\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\n\n@Component({\n selector: 'app-alljobfrequency',\n templateUrl: './alljobfrequency.component.html',\n styleUrls: ['./alljobfrequency.component.scss']\n})\nexport class AlljobfrequencyComponent implements OnInit {\n\n public isTextboxVisible: boolean = false;\n public newData: any = '';\n public opened = false;\n public FileName: string = \"\";\n public newName: string = '';\n @ViewChild('editDialog') editDialog!: DialogRef;\n public Name : string =\"\";\n public Title : string =\"\";\n public formData = { Name: ''};\n public formValid = false;\n public SourcesystemApiData: Sourcesystem;\n public isEditMode: boolean = false;\n public pageSizes:boolean = true;\n @Input()\n Id: number = 0;\n public jobFrequency: Jobfrequency[]=[];\n public Data=[];\n\n constructor(private dialogService: DialogService,@Inject(MasterdataService) private masterdataservice: MasterdataService) { }\n\n\n ngOnInit(): void {\n if(this.Id > 0){\n this.isEditMode = true;\n }\n console.log(this.isEditMode);\n console.log('data from read api:');\n this.masterdataservice.getAllJobfrequency().subscribe(data=>{ this.jobFrequency = data;\n console.log(data);});\n this.allData = this.allData.bind(this);\n\n }\n public allData(): ExcelExportData{\n const result: ExcelExportData = {\n data: process(this.jobFrequency, {\n\n sort: [{ field: \"id\", dir: \"desc\" }],\n }).data,\n\n\n };\n return result;\n }\n\n public openDialog(Name : string){\n this.Name = Name;\n this.Title = \"Edit Entity\";\n this.opened = true;\n console.log(this.Name);\n this.showTextbox();\n }\n\n public onCancel(){\n this.editDialog.close();\n }\n\n public onSave(){\n this.editDialog.close();\n }\n public close(status: string): void {\n console.log(`Dialog result: ${status}`);\n this.opened = false;\n }\n public open(): void {\n this.opened = true;\n this.showTextbox();\n this.Title = \"Add Entity\";\n this.Name=\"\";\n\n }\n public showTextbox() {\n this.isTextboxVisible = true;\n }\n\n public onInput(value: string) {\n this.newData = value;\n }\n public saveData() {\n console.log(this.Name);\n\n this.newData = '';\n this.isTextboxVisible = false;\n this.opened = false;\n }\n}\n","
\n
\n
\n \n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n
\n
\n
\n Page {{ pageNum }} of {{ totalPages }}\n
\n
\n
Page {{ pageNum }} of {{ totalPages }}
\n
\n \n \n \n \n\n
\n
\n
\n
\n
\n","import { Component, ViewEncapsulation, ViewChild, Input } from '@angular/core';\nimport { SelectEvent } from '@progress/kendo-angular-layout';\nimport { FormControl, FormGroup, Validators, FormArray, FormBuilder } from '@angular/forms';\nimport { DialogService, DialogCloseResult,DialogRef } from '@progress/kendo-angular-dialog';\nimport { Observable } from 'rxjs';\nimport { OnInit, Inject } from '@angular/core';\nimport { GridDataResult, AddEvent, RemoveEvent } from '@progress/kendo-angular-grid';\nimport { State, process } from '@progress/kendo-data-query';\nimport { map } from 'rxjs/operators';\nimport { MasterdataService } from 'src/app/services/masterdata.service';\nimport { ClientConfig } from 'src/app/interfaces/client-config';\nimport { Trackedtables } from 'src/app/models/config.model';\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\n\n@Component({\n selector: 'app-alltrackedtables',\n templateUrl: './alltrackedtables.component.html',\n styleUrls: ['./alltrackedtables.component.scss']\n})\n\nexport class AlltrackedtablesComponent implements OnInit {\n public isTextboxVisible: boolean = false;\n public newData: any = '';\n public opened = false;\n public FileName: string = \"\";\n public newName: string = '';\n\n @ViewChild('editDialog') editDialog!: DialogRef;\n\n public tableName : string =\"\";\n public Title : string =\"\";\n public formData = { Name: ''};\n public formValid = false;\n public isEditMode: boolean = false;\n public pageSizes:boolean = true;\n @Input()\n id: number = 0;\n\n public trackedTables: Trackedtables[]=[];\n public Data=[];\n\n public trackedtableForm: FormGroup = new FormGroup({\n tableName: new FormControl(),\n createdBy: new FormControl()\n })\n\n constructor(private dialogService: DialogService,@Inject(MasterdataService) private masterdataservice: MasterdataService, private fb: FormBuilder) {\n this.trackedtableForm = this.fb.group({\n tableName:[],\n createdBy:[]\n })\n this.allData = this.allData.bind(this);\n\n }\n public allData(): ExcelExportData{\n const result: ExcelExportData = {\n data: process(this.trackedTables, {\n\n sort: [{ field: \"id\", dir: \"desc\" }],\n }).data,\n\n\n };\n return result;\n }\n\n\n ngOnInit(): void {\n if(this.id > 0){\n this.isEditMode = true;\n this.getTrackedtableData();\n }\n console.log(this.isEditMode);\n console.log('data from read api:');\n this.masterdataservice.getAllTrackedTable().subscribe(data=>{ this.trackedTables = data;\n\n console.log(data);});\n }\n\n public getFormData(): any {\n let data: Trackedtables = new Trackedtables();\n const formValue = this.trackedtableForm.getRawValue();\n console.log(this.trackedtableForm.getRawValue());\n data.tableName = formValue.tableName;\n data.createdBy = \"deepankar\";\n return(data);\n }\n\n public openDialog(tableName : string){\n this.tableName = tableName;\n this.trackedtableForm.patchValue({tableName:tableName});\n this.Title = \"Edit Entity\";\n this.opened = true;\n console.log(this.tableName);\n this.showTextbox();\n }\n\n public onCancel(){\n this.editDialog.close();\n }\n\n public onSave(){\n this.editDialog.close();\n }\n\n public close(status: string): void {\n console.log(`Dialog result: ${status}`);\n this.opened = false;\n }\n\n public open(): void {\n this.opened = true;\n this.showTextbox();\n this.Title = \"Add Entity\";\n this.tableName=\"\";\n }\n\n public showTextbox() {\n this.isTextboxVisible = true;\n }\n\n public onInput(value: string) {\n this.newData = value;\n }\n\n public saveData() {\n let data = this.getFormData();\n console.log(data);\n if (this.tableName) {\n this.putTrackedtableData(data);\n } else {\n this.postTrackedtableData(data);\n }\n this.getTrackedtableData();\n this.masterdataservice.getAllTrackedTable().subscribe(data=>{ this.trackedTables = data;\n });\n }\n\n public putTrackedtableData(data: any){\n this.masterdataservice.putAllTrackedTable(data).subscribe((resp) => {\n this.tableName = resp.tableName;\n if (resp.isSuccess) {\n console.log(\"updated successfully\");\n alert(\"updated successfully\");\n this.masterdataservice.getAllTrackedTable();\n } else {\n console.log(\"update error\");\n }\n }, (error: any) => {\n console.log(\"update error1\");\n });\n }\n\n public postTrackedtableData(data: any){\n console.log(data);\n this.masterdataservice.postAllTrackedTable(data).\n subscribe((resp) => {\n this.tableName = resp.tableName;\n //this.createdBy = resp.createdBy;\n if (resp.isSuccess) {\n console.log(\"success\");\n alert(\"added successfully\");\n //this.postAllSourceSystem();\n this.getTrackedtableData();\n } else {\n console.log(\"error\");\n }\n }, (error: any) => {\n console.log(\"error1\");\n });\n }\n\n public getTrackedtableData(){\n if (this.id>0) {\n this.masterdataservice.getAllTrackedTable().subscribe(data=>{ this.trackedTables = data;\n if (this.trackedTables) {\n this.trackedtableForm.setValue(this.trackedTables);\n console.log(this.trackedTables);\n\n }\n console.log(this.trackedTables)\n });\n }\n }\n\n}\n","
\n
\n
\n Add Time Code\n
\n
\n \n \n \n \n \n \n\n \n \n \n \n \n \n Edit\n \n \n \n \n\n \n \n \n
\n
\n
\n Page {{ pageNum }} of {{ totalPages }}\n
\n
\n
Page {{ pageNum }} of {{ totalPages }}
\n
\n \n \n \n \n\n
\n \n \n \n \n \n \n \n Only Alphabets and numerics are allowed\n Time Code required\n\n \n \n Is Active\n \n
\n
\n Save\n \n
\n
\n
\n
\n
\n
\n
\n","import { Component, ViewEncapsulation, ViewChild, Input } from '@angular/core';\nimport { SelectEvent } from '@progress/kendo-angular-layout';\nimport { FormControl, FormGroup, Validators, FormArray, FormBuilder } from '@angular/forms';\nimport { DialogService, DialogCloseResult,DialogRef } from '@progress/kendo-angular-dialog';\nimport { Observable } from 'rxjs';\nimport { OnInit, Inject } from '@angular/core';\nimport { GridDataResult, AddEvent, RemoveEvent } from '@progress/kendo-angular-grid';\nimport { State, process } from '@progress/kendo-data-query';\nimport { map } from 'rxjs/operators';\nimport { MasterdataService } from 'src/app/services/masterdata.service';\nimport { ClientConfig } from 'src/app/interfaces/client-config';\nimport { Sourcesystem } from 'src/app/interfaces/sourcesystem';\nimport { Organizations } from 'src/app/interfaces/organizations';\nimport { Trackedtables } from 'src/app/interfaces/trackedtables';\nimport { Triggertype } from 'src/app/interfaces/triggertype';\nimport { Timecode } from 'src/app/models/config.model';\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\n\n\n@Component({\n selector: 'app-alltimecode',\n templateUrl: './alltimecode.component.html',\n styleUrls: ['./alltimecode.component.scss']\n})\nexport class AlltimecodeComponent implements OnInit {\n public isTextboxVisible: boolean = false;\n public newData: any = '';\n public opened = false;\n public code : string =\"\";\n public Title : string =\"\";\n public isEditMode: boolean = false;\n public pageSizes:boolean = true;\n @Input()\n id: number = 0;\n public timeCode: Timecode[]=[];\n public Data=[];\n\n public timecodeForm: FormGroup;\n LoggedInName: string;\n get getFormControl() { return this.timecodeForm.controls; }\n\n constructor(private dialogService: DialogService,@Inject(MasterdataService) private masterdataservice: MasterdataService, private fb: FormBuilder) {\n this.timecodeForm = this.fb.group({\n id: new FormControl(),\n code: new FormControl('',[Validators.required,Validators.pattern(\"^[a-zA-Z0-9]*$\")]),\n isActive: new FormControl(true),\n createdBy: new FormControl()\n })\n this.allData = this.allData.bind(this);\n\n }\n public allData(): ExcelExportData{\n const result: ExcelExportData = {\n data: process(this.timeCode, {\n\n sort: [{ field: \"id\", dir: \"desc\" }],\n }).data,\n\n\n };\n return result;\n }\n\n\n\n ngOnInit(): void {\n if(this.code == ''){\n this.isEditMode = true;\n this.getTimecodeData();\n }\n console.log(this.isEditMode);\n console.log('data from read api:');\n this.masterdataservice.getAllTimecode().subscribe(data=>{ this.timeCode = data.reverse();\n console.log(data);});\n }\n\n public getFormData(): any {\n this.LoggedInName = sessionStorage.getItem('username');\n // if(this.LoggedInName == null || this.LoggedInName == '' || this.LoggedInName == undefined){\n // this.LoggedInName = 'pranay';\n // }\n let data: Timecode = new Timecode();\n const formValue = this.timecodeForm.getRawValue();\n console.log(this.timecodeForm.getRawValue());\n\n if(this.isEditMode){\n data.code = formValue.code;\n data.id = formValue.id;\n data.isActive = formValue.isActive;\n data.modifiedBy = this.LoggedInName;\n }\n else{\n data.code = formValue.code;\n data.createdBy = this.LoggedInName;\n data.isActive = true;\n\n }\n return(data);\n }\n\n public openDialog(code : string, id: number, isActive:boolean){\n this.isEditMode= true;\n this.code = code;\n this.id = id;\n this.timecodeForm.patchValue({code:code});\n this.timecodeForm.patchValue({id:id});\n this.timecodeForm.patchValue({isActive:isActive});\n this.Title = \"Edit Time code\";\n this.opened = true;\n console.log(this.code);\n this.showTextbox();\n }\n\n public close(): void {\n this.opened = false;\n }\n\n public open(): void {\n this.opened = true;\n this.isEditMode = false;\n this.showTextbox();\n this.Title = \"Add Time code\";\n this.timecodeForm = this.fb.group({\n id: [],\n code: new FormControl('',[Validators.required,Validators.pattern(\"^[a-zA-Z0-9]*$\")]),\n isActive:[]\n\n })\n }\n\n public showTextbox() {\n this.isTextboxVisible = true;\n }\n\n public onInput(value: string) {\n this.newData = value;\n }\n\n public saveData() {\n let data = this.getFormData();\n console.log(data);\n if (this.code && this.isEditMode) {\n this.putTimecodeData(data);\n } else {\n this.postTimecodeData(data);\n }\n // this.getTimecodeData();\n // this.masterdataservice.getAllTimecode().subscribe(data=>{ this.timeCode = data;\n // });\n }\n\n public putTimecodeData(data: any){\n this.masterdataservice.putAllTimecode(data).subscribe((resp) => {\n this.code = resp.code;\n if (resp.isSuccess) {\n this.showConfirmation(\"Success\",\"Time code updated successfully\");\n console.log(\"Time code updated successfully\");\n // this.masterdataservice.getAllTimecode();\n } else {\n this.showConfirmation(\"Error\",\"Error: \" + resp.message);\n console.log(\"Error: \" + resp.message);\n }\n }, (error: any) => {\n console.log(\"update error1\");\n });\n }\n\n public postTimecodeData(data: any){\n console.log(data);\n this.masterdataservice.postAllTimecode(data).\n subscribe((resp) => {\n // this.code = resp.code;\n //this.createdBy = resp.createdBy;\n if (resp.isSuccess) {\n this.showConfirmation(\"Success\",\"Time code added successfully\");\n console.log(\"Time code added successfully\");\n // this.getTimecodeData();\n } else {\n this.showConfirmation(\"Error\",\"Error: \" + resp.message);\n console.log(\"Error: \" + resp.message);\n }\n }, (error: any) => {\n console.log(error.message);\n });\n }\n\n public getTimecodeData(){\n this.masterdataservice.getAllTimecode().subscribe(data=>{ this.timeCode = data.reverse();\n if (this.timeCode) {\n this.timecodeForm.setValue(this.timeCode);\n console.log(this.timeCode);\n }\n console.log(this.timeCode)\n });\n\n }\n public result;\n public showConfirmation(dialogTitle, dialogContent): void {\n const dialog: DialogRef = this.dialogService.open({\n title: dialogTitle,\n content: dialogContent,\n actions: [{ text: \"Close\", themeColor: \"primary\", cssClass: \"modal-close-button\" }],\n width: 400,\n height: 150,\n minWidth: 250,\n });\n dialog.result.subscribe((result) => {\n if (result instanceof DialogCloseResult) {\n\n } else {\n console.log(\"action\", result);\n this.getTimecodeData();\n // window.location.reload();\n this.opened = false;\n }\n this.result = JSON.stringify(result);\n });\n }\n\n}\n","
\n
\n
\n Add Expense Code\n
\n
\n \n \n \n \n \n \n\n \n \n \n \n \n \n Edit\n \n \n \n\n \n \n \n
\n
\n
\n Page {{ pageNum }} of {{ totalPages }}\n
\n
\n
Page {{ pageNum }} of {{ totalPages }}
\n
\n \n \n \n \n\n
\n \n \n \n \n \n \n \n Only Alphabets and numerics are allowed\n Expense Code required\n \n \n Is Active\n \n\n
\n Save\n \n
\n
\n
\n
\n
\n
\n
\n","import { Component, ViewEncapsulation, ViewChild, Input } from '@angular/core';\nimport { SelectEvent } from '@progress/kendo-angular-layout';\nimport { FormControl, FormGroup, Validators, FormArray, FormBuilder } from '@angular/forms';\nimport { DialogService, DialogCloseResult, DialogRef } from '@progress/kendo-angular-dialog';\nimport { Observable } from 'rxjs';\nimport { OnInit, Inject } from '@angular/core';\nimport { GridDataResult, AddEvent, RemoveEvent } from '@progress/kendo-angular-grid';\nimport { State, process } from '@progress/kendo-data-query';\nimport { map } from 'rxjs/operators';\nimport { MasterdataService } from 'src/app/services/masterdata.service';\nimport { ClientConfig } from 'src/app/interfaces/client-config';\nimport { Sourcesystem } from 'src/app/interfaces/sourcesystem';\nimport { Organizations } from 'src/app/interfaces/organizations';\nimport { Trackedtables } from 'src/app/interfaces/trackedtables';\nimport { Triggertype } from 'src/app/interfaces/triggertype';\nimport { Timecode } from 'src/app/interfaces/timecode';\nimport { Expensecode } from 'src/app/models/config.model';\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\n\n\n@Component({\n selector: 'app-allexpensecode',\n templateUrl: './allexpensecode.component.html',\n styleUrls: ['./allexpensecode.component.scss']\n})\nexport class AllexpensecodeComponent implements OnInit {\n\n public isTextboxVisible: boolean = false;\n public newData: any = '';\n public opened = false;\n public FileName: string = \"\";\n public newName: string = '';\n\n @ViewChild('editDialog') editDialog!: DialogRef;\n\n public code: string = \"\";\n public Title: string = \"\";\n public formData = { Name: '' };\n public formValid = false;\n public SourcesystemApiData: Sourcesystem;\n public isEditMode: boolean = false;\n public pageSizes:boolean = true;\n @Input()\n id: number = 0;\n\n public expenseCode: Expensecode[] = [];\n public Data = [];\n public expensecodeForm: FormGroup;\n LoggedInName: string;\n get getFormControl() { return this.expensecodeForm.controls; }\n\n constructor(private dialogService: DialogService, @Inject(MasterdataService) private masterdataservice: MasterdataService, private fb: FormBuilder) {\n this.expensecodeForm = this.fb.group({\n id: new FormControl(),\n isActive: new FormControl(true),\n code: new FormControl('',[Validators.required,Validators.pattern(\"^[a-zA-Z0-9]*$\")]),\n createdBy: new FormControl()\n })\n this.allData = this.allData.bind(this);\n\n }\n public allData(): ExcelExportData{\n const result: ExcelExportData = {\n data: process(this.expenseCode, {\n\n sort: [{ field: \"id\", dir: \"desc\" }],\n }).data,\n\n\n };\n return result;\n }\n\n ngOnInit(): void {\n if (this.code == '') {\n this.isEditMode = true;\n this.getExpensecodeData();\n }\n console.log(this.isEditMode);\n console.log('data from read api:');\n this.masterdataservice.getAllExpensecode().subscribe(data => {\n this.expenseCode = data.reverse();\n console.log(data);\n });\n }\n\n public getFormData(): any {\n this.LoggedInName = sessionStorage.getItem('username');\n // if(this.LoggedInName == null || this.LoggedInName == '' || this.LoggedInName == undefined){\n // this.LoggedInName = 'pranay';\n // }\n let data: Expensecode = new Expensecode();\n const formValue = this.expensecodeForm.getRawValue();\n if (this.isEditMode) {\n data.code = formValue.code;\n data.isActive = formValue.isActive;\n data.id = formValue.id;\n data.modifiedBy = this.LoggedInName;\n }\n else {\n data.code = formValue.code;\n data.createdBy = this.LoggedInName;\n data.isActive = true;\n\n }\n return (data);\n }\n\n public openDialog(code: string, id: number, isActive: boolean) {\n this.isEditMode = true;\n this.code = code;\n this.id = id;\n this.expensecodeForm.patchValue({ code: code });\n this.expensecodeForm.patchValue({ id: id });\n this.expensecodeForm.patchValue({ isActive: isActive });\n this.Title = \"Edit Expense code\";\n this.opened = true;\n console.log(this.code);\n this.showTextbox();\n }\n\n public close() {\n this.opened = false;\n }\n\n public open(): void {\n this.isEditMode = false;\n this.opened = true;\n this.showTextbox();\n this.Title = \"Add Expense code\";\n this.expensecodeForm = this.fb.group({\n code: new FormControl('',[Validators.required,Validators.pattern(\"^[a-zA-Z0-9]*$\")]),\n isActive:[],\n id:[]\n\n })\n }\n\n\n public showTextbox() {\n this.isTextboxVisible = true;\n }\n\n public onInput(value: string) {\n this.newData = value;\n }\n\n public saveData() {\n let data = this.getFormData();\n console.log(data);\n if (this.code && this.isEditMode) {\n this.putExpensecodeData(data);\n } else {\n this.postExpensecodeData(data);\n }\n // this.getExpensecodeData();\n // this.masterdataservice.getAllExpensecode().subscribe(data => {\n // this.expenseCode = data;\n // });\n }\n\n public putExpensecodeData(data: any) {\n this.masterdataservice.putAllExpensecode(data).subscribe((resp) => {\n this.code = resp.code;\n // this.id = resp.id\n if (resp.isSuccess) {\n this.showConfirmation(\"Success\", \"Expense code updated successfully\");\n console.log(\"Expense code updated successfully\");\n\n // this.masterdataservice.getAllExpensecode();\n } else {\n this.showConfirmation(\"Error\", \"Error: \" + resp.message);\n console.log(\"Error: \" + resp.message);\n }\n }, (error: any) => {\n console.log(\"update error1\");\n });\n }\n\n public postExpensecodeData(data: any) {\n console.log(data);\n this.masterdataservice.postAllExpensecode(data).\n subscribe((resp) => {\n // this.code = resp.code;\n if (resp.isSuccess) {\n this.showConfirmation(\"Success\",\"Expense Code added successfully\");\n console.log(\"Expense Code added successfully\");\n // this.getExpensecodeData();\n }\n else {\n this.showConfirmation(\"Error\",\"Error: \" + resp.message);\n console.log(\"Error: \" + resp.message);\n }\n }, (error: any) => {\n console.log(error.message);\n });\n }\n\n public getExpensecodeData() {\n\n this.masterdataservice.getAllExpensecode().subscribe(data => {\n this.expenseCode = data.reverse();\n if (this.expenseCode) {\n this.expensecodeForm.setValue(this.expenseCode);\n }\n });\n\n }\n\n public result;\n public showConfirmation(dialogTitle, dialogContent): void {\n const dialog: DialogRef = this.dialogService.open({\n title: dialogTitle,\n content: dialogContent,\n actions: [{ text: \"Close\", themeColor: \"primary\", cssClass: \"modal-close-button\" }],\n width: 400,\n height: 150,\n minWidth: 250,\n });\n\n dialog.result.subscribe((result) => {\n if (result instanceof DialogCloseResult) {\n\n } else {\n console.log(\"action\", result);\n this.opened = false;\n this.getExpensecodeData();\n // window.location.reload();\n\n }\n this.result = JSON.stringify(result);\n });\n }\n\n}\n","
\n
\n \n \n \n \n \n \n\n \n \n \n\n \n \n \n
\n
\n
\n Page {{ pageNum }} of {{ totalPages }}\n
\n
\n
Page {{ pageNum }} of {{ totalPages }}
\n
\n \n \n \n \n\n
\n
\n\n
\n
\n","import { Component, ViewEncapsulation, ViewChild, Input } from '@angular/core';\nimport { SelectEvent } from '@progress/kendo-angular-layout';\nimport { FormControl, FormGroup, Validators, FormArray, FormBuilder } from '@angular/forms';\nimport { DialogService, DialogCloseResult,DialogRef } from '@progress/kendo-angular-dialog';\nimport { Observable } from 'rxjs';\nimport { OnInit, Inject } from '@angular/core';\nimport { GridDataResult, AddEvent, RemoveEvent } from '@progress/kendo-angular-grid';\nimport { State, process } from '@progress/kendo-data-query';\nimport { map } from 'rxjs/operators';\nimport { MasterdataService } from 'src/app/services/masterdata.service';\nimport { ClientConfig } from 'src/app/interfaces/client-config';\nimport { Sourcesystem } from 'src/app/interfaces/sourcesystem';\nimport { Organizations } from 'src/app/interfaces/organizations';\nimport { Trackedtables } from 'src/app/interfaces/trackedtables';\nimport { Triggertype } from 'src/app/interfaces/triggertype';\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\n\n@Component({\n selector: 'app-alltriggertype',\n templateUrl: './alltriggertype.component.html',\n styleUrls: ['./alltriggertype.component.scss']\n})\n\nexport class AlltriggertypeComponent implements OnInit {\n public isTextboxVisible: boolean = false;\n public newData: any = '';\n public opened = false;\n public FileName: string = \"\";\n public newName: string = '';\n @ViewChild('editDialog') editDialog!: DialogRef;\n public type : string =\"\";\n public Title : string =\"\";\n public formData = { Name: ''};\n public formValid = false;\n public SourcesystemApiData: Sourcesystem;\n public isEditMode: boolean = false;\n @Input()\n Id: number = 0;\n public triggerType: Triggertype[]=[];\n public Data=[];\n public pageSizes:boolean = true;\n constructor(private dialogService: DialogService,@Inject(MasterdataService) private masterdataservice: MasterdataService) { }\n\n ngOnInit(): void {\n if(this.Id > 0){\n this.isEditMode = true;\n }\n console.log(this.isEditMode);\n console.log('data from read api:');\n this.masterdataservice.getAllTriggerType().subscribe(data=>{ this.triggerType = data;\n console.log(data);});\n this.allData = this.allData.bind(this);\n\n }\n public allData(): ExcelExportData{\n const result: ExcelExportData = {\n data: process(this.triggerType, {\n\n sort: [{ field: \"id\", dir: \"desc\" }],\n }).data,\n\n\n };\n return result;\n }\n\n\n public openDialog(type : string){\n this.type = type;\n this.Title = \"Edit Entity\";\n this.opened = true;\n console.log(this.type);\n this.showTextbox();\n }\n\n public onCancel(){\n this.editDialog.close();\n }\n\n public onSave(){\n this.editDialog.close();\n }\n\n public close(status: string): void {\n console.log(`Dialog result: ${status}`);\n this.opened = false;\n }\n\n public open(): void {\n this.opened = true;\n this.showTextbox();\n this.Title = \"Add Entity\";\n this.type=\"\";\n\n }\n public showTextbox() {\n this.isTextboxVisible = true;\n }\n\n public onInput(value: string) {\n this.newData = value;\n }\n public saveData() {\n console.log(this.type);\n this.newData = '';\n this.isTextboxVisible = false;\n this.opened = false;\n }\n\n}\n","
\n
\n
\n Add Client\n
\n
\n \n \n \n \n \n \n\n \n \n \n \n \n \n Edit\n \n \n \n\n \n \n \n
\n
\n
\n Page {{ pageNum }} of {{ totalPages }}\n
\n
\n
Page {{ pageNum }} of {{ totalPages }}
\n
\n \n \n \n \n\n
\n \n \n \n \n \n \n \n Client Name required\n \n \n Is Active\n \n
\n Save\n \n
\n
\n
\n
\n
\n
\n
\n","import { Component, ViewEncapsulation, ViewChild, Input } from '@angular/core';\nimport { SelectEvent } from '@progress/kendo-angular-layout';\nimport { FormControl, FormGroup, Validators, FormArray, FormBuilder } from '@angular/forms';\nimport { DialogService, DialogCloseResult, DialogRef } from '@progress/kendo-angular-dialog';\nimport { Observable } from 'rxjs';\nimport { process } from \"@progress/kendo-data-query\";\nimport { OnInit, Inject } from '@angular/core';\nimport { MasterdataService } from 'src/app/services/masterdata.service';\nimport { Client } from 'src/app/models/config.model';\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\n\n@Component({\n selector: 'app-allclients',\n templateUrl: './allclients.component.html',\n styleUrls: ['./allclients.component.scss']\n})\n\nexport class AllclientsComponent implements OnInit {\n\n public isTextboxVisible: boolean = false;\n public opened = false;\n public FileName: string = \"\";\n public newName: string = '';\n public name : string =\"\";\n public Title : string =\"\";\n public isActive: boolean=true;\n public loader: boolean=true;\n\n public isEditMode: boolean = false;\n public pageSizes:boolean = true;\n @Input()\n id: number = 0;\n public client: Client[] = [];\n public Data = [];\n\n public clientForm: FormGroup;\n LoggedInName: string;\n get getFormControl() { return this.clientForm.controls; }\n\n\n constructor(private dialogService: DialogService, @Inject(MasterdataService) private masterdataservice: MasterdataService, private fb: FormBuilder) {\n this.clientForm = this.fb.group({\n id: new FormControl(),\n isActive: new FormControl(true),\n name: new FormControl('',[Validators.required]),\n createdBy: new FormControl()\n })\n this.allData = this.allData.bind(this);\n\n }\n public allData(): ExcelExportData{\n const result: ExcelExportData = {\n data: process(this.client, {\n\n sort: [{ field: \"id\", dir: \"desc\" }],\n }).data,\n\n\n };\n return result;\n }\n\n\n ngOnInit(): void {\n this.getClientData();\n if(this.name == ''){\n this.isEditMode = true;\n this.getClientData();\n }\n this.masterdataservice.getAllClient().subscribe(data=>{ this.client = data.reverse();\n });\n }\n\n public getFormData(): any {\n this.LoggedInName = sessionStorage.getItem('username');\n // if(this.LoggedInName == null || this.LoggedInName == '' || this.LoggedInName == undefined){\n // this.LoggedInName = 'pranay';\n // }\n let data: Client = new Client();\n const formValue = this.clientForm.getRawValue();\n console.log(this.clientForm.getRawValue());\n if (this.isEditMode) {\n data.name = formValue.name;\n data.id = formValue.id;\n data.isActive = formValue.isActive;\n data.modifiedBy = this.LoggedInName;\n }\n else {\n data.name = formValue.name;\n data.isActive = true;\n data.createdBy = this.LoggedInName;\n }\n return (data);\n }\n\n public openDialog(name: string, id: number, isActive: boolean) {\n this.isEditMode = true;\n this.name = name;\n this.id = id;\n this.clientForm.patchValue({ name: name });\n this.clientForm.patchValue({ id: id });\n this.clientForm.patchValue({ isActive: isActive });\n\n this.Title = \"Edit Client\";\n this.opened = true;\n console.log(this.name);\n this.showTextbox();\n }\n\n public close() {\n this.opened = false;\n }\n\n public open(): void {\n this.opened = true;\n this.isEditMode = false;\n this.showTextbox();\n this.Title = \"Add Client\";\n this.clientForm = this.fb.group({\n name:[],\n isActive:[],\n id:[]\n })\n\n\n }\n\n public showTextbox() {\n this.isTextboxVisible = true;\n }\n\n public saveData() {\n\n let data = this.getFormData();\n console.log(data);\n if (this.name && this.isEditMode) {\n this.putClientData(data);\n console.log(\"in1\");\n } else {\n console.log(\"in2\");\n\n\n this.postClientData(data);\n }\n\n }\n\n public putClientData(data: any) {\n this.masterdataservice.putAllClient(data).subscribe((resp) => {\n this.name = resp.name;\n if (resp.isSuccess) {\n this.showConfirmation(\"Success\", \"Client updated successfully\");\n // this.masterdataservice.getAllClient();\n } else {\n this.showConfirmation(\"Error\", \"Error: \" + resp.message);\n }\n }, (error: any) => {\n console.log(\"update error1\");\n });\n }\n\n\n public postClientData(data: any) {\n console.log(data);\n this.masterdataservice.postAllClient(data).\n subscribe((resp) => {\n // this.name = resp.name;\n if (resp.isSuccess) {\n this.showConfirmation(\"Success\", \"Client added successfully\");\n // this.getClientData();\n // this.masterdataservice.getAllClient();\n } else {\n this.showConfirmation(\"Error\", \"Error: \" + resp.message);\n\n }\n }, (error: any) => {\n console.log(\"error1\");\n });\n }\n\n public getClientData(){\n this.masterdataservice.getAllClient().subscribe(data=>{ this.client = data.reverse();\n if (this.client) {\n this.clientForm.setValue(this.client);\n }\n });\n\n }\n public result;\n public showConfirmation(dialogTitle, dialogContent): void {\n const dialog: DialogRef = this.dialogService.open({\n title: dialogTitle,\n content: dialogContent,\n actions: [{ text: \"Close\", themeColor: \"primary\", cssClass: \"modal-close-button\" }],\n width: 400,\n height: 180,\n minWidth: 250,\n })\n dialog.result.subscribe((result) => {\n if (result instanceof DialogCloseResult) {\n\n } else {\n console.log(\"action\", result);\n // window.location.reload();\n this.getClientData();\n this.opened = false;\n console.log(this.getClientData());\n }\n this.result = JSON.stringify(result);\n });\n console.log(this.getClientData());\n\n\n }\n\n}\n","\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n","import { Component, ViewEncapsulation, ViewChild, Input } from '@angular/core';\nimport { SelectEvent } from '@progress/kendo-angular-layout';\nimport { DialogService, DialogCloseResult, DialogRef } from '@progress/kendo-angular-dialog';\nimport { Observable } from 'rxjs';\nimport { OnInit, Inject } from '@angular/core';\nimport { FormControl, FormGroup, Validators, FormArray, FormBuilder } from '@angular/forms';\nimport { GridDataResult, AddEvent, RemoveEvent } from '@progress/kendo-angular-grid';\nimport { State, process } from '@progress/kendo-data-query';\nimport { map } from 'rxjs/operators';\nimport { MasterdataService } from '../services/masterdata.service';\nimport { ClientConfig } from 'src/app/interfaces/client-config';\nimport { Sourcesystem } from 'src/app/interfaces/sourcesystem';\nimport { Organizations } from 'src/app/interfaces/organizations';\nimport { Trackedtables } from 'src/app/interfaces/trackedtables';\nimport { Triggertype } from 'src/app/interfaces/triggertype';\nimport { AuthService } from '@auth0/auth0-angular';\nimport { DOCUMENT } from '@angular/common';\n\n\n\n\n@Component({\n selector: 'app-masterdata',\n templateUrl: './masterdata.component.html',\n styleUrls: ['./masterdata.component.scss']\n})\nexport class MasterdataComponent {\n public userRole: string = \"\";\n\n\n @Input()\n id: number;\n constructor(@Inject(DOCUMENT) public document: Document,public auth: AuthService) { }\n\n ngOnInit(): void {\n //console.log(this.id);\n this.userRole = sessionStorage.getItem('role').toLowerCase();\n if(sessionStorage.getItem('token')== null){\n this.auth.logout({\n logoutParams: {\n returnTo: this.document.location.origin\n }\n });\n\n }\n\n }\n\n public exit() {\n window.location.reload();\n }\n\n\n\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable,Inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { UrlGroup, OnDemandProcessingDetails } from '../models/config.model';\nimport { APIService } from './api.service';\nimport { ConfigService } from './config.service';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OndemandprocessingService {\n constructor(@Inject(ConfigService) private configService: ConfigService, private apiService: APIService) { }\n\n get urls(): UrlGroup {\n return this.configService.getApiUrls('adminconfiguration');\n }\n\n public GetOnDemandProcessedClaimsDetailsByClientId(clientId: number): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLRead) + `adminconfiguration-read/v1/clientconfiguration/` + clientId + `/getOnDemandClaimProcessedDetails`;\n return this.apiService.get(url);\n }\n\n public postOnDemandProcessedClaimsDetails(data: any): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLCommand) + `adminconfiguration-command/v1/clientconfiguration/createOnDemandProcessedClaims`;\n return this.apiService.post(url, data);\n }\n\n public putOnDemandProcessedClaimsDetails(data: any): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLCommand) + `adminconfiguration-command/v1/clientconfiguration/updateOnDemandProcessedClaims`;\n return this.apiService.put(url, data);\n }\n\n public StopOnDemandProcessedClaimsDetails(data: any): Observable {\n data.OndemandClaimProcessingId = data.id;\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLCommand) + `adminconfiguration-command/v1/clientconfiguration/stopOnDemandProcessing`;\n return this.apiService.put(url, data);\n }\n\n }\n","\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n Stop\n \n \n \n\n \n \n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n \n \n Client Name is required\n \n
\n\n
\n \n \n \n \n Job Name is required\n \n
\n
\n \n \n \n \n \n Trigger Type required\n \n
\n
\n \n \n \n \n \n Time Code\n required\n \n
\n\n
\n \n \n \n \n \n claim id\n required\n Please enter valid claim\n id\n \n
\n
\n \n \n \n \n \n start claim id\n required\n Please enter valid start claim\n id\n \n
\n
\n \n \n \n \n \n End claim id\n required\n Please enter valid End claim\n id\n
\n End claim id should be greater than start claim id\n
\n
\n
\n
\n
\n \n \n Is Range of Claims\n \n \n
\n
\n
\n \n Is Notification Required For Unprocessed Claims\n \n
\n
\n\n \n
\n
\n \n Back\n \n\n Save\n
\n
\n
\n
\n
\n
\n","import { Component, Inject, ViewChild, Input, SimpleChanges } from '@angular/core';\nimport { DataBindingDirective } from '@progress/kendo-angular-grid';\nimport { OnDemandProcessingDetails,Timecode,TriggerEventConfigDetails } from 'src/app/models/config.model';\nimport { JobName } from 'src/app/interfaces/jobName';\nimport { JobSetupService } from 'src/app/services/job-setup.service';\nimport { FormControl, FormGroup, Validators, FormBuilder, AbstractControl, ValidationErrors, AbstractControlOptions } from '@angular/forms';\nimport { MasterdataService } from 'src/app/services/masterdata.service';\nimport { Client } from 'src/app/interfaces/client';\nimport { OndemandprocessingService } from 'src/app/services/ondemandprocessing.service';\nimport { DialogService, DialogRef, DialogCloseResult } from '@progress/kendo-angular-dialog';\nimport { process } from \"@progress/kendo-data-query\";\nimport { text } from 'stream/consumers';\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\nimport {DOCUMENT, Location} from '@angular/common';\nimport { Triggertype } from '../interfaces/triggertype';\nimport { TriggerEventService } from '../services/trigger-event.service';\nimport { UserAuthService } from '../auth/services/user-auth.service';\nimport { AuthService } from '@auth0/auth0-angular';\n\n\n@Component({\n selector: 'app-ondemandprocessing',\n templateUrl: './ondemandprocessing.component.html',\n styleUrls: ['./ondemandprocessing.component.scss']\n})\nexport class OndemandprocessingComponent {\n\n @Input()\n clientId: number = 0;\n public addDemand: boolean = false;\n @ViewChild(DataBindingDirective) dataBinding: DataBindingDirective | undefined;\n public ondemandApiData: OnDemandProcessingDetails[] = [];\n\n public onDemandGridView: OnDemandProcessingDetails[] = [];\n public selectedJobName: string | undefined;\n public selectedClientName: string | undefined;\n\n public clientData: Client[] = [];\n public client: Client[] = [];\n\n public jobNameSource: JobName[] = [];\n public jobName: JobName[] = [];\n\n public ondemand: any = {};\n public isNotificationRequiredForUnprocessedClaim = false;\n LoggedInName: string;\n public ismessageTextboxVisible: boolean = false;\n public openedmessage = false;\n public Title : string =\"\";\n public message: string;\n // public isStoppedProcessing = true;\n public isStoppedProcessingDisable:boolean = false;\n public status: string | undefined;\n public headerCustomClass;\n public selectedTimeCodes:any[] = [];\n public selectedTimeCodeValue: Number = 0;\n public selectedTriggerTypeValue: Number = 0;\n public triggerType: Triggertype[] = [];\n public timeCode: any;\n public timeCodeData: Timecode[] = [];\n @Input() clientConfigurationId: number = 1;\n public selectedTriggerType: string | null;\n filteredTimeCodeMasterData:any = [];\n public trigtype: any = {};\n public triggerTypeData: Triggertype[] = [];\n @Input() timeCodeMasterData: any = [];\n timeCodeIds: any=[];\n timeCodes: any=[];\n\n\n get getFormControl() { return this.ondemandForm.controls; }\n\n public ondemandForm: FormGroup;\n // ValidationErrors = {\n // [key: string]: any;}\n public pageSizes:boolean = true;\n\n public isRangeofClaims = false;\n public result;\n constructor(@Inject(JobSetupService) private jobSetupService: JobSetupService, @Inject(MasterdataService) private masterdataService: MasterdataService, @Inject(TriggerEventService) private triggereventService: TriggerEventService, @Inject(OndemandprocessingService) private ondemandprocessingService: OndemandprocessingService, private fb: FormBuilder, private dialogService: DialogService,private _location: Location,@Inject(DOCUMENT) public document: Document,public auth: AuthService) {\n this.masterdataService.getAllClient().subscribe(data => {\n this.clientData = data.filter(s => s.isActive == true);\n this.client = data.filter(s => s.isActive == true);\n });\n\n this.masterdataService.getAllTriggerType().subscribe(data => {\n this.triggerTypeData = data;\n this.triggerType = data;\n });\n this.triggereventService.getClientTriggerEventConfigurationDetails(this.clientConfigurationId).subscribe(data => {\n this.timeCode = data;\n // this.timeCodeData = data.timeCodeId;\n });\n this.jobSetupService.getClientJobsDetails(this.clientId).subscribe(data => {\n this.jobNameSource = data;\n this.jobName = data;\n });\n this.ondemandForm = this.fb.group({\n clientName: new FormControl(this.ondemand.clientName, [Validators.required]),\n jobName: new FormControl(this.ondemand.jobName, [Validators.required]),\n isRangeOfClaims: new FormControl(false),\n triggerJobId: new FormControl(),\n clientId: new FormControl(),\n startClaimId: new FormControl(this.ondemand.startClaimId,[Validators.pattern(\"^[0-9]+$\")]),\n endClaimId: new FormControl(this.ondemand.endClaimId,[Validators.pattern(\"^[0-9]+$\")]),\n trigerredOn: new FormControl(),\n triggeredBy: new FormControl(),\n isNotificationRequiredForUnprocessedClaim: new FormControl(false),\n triggerType: new FormControl(this.ondemand.triggerType, [Validators.required]),\n timeCodeToBeTracked: new FormControl(),\n })\n\n }\n public jobNameFilter(value: string) {\n this.jobNameSource = this.jobName;\n this.jobNameSource = this.jobName.filter(\n (s) => s.jobName.toLowerCase().indexOf(value?.toLowerCase()) !== -1\n );\n\n }\n public clientNameSelectionChange(value: any): void {\n this.ondemandForm.patchValue({jobName: []});\n this.jobSetupService.getClientJobsDetails(value.id).subscribe(data => {\n this.jobNameSource = data.filter(s=>s.isActive == true);\n this.jobName = data.filter(s=>s.isActive == true);\n });\n\n }\n\n public jobNameSelectionChange(value: any): void {\n this.selectedJobName = value.jobName;\n this.triggereventService.getClientTriggerEventConfigurationDetails(value.clientConfigurationId).subscribe(data=>\n {\n this.timeCodeIds = this.timeCodeMasterData?.filter(item => String(data.timeCodeId)?.split(',').includes(item.id.toString()));\n // this.timeCodes = this.timeCodeMasterData?.filter(item => String(data.timeCodes)?.split(',').includes(item.id.toString()));\n\n\n });\n }\n private onTriggerChange(value): void {\n // this.ondemandForm.get('timeCodeToBeTracked').subscribe(value => {\n // const timeCodeControl = this.ondemandForm.get('timeCodeTo');\n const validators = [Validators.required];\n\n if (value.type === 'Docket') {\n // timeCodeControl.addValidators(validators);\n this.ondemandForm.get('timeCodeToBeTracked').setValidators([Validators.required])\n } else {\n // timeCodeControl.removeValidators([Validators.required]);\n this.ondemandForm.get('timeCodeToBeTracked').removeValidators([Validators.required])\n\n }\n\n this.ondemandForm.get('timeCodeToBeTracked').updateValueAndValidity();\n // });\n }\n\n public triggerTypeFilter(value: string) {\n this.triggerTypeData = this.triggerType;\n this.triggerTypeData = this.triggerType.filter(\n (s) => s.type.toLowerCase().indexOf(value?.toLowerCase()) !== -1\n );\n }\n\n public triggerTypeSelectionChange(value: any): void {\n this.selectedTriggerType = value.type;\n this.onTriggerChange(value);\n localStorage.setItem('triggerType', this.selectedTriggerType);\n\n }\n\n public timeCodeFilter(value: string) {\n //this.timeCodeData = this.timeCode;\n this.filteredTimeCodeMasterData = this.timeCodeMasterData.filter(\n (s) => s.code.toLowerCase().indexOf(value?.toLowerCase()) !== -1\n );\n }\n\n\n public clientFilter(value: string) {\n this.clientData = this.client;\n this.clientData = this.client.filter(\n (s) => s.name.toLowerCase().indexOf(value?.toLowerCase()) !== -1\n );\n }\n\n ngOnInit(): void {\n this.LoggedInName = sessionStorage.getItem('username');\n this.getOnDemandData(this.clientId);\n // this.onTriggerChange();\n this.masterdataService.getAllTimecode().subscribe(data => {\n this.timeCodeMasterData = data.filter(s => s.isActive == true);\n });\n if(sessionStorage.getItem('token')== null){\n this.auth.logout({\n logoutParams: {\n returnTo: this.document.location.origin\n }\n });\n }\n }\n\n public addOnDemandProcessing(): void {\n this.addDemand = true;\n this.clientId = 0;\n }\n\n public getFormData(): any {\n // if(this.LoggedInName == null || this.LoggedInName == '' || this.LoggedInName == undefined){\n // this.LoggedInName = 'pranay';\n // }\n let data: OnDemandProcessingDetails = new OnDemandProcessingDetails();\n const formValue = this.ondemandForm.getRawValue();\n data.clientId = formValue.clientName.id;\n data.clientName = formValue.clientName.name;\n data.jobName = formValue.jobName.jobName;\n data.triggerJobId = formValue.jobName.jobId;\n data.isRangeOfClaims = formValue.isRangeOfClaims;\n data.triggerTypeId = formValue.triggerType.id;\n if(data.triggerTypeId == 1){\n data.timeCodeIds = formValue.timeCodeToBeTracked ?formValue.timeCodeToBeTracked.filter(s=>s.isActive).map(itm => itm.id).sort().join(',') :[];\n data.timeCodes = formValue.timeCodeToBeTracked ?formValue.timeCodeToBeTracked.filter(s=>s.isActive).map(itm => itm.code).sort().join(',') :[];\n\n }\n if (this.isRangeofClaims == true) {\n data.startClaimId = formValue.startClaimId;\n data.endClaimId = formValue.endClaimId;\n }\n else {\n data.startClaimId = formValue.startClaimId;\n // data.endClaimId = null;\n }\n data.triggeredBy = this.LoggedInName;\n // data.isStoppedProcessing = formValue.isStoppedProcessing;\n data.trigerredOn = new Date().toISOString();\n data.isNotificationRequiredForUnprocessedClaim = formValue.isNotificationRequiredForUnprocessedClaim;\n data.createdBy = this.LoggedInName;\n // data.createdDate = '05/25/2023';\n return data;\n }\n onCheckboxChange(e) {\n\n if (e.target.checked) {\n this.ondemandForm.controls['endClaimId'].setValue(null);\n\n } else {\n this.ondemandForm.controls['endClaimId'].setValue(Number.MAX_SAFE_INTEGER);\n }\n }\n // public enabledisable(dataItem): any{\n // if(dataItem.isStoppedProcessing = true){\n // dataItem.isStoppedProcessing = false;\n\n\n // }\n\n // }\n\n public onClick(data): any {\n if(data.status == 'NULL'){\n data.isStoppedProcessing = true;\n }\n else if(data.status == 'Pending'){\n // data.OndemandClaimProcessingId = data.id;\n data.isStoppedProcessing = true;\n }\n else if(data.status == 'InProgress'){\n data.isStoppedProcessing = true;\n }\n data.modifiedBy = this.LoggedInName;\n this.StopOnDemandProcessedClaimsDetails(data);\n // return data;\n }\n\n\n\n public saveondemand(): void {\n\n let data = this.getFormData();\n if(data.isRangeOfClaims && data.startClaimId >= data.endClaimId ){\n this.showConfirmation(\"Error\",\"Start Claim ID should be less than End Claim ID\")\n }\n else{\n\n this.postOnDemandProcessedClaimsDetails(data);\n }\n }\n\n public exit() {\n if(this.ondemandForm.dirty){\n this.showConfirmationOnBack(\"You have unsaved data on the page.Do you want to continue?\");\n }\n else{\n window.location.reload();\n // this.getOnDemandData(this.clientId);\n }\n }\n\n\n public postOnDemandProcessedClaimsDetails(data: any){\n this.ondemandprocessingService.postOnDemandProcessedClaimsDetails(data).subscribe((resp) => {\n this.clientId = resp.id;\n if (resp.isSuccess) {\n this.showConfirmation(\"Success\",\"On Demand Job Processing added successfully\");\n console.log(\"On Demand processing added successfully\");\n\n this.getOnDemandData(this.clientId);\n } else {\n this.showConfirmation(\"Error\",\"Error : \"+ resp.message);\n console.log(\"Error: \" + resp.message);\n }\n }, (error: any) => {\n console.log(error.message);\n\n });\n }\n public putOnDemandProcessedClaimsDetails(data: any){\n this.ondemandprocessingService.putOnDemandProcessedClaimsDetails(data).subscribe((resp) => {\n this.clientId = resp.id;\n if (resp.isSuccess) {\n this.showConfirmation(\"Success\",\"On Demand Job Processing updated successfully\");\n console.log(\"On Demand processing updated successfully\");\n\n // this.getOnDemandData(this.clientId);\n } else {\n this.showConfirmation(\"Error\",\"Error : \"+ resp.message);\n console.log(\"Error: \" + resp.message);\n }\n }, (error: any) => {\n console.log(error.message);\n\n });\n }\n\n public StopOnDemandProcessedClaimsDetails(data: any){\n this.ondemandprocessingService.StopOnDemandProcessedClaimsDetails(data).subscribe((resp) => {\n // data.modifiedBy = resp.modifiedBy;\n if (resp.isSuccess) {\n this.showConfirmation(\"Success\",\"On Demand Job Processing stopped successfully\");\n console.log(\"On Demand processing updated successfully\");\n\n this.getOnDemandData(this.clientId);\n } else {\n this.showConfirmation(\"Error\",\"Error : \"+ resp.message);\n console.log(\"Error: \" + resp.message);\n }\n }, (error: any) => {\n console.log(error.message);\n\n });\n }\n public getOnDemandData(clientId: number){\n this.ondemandprocessingService.GetOnDemandProcessedClaimsDetailsByClientId(clientId).subscribe(data => {this.ondemandApiData = data.reverse();\n if (this.ondemandApiData.length == 1) {\n this.ondemandForm.patchValue({\n clientId: this.client.find(item => item.id === this.ondemandApiData[0].clientId),\n\n }, );\n }\n else if(this.ondemandApiData.length > 1 ){\n this.onDemandGridView = this.ondemandApiData;\n }\n });\n }\n\n\n\n public showConfirmation(dialogTitle, dialogContent): void {\n const dialog: DialogRef = this.dialogService.open({\n title: dialogTitle,\n content: dialogContent,\n actions: [{ text: \"Close\", themeColor: \"primary\", cssClass: \"modal-close-button\" }],\n width: 400,\n height: 150,\n minWidth: 250,\n });\n\n dialog.result.subscribe((result) => {\n if (result instanceof DialogCloseResult) {\n console.log(\"close\");\n\n\n } else {\n console.log(\"action\", result);\n this.addDemand = false;\n window.location.reload();\n\n }\n this.result = JSON.stringify(result);\n });\n }\n\n public onFilter(input: Event): void {\n const inputValue = (input.target as HTMLInputElement).value;\n\n this.onDemandGridView = process(this.ondemandApiData, {\n filter: {\n logic: \"or\",\n filters: [\n {\n field: \"clientName\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"clientId\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"triggeredBy\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"startClaimId\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"isRangeOfClaims\",\n operator: \"eq\",\n value: inputValue,\n },\n {\n field: \"endClaimId\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"jobName\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"triggerType\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"timeCodes\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"status\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"trigerredOn\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"createdBy\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"createdDate\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"modifiedBy\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"modifiedDate\",\n operator: \"contains\",\n value: inputValue,\n },\n\n\n ],\n },\n }).data;\n }\n public openmessage(message){\n this.Title = \"Message\";\n this.openedmessage = true;\n this.message= message;\n this.showmessageTextbox();\n }\n\n public showmessageTextbox() {\n this.ismessageTextboxVisible = true;\n }\n\n public close(status: string): void {\n this.openedmessage = false;\n }\n\n public showConfirmationOnBack(dialogContent): void {\n const dialog: DialogRef = this.dialogService.open({\n title: \"Please confirm\",\n content: dialogContent,\n actions: [{ text: \"Yes\"}, { text: \"No\", themeColor: \"primary\" }],\n width: 350,\n height: 170,\n });\n\n dialog.result.subscribe((result) => {\n if (result instanceof DialogCloseResult) {\n console.log(\"close\");\n } else {\n if(result.text == \"Yes\"){\n //this._location.back();\n window.location.reload();\n }\n }\n this.result = JSON.stringify(result);\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { APIService } from 'src/app/services/api.service';\nimport { UrlGroup } from 'src/app/models/config.model';\nimport { ConfigService } from 'src/app/services/config.service';\nimport { HttpClient } from '@angular/common/http';\nimport { JwtOptions } from '../jwt-options';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserAuthService {\n //accessToken: any;\n userId: string;\n get urls(): UrlGroup {\n return this.configService.getApiUrls('adminconfiguration');\n }\n constructor(private apiService:APIService,private configService:ConfigService,private http:HttpClient ) { }\n\n get accessToken(): string {\n return sessionStorage.getItem('token');\n }\n get expires_in(): string {\n return sessionStorage.getItem('expires_in');\n }\n public getAuthenticationToken(data){\n //let data = {}\n let apiUrl = `adminconfiguration-read/v1/clientconfiguration/authenticate`;\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLRead)+apiUrl;\n return this.http.post(url,data);\n }\n public getJwtInjectionConfig(): JwtOptions {\n return {\n token: this.accessToken,\n expires_in:this.expires_in\n //userId: localStorage.getItem(this.userId) == null ? ' ' :\n // localStorage.getItem(this.userId)\n };\n }\n}\n","
\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n
\n","import { Component, OnInit, Input, INJECTOR } from '@angular/core';\nimport { SelectEvent } from \"@progress/kendo-angular-layout\";\nimport { Client } from 'src/app/interfaces/client';\nimport { Organizations } from 'src/app/interfaces/organizations';\nimport { Sourcesystem } from 'src/app/interfaces/sourcesystem';\nimport { MasterdataService } from 'src/app/services/masterdata.service';\n\n@Component({\n selector: 'app-tabstrip',\n templateUrl: './tabstrip.component.html',\n styleUrls: ['./tabstrip.component.scss']\n})\nexport class TabstripComponent implements OnInit {\n @Input()\n clientId: number;\n\n @Input()\n clientConfigurationId: number;\n\n // isTabsDisabled:boolean=false;\n allTrackedMasterData:any = [];\n timeCodeData:any = [];\n timeCodeMasterData:any = [];\n expenseCodeMasterData: any;\n frequecyMasterData:any = [];\n @Input() sourceSystemMasterData:Sourcesystem[] = [];\n @Input() clientMasterData: Client[] = [];\n @Input() orgMasterData:Organizations[] = [];\n constructor(private masterdataService: MasterdataService) { }\n\n ngOnInit(): void {\n this.masterdataService.getAllTrackedTable().subscribe(data => {\n this.allTrackedMasterData = data.filter(s => s.isActive == true);\n // document.getElementById('disabledTabs').innerText = this.clientId?this.clientId.toString():\"\";\n // this.isTabsDisabled = this.clientId ? true:false;\n // console.log(\"this.isTabsDisabled:\"+this.isTabsDisabled);\n });\n\n this.masterdataService.getAllTimecode().subscribe(data => {\n this.timeCodeMasterData = data.filter(s => s.isActive == true);\n });\n\n this.masterdataService.getAllExpensecode().subscribe(data => {\n this.expenseCodeMasterData = data.filter(s => s.isActive == true);\n });\n\n this.masterdataService.getAllJobfrequency().subscribe(data => {\n this.frequecyMasterData = data.filter(s => s.isActive == true);\n });\n\n\n\n }\n\n\n\n public onTabSelect(e: SelectEvent): void {\n console.log(e);\n}\n\n}\n","\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n \n
\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\nimport { DataBindingDirective } from '@progress/kendo-angular-grid';\nimport { SelectEvent } from \"@progress/kendo-angular-layout\";\nimport { process } from \"@progress/kendo-data-query\";\nimport { ClientService } from 'src/app/services/client.service';\nimport { ClientConfig } from 'src/app/interfaces/client-config';\nimport { MasterdataService } from '../services/masterdata.service';\nimport { Sourcesystem } from '../interfaces/sourcesystem';\nimport { Client } from '../interfaces/client';\nimport { Organizations } from '../interfaces/organizations';\nimport { UserAuthService } from '../auth/services/user-auth.service';\n\nimport {\n PageChangeEvent,\n GridDataResult,\n PagerPosition,\n PagerType,\n} from \"@progress/kendo-angular-grid\";\nimport { Auth } from '../models/config.model';\nimport { ConfigService } from '../services/config.service';\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\n@Component({\n selector: 'app-clientsetup',\n templateUrl: './clientsetup.component.html',\n styleUrls: ['./clientsetup.component.scss']\n})\nexport class ClientsetupComponent implements OnInit {\n\n public clientConfigurationId: number;\n public clientId: number;\n public showTabs: boolean = false;\n @ViewChild(DataBindingDirective) dataBinding: DataBindingDirective | undefined;\n public clientData: ClientConfig[] = [];\n public clientGridView: unknown[] = [];\n public mySelection: string[] = [];\n sourceSystemMasterData: Sourcesystem[] = [];\n clientMasterData: Client[] = [];\n orgMasterData: Organizations[] = [];\n //public position: PagerPosition = \"bottom\";\n //public type:PagerType = \"numeric\";\n //public buttonCount = 5;\n //public info = true;\n //public previousNext = true;\n public pageSizes = true;\n constructor(@Inject(ClientService) private clientService: ClientService,\n @Inject(MasterdataService) private masterdataService: MasterdataService, private UserAuthService: UserAuthService, private configService: ConfigService) {\n this.allData = this.allData.bind(this);\n\n }\n get auth(): Auth {\n return this.configService.getAuthData('auth');\n }\n public allData(): ExcelExportData {\n const result: ExcelExportData = {\n data: process(this.clientGridView, {\n\n sort: [{ field: \"clientConfigurationId\", dir: \"desc\" }],\n }).data,\n\n\n };\n return result;\n }\n\n\n public ngOnInit(): void {\n localStorage.removeItem('clientId');\n localStorage.removeItem('clientName');\n localStorage.removeItem('sourceSystem');\n localStorage.removeItem('orgCode');\n localStorage.removeItem('clientConfigurationId');\n let clientId = this.auth.ClientID;\n let ClientSecret = this.auth.ClientSecret;\n let data = {'clientId':clientId,'ClientSecret':ClientSecret};\n this.UserAuthService.getAuthenticationToken(data).subscribe(res => {\n console.log(res);\n sessionStorage.setItem('token', res['access_token'])\n if (sessionStorage.getItem('token')) {\n this.clientService.getAllclientconfiguration().subscribe(data => {\n this.clientData = data.reverse();\n this.clientGridView = this.clientData;\n });\n this.masterdataService.getAllSourceSystem().subscribe(data => {\n this.sourceSystemMasterData = data.filter(s => s.isActive == true);\n //this.source = data;\n });\n this.masterdataService.getAllClient().subscribe(data => {\n this.clientMasterData = data.filter(s => s.isActive == true);\n });\n this.masterdataService.getAllOrganization().subscribe(data => {\n this.orgMasterData = data.filter(s => s.isActive == true);\n });\n }\n })\n }\n\n // public showGrid(): void {\n // this.showTabs = false;\n // }\n\n public addClient(): void {\n this.showTabs = true;\n this.clientConfigurationId = 0;\n this.clientId = 0;\n }\n\n public editClient(value: ClientConfig): void {\n this.clientConfigurationId = value.clientConfigurationId;\n this.clientId = value.clientId;\n this.showTabs = true;\n }\n\n public onFilter(input: Event): void {\n const inputValue = (input.target as HTMLInputElement).value;\n\n this.clientGridView = process(this.clientData, {\n filter: {\n logic: \"or\",\n filters: [\n {\n field: \"clientConfigurationId\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"clientName\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"organizationName\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"jobName\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"triggerType\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"jobStartTime\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"lastExecuted\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"createdBy\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"modifiedBy\",\n operator: \"contains\",\n value: inputValue,\n }\n ],\n },\n }).data;\n\n // this.dataBinding?.skip = 0;\n }\n}\n","import { Injectable,Inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TwilioSMSClaimDetails } from '../models/config.model';\nimport { UrlGroup } from '../models/config.model';\nimport { APIService } from './api.service';\nimport { ConfigService } from './config.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TwilioSmsClaimdetailsService {\n\n constructor(@Inject(ConfigService) private configService: ConfigService, private apiService: APIService) { }\n\n get urls(): UrlGroup {\n return this.configService.getApiUrls('adminconfiguration');\n }\n\n public getTwilioSMSClaimDetails(): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLRead) + `adminconfiguration-read/v1/clientconfiguration/gettwilioSmsClaimDetails`;\n return this.apiService.get(url);\n }\n}\n","\n\n
\n
\n
\n \n \n \n\n \n\n \n \n \n \n \n \n\n \n \n \n \n\n\n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n\n \n \n \n \n \n \n \n
\n \n
\n
\n
\n\n \n \n
\n \n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n
\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\nimport { TwilioSmsClaimdetailsService } from '../../services/twilio-sms-claimdetails.service';\nimport { FormBuilder } from '@angular/forms';\nimport { UserAuthService } from '../../auth/services/user-auth.service';\nimport { TwilioSMSClaimDetails } from '../../models/config.model';\nimport { State, process } from \"@progress/kendo-data-query\";\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\nimport { DataBindingDirective } from '@progress/kendo-angular-grid';\n\n\n\n@Component({\n selector: 'app-twilio-smsclaim-details',\n templateUrl: './twilio-smsclaim-details.component.html',\n styleUrls: ['./twilio-smsclaim-details.component.scss']\n})\nexport class TwilioSMSClaimDetailsComponent implements OnInit {\n isTextareaVisible: boolean;\n opened: boolean;\n Title: string;\n @ViewChild(DataBindingDirective) dataBinding: DataBindingDirective;\n openedmessage: boolean;\n message: string = '';\n ismessageTextboxVisible: boolean;\n optedOutReadSMSMessage: string;\n twiliosmsApiData: TwilioSMSClaimDetails[] = [] ;\n twiliosmsdata: TwilioSMSClaimDetails[] = [];\n public pageSizes: boolean = true;\n public state : State = {\n // skip : 0,\n // take : 5,\n group : [],\n };\n twilioMessageBody: any;\n isTextareaVisibleBody: boolean;\n openedBody: boolean;\n\n\n constructor(@Inject(TwilioSmsClaimdetailsService) private twiliosmsclaimdetailsservice: TwilioSmsClaimdetailsService, private fb: FormBuilder,private UserAuthService:UserAuthService) {\n this.allData = this.allData.bind(this);\n\n }\n\n public allData(): ExcelExportData {\n const result: ExcelExportData = {\n data: process(this.twiliosmsApiData, {\n\n sort: [{ field: \"id\", dir: \"desc\" }],\n }).data,\n\n\n };\n return result;\n }\n\n ngOnInit(): void {\n\n this.loadHistory();\n this.twiliosmsdata = this.twiliosmsApiData;\n\n }\n\n public loadHistory(){\n this.twiliosmsclaimdetailsservice.getTwilioSMSClaimDetails().subscribe(data=>{\n this.twiliosmsApiData = data;\n this.twiliosmsdata = this.twiliosmsApiData.reverse();\n });\n\n }\n public open(optedOutReadSMSMessage){\n this.Title = \"Opted Out Read SMS Message\";\n this.opened = true;\n this.optedOutReadSMSMessage= optedOutReadSMSMessage;\n this.showTextarea();\n }\n public openBody(twilioMessageBody){\n this.Title = \"Twilio Message\";\n this.openedBody = true;\n this.twilioMessageBody= twilioMessageBody;\n this.showTextareaBody();\n }\n public showTextareaBody() {\n this.isTextareaVisibleBody = true;\n }\n public showTextarea() {\n this.isTextareaVisible = true;\n }\n\n public close(status: string): void {\n this.opened = false;\n this.openedmessage = false;\n this.openedBody = false;\n }\n public openmessage(message){\n this.Title = \"Message\";\n this.openedmessage = true;\n this.message= message;\n this.showmessageTextbox();\n }\n\n public showmessageTextbox() {\n this.ismessageTextboxVisible = true;\n }\n\n // public onFilter(input: Event): void {\n // const inputValue = (input.target as HTMLInputElement).value;\n\n // this.twiliosmsdata = process(this.twiliosmsApiData, {\n // filter: {\n // logic: \"or\",\n // filters: [\n // {\n // field: \"id\",\n // operator: \"contains\",\n // value: inputValue,\n // },\n // {\n // field: \"phoneNumber\",\n // operator: \"contains\",\n // value: inputValue,\n // },\n // {\n // field: \"claimId\",\n // operator: \"contains\",\n // value: inputValue,\n // },\n // {\n // field: \"twilioSID\",\n // operator: \"contains\",\n // value: inputValue,\n // },\n // {\n // field: \"twilioMessageStatus\",\n // operator: \"contains\",\n // value: inputValue,\n // },\n // {\n // field: \"docketIdForOptInRequested\",\n // operator: \"contains\",\n // value: inputValue,\n // },\n // // {\n // // field: \"isDocketAddedInCMS\",\n // // operator: \"contains\",\n // // value: inputValue,\n // // },\n // {\n // field: \"docketType\",\n // operator: \"contains\",\n // value: inputValue,\n // },\n // {\n // field: \"createdBy\",\n // operator: \"contains\",\n // value: inputValue,\n // },\n // {\n // field: \"modifiedBy\",\n // operator: \"contains\",\n // value: inputValue,\n // },\n // {\n // field: \"createdDate\",\n // operator: \"contains\",\n // value: inputValue,\n // },\n // {\n // field: \"modifiedDate\",\n // operator: \"contains\",\n // value: inputValue,\n // }\n // ],\n // },\n // }).data;\n\n // // this.dataBinding.skip = 0;\n // }\n // public onFilter(input: Event): void {\n // const inputValue = (input.target as HTMLInputElement).value;\n\n // this.twiliosmsApiData = process(this.twiliosmsdata, {\n // filter: {\n // logic: \"or\",\n // filters: [\n // {\n // field: \"id\",\n // operator: \"contains\",\n // value: inputValue,\n // },\n // {\n // field: \"claimId\",\n // operator: \"contains\",\n // value: inputValue,\n // },\n // {\n // field: \"phoneNumber\",\n // operator: \"contains\",\n // value: inputValue,\n // },\n // {\n // field: \"clientId\",\n // operator: \"contains\",\n // value: inputValue,\n // },\n // {\n // field: \"twilioSID\",\n // operator: \"contains\",\n // value: inputValue,\n // },\n // {\n // field: \"twilioMessageStatus\",\n // operator: \"contains\",\n // value: inputValue,\n // },\n // {\n // field: \"docketIdForOptInRequested\",\n // operator: \"contains\",\n // value: inputValue,\n // },\n // {\n // field: \"createdDate\",\n // operator: \"contains\",\n // value: inputValue,\n // },\n // {\n // field: \"docketType\",\n // operator: \"contains\",\n // value: inputValue,\n // },\n // {\n // field: \"isDocketAddedInCMS\",\n // operator: \"contains\",\n // value: inputValue,\n // },\n // {\n // field: \"optedOutReadSMSMessage\",\n // operator: \"contains\",\n // value: inputValue,\n // },\n\n // {\n // field: \"modifiedBy\",\n // operator: \"contains\",\n // value: inputValue,\n // },\n // {\n // field: \"modifiedDate\",\n // operator: \"contains\",\n // value: inputValue,\n // }\n\n // ],\n // },\n // }).data;\n // // this.dataBinding?.skip = 0;\n // }\n\n}\n","import { Injectable,Inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { History } from '../models/config.model';\nimport { UrlGroup } from '../models/config.model';\nimport { APIService } from './api.service';\nimport { ConfigService } from './config.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HistoryService {\n\n constructor(@Inject(ConfigService) private configService: ConfigService, private apiService: APIService) { }\n\n get urls(): UrlGroup {\n return this.configService.getApiUrls('adminconfiguration');\n }\n\n public getHistory(clientId: number,skip:number, pageSize:number): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLRead) + `adminconfiguration-read/v1/clientconfiguration/`+ clientId+`/` + skip +`/`+pageSize+`/getClaimWatcherHistoryDetails`;\n return this.apiService.get(url);\n }\n\n public getJsonHistoryByClientId(clientId: number ): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLRead) + `adminconfiguration-read/v1/clientconfiguration/`+ clientId +`/getClaimWatcherHistoryJsonById`;\n return this.apiService.get(url);\n }\n\n // public getClaimWatcherHistoryDetails(): Observable {\n // const url = this.apiService.sanitizeUrl(this.urls.prefixurl) + `adminconfiguration-read/v1/clientconfiguration/allclientconfiguration`;\n // return this.apiService.get(url);\n // }\n\n}\n","\n
\n
\n
\n \n \n\n \n\n \n \n \n \n \n \n\n \n\n \n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n \n\n \n \n\n \n \n \n \n \n \n \n \n \n
\n \n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n
\n","\nimport { Component, OnInit, Input, Inject, ViewChild } from '@angular/core';\nimport { DataBindingDirective,DataStateChangeEvent,GridDataResult, PagerPosition, PagerType } from '@progress/kendo-angular-grid';\nimport { FormBuilder } from '@angular/forms';\nimport { HistoryService } from 'src/app/services/history.service';\nimport { History } from '../../models/config.model';\nimport { orderBy, process,SortDescriptor,State } from \"@progress/kendo-data-query\";\nimport { UserAuthService } from '../../auth/services/user-auth.service';\n@Component({\n selector: 'app-claim-watcher-history',\n templateUrl: './claim-watcher-history.component.html',\n styleUrls: ['./claim-watcher-history.component.scss']\n})\nexport class ClaimWatcherHistoryComponent implements OnInit {\n\n public opened = false;\n public openedmessage = false;\n public isTextareaVisible: boolean = false;\n public ismessageTextboxVisible: boolean = false;\n\n @ViewChild(DataBindingDirective) dataBinding: DataBindingDirective | undefined;\n\n public Title : string =\"\";\n public skip:number = 0;\n columns :any = [];\n public jsonData: string='';\n public message: string='';\n\n public historyApiData: History[]=[];\n @Input()\n public clientId: number = 0;\n public history: History[]=[];\n public Data = [ ];\n\n public state : State = {\n skip : 0,\n take : 10,\n group : [],\n };\n //public type: PagerType = \"numeric\";\n //public buttonCount = 5;\n //public info = true;\n public pageSizes = true;\n //public previousNext = true;\n //public position: PagerPosition = \"bottom\";\n public sort: SortDescriptor[] = [];\n\n public gridData: GridDataResult = {data:[],total:0};\n\n\n constructor(@Inject(HistoryService) private historyservice: HistoryService, private fb: FormBuilder,private UserAuthService:UserAuthService) { }\n\n ngOnInit(): void {\n\n\n this.loadHistory(this.clientId, this.state.skip, this.state.take);\n }\n\n public dataStateChange(state: DataStateChangeEvent): void {\n console.log(\"dataState called\");\n\n if(this.state.skip !== state.skip){\n this.gridData = {data:[],total:0};\n }\n this.state = state;\n // let take = parseInt(localStorage.getItem(\"take\"))\n // if(this.state.take != take){\n // localStorage.setItem(\"take\",this.state.take.toString())\n this.loadHistory(this.clientId,this.state.skip,this.state.take);\n\n}\n public loadHistory(clientId:number, skip:number, pageSize:number){\n this.historyservice.getHistory(clientId,skip,pageSize).subscribe(data=>{\n this.historyApiData = data;\n this.history = this.historyApiData;\n if(this.state.filter?.filters.length){\n this.gridData = process(data,this.state);\n this.gridData.total = this.gridData.data.length;\n }\n else{\n this.gridData.data = data;\n this.gridData.total = data[0].total;\n }\n });\n }\n public sortChange(sort: SortDescriptor[]): void {\n this.sort = sort;\n // this.gridData.data = data;\n this.gridData = {\n data: orderBy(this.historyApiData, this.sort),\n total: this.historyApiData[0].total,\n };\n this.historyApiData = this.gridData.data;\n\n // this.loadHistory(this.clientId, this.skip);\n }\n // public loadHistory(clientId:number, skip:number, pageSize:number){\n // this.historyservice.getHistory(clientId).subscribe(data=>{\n // this.historyApiData = data?.reverse();\n // });\n\n // }\n\n // public loadHistory(clientId:number, skip:number, pageSize:number){\n // this.historyservice.getHistory(clientId).subscribe(data=>{\n // this.historyApiData = data?.reverse();\n // });\n\n // }\n\n public getJsonDataByClientId(clientId:number){\n this.historyservice.getJsonHistoryByClientId(clientId).subscribe(data=>{\n console.log(data);\n if(data){\n this.Title = \"JSON Data\";\n this.opened = true;\n this.jsonData = data['jsonData'];\n this.showTextarea();\n }\n\n })\n }\n\n public open(dataItem){\n this.Title = \"JSON Data\";\n this.opened = true;\n this.jsonData= dataItem.jsonData;\n this.showTextarea();\n }\n\n public showTextarea() {\n this.isTextareaVisible = true;\n }\n\n public close(status: string): void {\n this.opened = false;\n this.openedmessage = false;\n }\n public openmessage(message){\n this.Title = \"Message\";\n this.openedmessage = true;\n this.message= message;\n this.showmessageTextbox();\n }\n\n public showmessageTextbox() {\n this.ismessageTextboxVisible = true;\n }\n\n\n}\n","\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
","import { Component, OnInit, Input, Inject, ViewChild } from '@angular/core';\nimport { DataBindingDirective, DataStateChangeEvent, GridDataResult, PagerPosition, PagerType } from '@progress/kendo-angular-grid';\nimport { FormBuilder } from '@angular/forms';\nimport { HistoryService } from 'src/app/services/history.service';\nimport { History } from '../models/config.model';\nimport { process, State, GroupDescriptor, groupBy, GroupResult } from \"@progress/kendo-data-query\";\nimport { UserAuthService } from '../auth/services/user-auth.service';\nimport { DOCUMENT } from '@angular/common';\nimport { AuthService } from '@auth0/auth0-angular';\n@Component({\n selector: 'app-history',\n templateUrl: './history.component.html',\n styleUrls: ['./history.component.scss']\n})\nexport class HistoryComponent implements OnInit {\n constructor(@Inject(DOCUMENT) public document: Document,public auth: AuthService) {\n }\n\n ngOnInit(): void {\n if(sessionStorage.getItem('token')== null){\n this.auth.logout({\n logoutParams: {\n returnTo: this.document.location.origin\n }\n });\n\n }\n\n\n }\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable,Inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { EmailConfig } from '../models/config.model';\nimport { UrlGroup } from '../models/config.model';\nimport { APIService } from './api.service';\nimport { ConfigService } from './config.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EmailConfigurationService {\n\n constructor(@Inject(ConfigService) private configService: ConfigService, private apiService: APIService) { }\n\n get urls(): UrlGroup {\n return this.configService.getApiUrls('adminconfiguration');\n }\n public getClientEmailTemplateDetails(clientId: number): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLRead) + `adminconfiguration-read/v1/clientemailtemplate/` + clientId + `/getClientEmailTemplateDetails`;\n return this.apiService.get(url);\n }\n\n public getEmailTemplate(clientId: number,id:number): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLRead) + `adminconfiguration-read/v1/clientemailtemplate/` + clientId + `/getClientEmailTemplateDetails?id=`+id;\n return this.apiService.get(url);\n }\n\n public postClientEmailTemplate(data: any): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLCommand) + `adminconfiguration-command/v1/clientemailtemplate/CreateClientEmailTemplate`;\n return this.apiService.post(url, data);\n }\n\n public putClientEmailTemplate(data: EmailConfig): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLCommand) + `adminconfiguration-command/v1/clientemailtemplate/updateClientEmailTemplate`;\n return this.apiService.put(url, data);\n }\n\n }\n\n\n","\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n \n
\n","import { Component, OnInit, Inject, ViewChild, Input } from '@angular/core';\nimport { EmailConfigurationService } from 'src/app/services/email-configuration.service';\nimport { EmailConfig } from 'src/app/models/config.model';\nimport { DataBindingDirective } from '@progress/kendo-angular-grid';\nimport { SelectEvent } from \"@progress/kendo-angular-layout\";\nimport { process } from \"@progress/kendo-data-query\";\nimport { TriggerEventService } from 'src/app/services/trigger-event.service';\nimport { Triggertype } from 'src/app/interfaces/triggertype';\nimport { MasterdataService } from 'src/app/services/masterdata.service';\nimport { Client } from 'src/app/interfaces/client';\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\nimport { AuthService } from '@auth0/auth0-angular';\nimport { DOCUMENT } from '@angular/common';\n\n@Component({\n selector: 'app-allemailconfig',\n templateUrl: './allemailconfig.component.html',\n styleUrls: ['./allemailconfig.component.scss']\n})\nexport class AllemailconfigComponent {\n public triggerTypeId: number = 0;\n public id: number;\n public clientName: string='';\n public clientId: number = 0;\n public showEmailTemplate: boolean = false;\n\n @ViewChild(DataBindingDirective) dataBinding: DataBindingDirective | undefined;\n\n public emailconfigData: EmailConfig[] = [];\n\n public emailGridView: EmailConfig[] = [];\n public triggerTypeData: Triggertype[]=[];\n public clientData: Client[]=[];\n public client: Client;\n public triggerType: Triggertype;\n\n public mySelection: string[] = [];\n public pageSizes:boolean = true;\n constructor(@Inject(EmailConfigurationService) private emailconfigurationService: EmailConfigurationService,@Inject(TriggerEventService) private triggerEventService: TriggerEventService,@Inject(MasterdataService) private masterdataService: MasterdataService,@Inject(DOCUMENT) public document: Document,public auth: AuthService) {\n this.masterdataService.getAllTriggerType().subscribe(data=>{\n this.triggerTypeData = data.filter(s => s.isActive == true);\n });\n\n this.masterdataService.getAllClient().subscribe(data=>{\n this.clientData = data.filter(s => s.isActive == true);\n });\n this.allData = this.allData.bind(this);\n\n }\n\n public ngOnInit(): void {\n this.emailconfigurationService.getClientEmailTemplateDetails(this.clientId).subscribe(data => {\n this.emailconfigData = data;\n this.emailGridView = this.emailconfigData.reverse();\n });\n if(sessionStorage.getItem('token')== null){\n this.auth.logout({\n logoutParams: {\n returnTo: this.document.location.origin\n }\n });\n\n }\n\n}\npublic allData(): ExcelExportData{\n const result: ExcelExportData = {\n data: process(this.emailGridView, {\n\n sort: [{ field: \"id\", dir: \"desc\" }],\n }).data,\n\n\n };\n return result;\n}\n\n public showGrid(): void {\n this.showEmailTemplate = false;\n }\n\n public addEmailtemplate(): void {\n this.showEmailTemplate = true;\n this.clientId = 0;\n }\n\n public editEmail(value: EmailConfig): void {\n this.id = value.id;\n this.clientId = value.clientId;\n this.clientName=value.clientName;\n console.log(this.client);\n this.triggerTypeId=value.triggerTypeId;\n this.showEmailTemplate = true;\n }\n\n public onFilter(input: Event): void {\n const inputValue = (input.target as HTMLInputElement).value;\n\n this.emailGridView = process(this.emailconfigData, {\n filter: {\n logic: \"or\",\n filters: [\n {\n field: \"clientId\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"triggerType\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"createdBy\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"id\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"clientName\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"toEmails\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"subject\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"createdDate\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"ccEmail\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"bccEmail\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"body\",\n operator: \"contains\",\n value: inputValue,\n },\n\n {\n field: \"modifiedBy\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"modifiedDate\",\n operator: \"contains\",\n value: inputValue,\n }\n\n ],\n },\n }).data;\n // this.dataBinding?.skip = 0;\n }\n}\n\n\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'admin-callback',\n template: '',\n})\nexport class AuthCallbackComponent {\n constructor(public router: Router) {\n }\n}\n","import { Component } from '@angular/core';\nimport { AuthService } from '@auth0/auth0-angular';\n\n@Component({\n selector: 'app-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.scss']\n})\n\nexport class LoginComponent {\n constructor(private auth: AuthService) {}\n //constructor() {}\n\n login() {\n this.auth.loginWithRedirect({\n appState: { target: '/ClientSetup' }\n })\n }\n}\n","","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { APIService } from './api.service';\nimport { ConfigService } from './config.service';\nimport { UrlGroup, JobSetup } from '../models/config.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserService {\n\n constructor(private configService: ConfigService,private apiService: APIService) { }\n\n get urls(): UrlGroup {\n return this.configService.getApiUrls('adminconfiguration');\n }\n\n public getUserInfoByUserEmail(emailId : string): Observable {\n console.log(emailId);\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLRead) + `adminconfiguration-read/v1/clientconfiguration/`+emailId+`/getUserByUserId`;\n\n return this.apiService.get(url);\n }\n\n public updateUserLastLogin(data : any): Observable {\n\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLCommand) + `adminconfiguration-command/v1/clientconfiguration/updateLastLoginUser`;\n\n return this.apiService.put(url,data);\n }\n\n public getAuthenticationToken(clientId,apiConsumerKey){\n let apiUrl = `adminconfiguration-read/v1/${clientId}/${apiConsumerKey}/authenticate`;\n console.log(apiUrl);\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLRead)+apiUrl;\n return this.apiService.get(url);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\nimport { AuthService } from '@auth0/auth0-angular';\nimport { Observable } from 'rxjs';\nimport { delay, tap } from 'rxjs/operators';\nimport { UserService } from 'src/app/services/user.service';\n\nimport { UserAuthService } from 'src/app/auth/services/user-auth.service';\nimport { Auth, UrlGroup } from '../models/config.model';\nimport { ConfigService } from './config.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CallbackGaurdService {\n get urls(): UrlGroup {\n return this.configService.getApiUrls('adminconfiguration');\n }\n\n get auth(): Auth {\n return this.configService.getAuthData('auth');\n }\n\n constructor(public authService: AuthService, public router: Router, private UserService: UserService, public UserAuthService: UserAuthService, private configService: ConfigService) { }\n canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot,\n ): Observable | Promise | boolean {\n return this.authService.isAuthenticated$.pipe(\n //delay(1000),\n tap(loggedIn => {\n if (loggedIn) {\n this.authService.user$.subscribe(user => {\n let clientId = this.auth.ClientID;\n let ClientSecret = this.auth.ClientSecret;\n let data = {\n 'clientId': clientId,\n 'ClientSecret': ClientSecret\n };\n this.UserAuthService.getAuthenticationToken(data).subscribe(authTokenData => {\n sessionStorage.setItem(\"token\", authTokenData['access_token']);\n sessionStorage.setItem(\"expires_in\", authTokenData['expires_in']);\n this.UserService.getUserInfoByUserEmail(user.email).subscribe(res => {\n if (res && res.isActive) {\n console.log(res);\n let userdata = {\n\n 'id': res.id,\n 'userId': res.userId\n };\n console.log(userdata);\n this.UserService.updateUserLastLogin(userdata).subscribe(res => console.log(res) )\n sessionStorage.setItem(\"role\", res.role);\n this.router.navigate(['/ClientSetup']);\n }\n else{\n this.router.navigate(['/not-authorized'])\n }\n if (!res) {\n this.router.navigate(['/not-authorized']);\n }\n }),\n error1 =>{\n this.router.navigate(['/not-authorized']);\n }\n }, error => {\n this.router.navigate(['/not-authorized']);\n })\n })\n } else\n if (!loggedIn) {\n this.router.navigate(['/not-authorized']);\n }\n }),\n );\n\n // return new Promise((resolve, reject) => {\n // this.AuthenticateService.handleAuthentication()\n // .then(() => {\n // //this.authService.scheduleRenewal();\n // resolve(true);\n // });\n // });\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NavbarService {\n visible:boolean;\n\n constructor() {\n this.visible = true;\n }\n\n show(){\n this.visible = true;\n }\n\n hide(){\n this.visible = false;\n }\n}\n","import { Component, OnInit,Inject } from '@angular/core';\nimport { Router } from '@angular/router';\n//import { UserAuthService } from '../services/auth.service';\nimport { NavbarService } from 'src/app/services/navbar.service';\nimport { DOCUMENT } from '@angular/common';\nimport { AuthService } from '@auth0/auth0-angular';\n\n@Component({\n selector: 'app-not-authorized',\n templateUrl: './not-authorized.component.html',\n styleUrls: ['./not-authorized.component.scss']\n})\nexport class NotAuthorizedComponent implements OnInit {\n\n constructor( private router: Router,public NavbarService:NavbarService, @Inject(DOCUMENT) public document: Document,private auth: AuthService) { }\n\n ngOnInit(): void {\n this.NavbarService.visible = false;\n }\n\n homepage() {\n sessionStorage.removeItem('username');\n sessionStorage.removeItem('token');\n sessionStorage.removeItem('role');\n sessionStorage.removeItem('expires_in');\n this.auth.logout({\n logoutParams: {\n returnTo: this.document.location.origin\n }\n });\n }\n\n}\n","\n
\n

4
\n \n
3

Sorry!!! you are not an authorized person...

\n click here to go home page..\n
","import { Injectable,Inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { UrlGroup, user } from '../models/config.model';\nimport { APIService } from './api.service';\nimport { ConfigService } from './config.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UsersService {\n\n constructor(@Inject(ConfigService) private configService: ConfigService, private apiService: APIService) { }\n\n get urls(): UrlGroup {\n return this.configService.getApiUrls('adminconfiguration');\n }\n\n public GetUsersDetails(): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLRead) + `adminconfiguration-read/v1/clientconfiguration/allUsers`;\n return this.apiService.get(url);\n }\n public GetUsersDetailsById(id:number): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLRead) + `adminconfiguration-read/v1/clientconfiguration/`+ id + `/GetUserById`;\n return this.apiService.get(url);\n }\n public GetUsersDetailsByEmailId(userId: string): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLRead) + `adminconfiguration-read/v1/clientconfiguration/`+ userId +`/GetUserByEmailId`;\n return this.apiService.get(url);\n }\n\n public postUsersDetails(data: any): Observable {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLCommand) + `adminconfiguration-command/v1/clientconfiguration/CreateUser`;\n return this.apiService.post(url, data);\n }\n\n public putUsersDetails(data: user): any {\n const url = this.apiService.sanitizeUrl(this.urls.PrefixURLCommand) + `adminconfiguration-command/v1/clientconfiguration/UpdateUser`;\n return this.apiService.put(url, data);\n }\n}\n","\n\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n Edit\n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n \n \n \n \n Email required\n Please enter valid email id\n \n
\n\n
\n \n \n \n \n \n \n
\n
\n \n \n \n \n Comapany Name is required\n \n
\n
\n \n \n \n \n Contact Number is required\n Contact Number should be of 10 digits only\n \n
\n
\n \n \n \n \n Role is Required\n \n
\n\n
\n \n Is Active\n \n
\n
\n
\n
\n \n Back\n \n\n Save\n
\n
\n
\n
\n
\n
\n","import { Component, OnInit, Inject, Input } from '@angular/core';\nimport { FormControl, FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { UsersService } from '../services/users.service';\nimport { user } from '../models/config.model';\nimport { DialogCloseResult, DialogRef, DialogService } from '@progress/kendo-angular-dialog';\nimport { process } from \"@progress/kendo-data-query\";\nimport {DOCUMENT, Location} from '@angular/common';\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\nimport { AuthService } from '@auth0/auth0-angular';\n\n@Component({\n selector: 'app-user',\n templateUrl: './user.component.html',\n styleUrls: ['./user.component.scss']\n})\nexport class UserComponent {\n public adduser: boolean = false;\n public userform: FormGroup;\n public result;\n // public data;\n public LoggedInName: string;\n public isActive: boolean = true;\n public isEditMode: boolean = false;\n @Input()\n id: number = 0;\n @Input()\n userId: string;\n public userData: user[] = [];\n public userGridView: user[] = [];\n public user: user;\n public userValidation: any = {};\n public pageSizes: boolean = true;\n public userRole:string = \"\";\n //public userRoleData:any = [{id:'Admin',value:'Admin'},{id:'SuperAdmin',value:'SuperAdmin'}];\n userRoleData:any = [{id:'Admin',value:'Admin'},{id:'SuperAdmin',value:'SuperAdmin'}];\n get f() { return this.userform.controls; }\n\n\n\n constructor(@Inject(UsersService) private usersService: UsersService, private fb: FormBuilder, private dialogService: DialogService,private _location: Location,@Inject(DOCUMENT) public document: Document,public auth: AuthService) {\n\n this.userform = this.fb.group({\n id: new FormControl(),\n userId: new FormControl(this.userValidation.userId, [Validators.required, this.emailValidator]),\n address: new FormControl(),\n contactNo: new FormControl(this.userValidation.contactNo, [Validators.pattern(\"^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$\"), Validators.maxLength(10)]),\n isActive: new FormControl(),\n company: new FormControl(this.userValidation.company, [Validators.required]),\n AdminUserRole : new FormControl(this.userValidation.AdminUserRole,[Validators.required]),\n })\n this.allData = this.allData.bind(this);\n\n }\n public allData(): ExcelExportData{\n const result: ExcelExportData = {\n data: process(this.userData, {\n\n sort: [{ field: \"id\", dir: \"desc\" }],\n }).data,\n\n\n };\n return result;\n }\n\n ngOnInit(): void {\n if(sessionStorage.getItem('token')== null){\n this.auth.logout({\n logoutParams: {\n returnTo: this.document.location.origin\n }\n });\n }\n this.userRole = sessionStorage.getItem('role').toLowerCase();\n if (this.id > 0) {\n this.isEditMode = true;\n this.getUserData(this.id);\n }\n else {\n this.usersService.GetUsersDetails().subscribe(data => {\n this.userData = data;\n console.log(this.userData);\n this.userGridView = this.userData.reverse();\n\n });\n }\n\n\n }\n public getFormData(): any {\n this.LoggedInName = sessionStorage.getItem('username');\n let data: user = new user();\n const formValue = this.userform.getRawValue();\n if (this.isEditMode) {\n data.id = formValue.id;\n data.company = formValue.company;\n data.isActive = formValue.isActive;\n data.userId = formValue.userId;\n data.contactNo = formValue.contactNo;\n data.address = formValue.address;\n data.role = formValue.AdminUserRole.id;\n }\n else {\n data.userId = formValue.userId;\n data.company = formValue.company;\n data.address = formValue.address;\n data.contactNo = formValue.contactNo;\n data.role = formValue.AdminUserRole.id;\n }\n\n if (+this.id > 0) {\n data.id = formValue.id;\n data.modifiedBy = this.LoggedInName;\n }\n else {\n data.createdBy = this.LoggedInName;\n }\n return data;\n }\n\n public addNewUser(): void {\n this.adduser = true\n\n }\n public editUsers(value: user) {\n this.id = value.id;\n this.userId = value.userId;\n this.adduser = true;\n this.isEditMode = true;\n this.getUserData(this.id)\n\n }\n emailValidator(control) {\n if (control.value) {\n const matches = control.value.match(/[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/);\n return matches ? null : { 'invalidEmail': true };\n } else {\n return null;\n }\n }\n public saveuser(): void {\n let data = this.getFormData();\n if (this.id > 0) {\n this.putUsersDetails(data);\n }\n else {\n this.postUsersDetails(data);\n }\n }\n\n public postUsersDetails(data: any) {\n this.usersService.postUsersDetails(data).subscribe((resp) => {\n // this.clientId = resp.id;\n if (resp.isSuccess) {\n this.showConfirmation(\"Success\", \"User added successfully\");\n console.log(\"User added successfully\");\n\n // this.getOnDemandData(this.clientId);\n } else {\n this.showConfirmation(\"Error\", \"Error : \" + resp.message);\n console.log(\"Error: \" + resp.message);\n }\n }, (error: any) => {\n console.log(error.message);\n\n });\n }\n public putUsersDetails(data: any) {\n this.usersService.putUsersDetails(data).subscribe((resp) => {\n // this.name = resp.name;\n if (resp.isSuccess) {\n this.showConfirmation(\"Success\", \"User updated successfully\");\n this.usersService.GetUsersDetails();\n } else {\n this.showConfirmation(\"Error\", \"Error: \" + resp.message);\n }\n }, (error: any) => {\n console.log(\"update error1\");\n });\n }\n public getUserData(id: number) {\n if (id > 0) {\n this.usersService.GetUsersDetailsById(id).subscribe(data => {\n this.user = data;\n if (this.user) {\n\n let index = this.userRoleData.findIndex(x => x.id == this.user.role);\n //console.log(userSelectedRole);\n // this.userform.setValue(this.user);\n this.userform.patchValue({\n id: this.user.id,\n userId: this.user.userId,\n address: this.user.address,\n company: this.user.company,\n contactNo: this.user.contactNo,\n isActive: this.user.isActive,\n AdminUserRole: this.userRoleData[index]\n });\n\n\n }\n });\n }\n }\n\n public showConfirmation(dialogTitle, dialogContent): void {\n const dialog: DialogRef = this.dialogService.open({\n title: dialogTitle,\n content: dialogContent,\n actions: [{ text: \"Close\", themeColor: \"primary\", cssClass: \"modal-close-button\" }],\n width: 400,\n height: 150,\n minWidth: 250,\n });\n\n dialog.result.subscribe((result) => {\n if (result instanceof DialogCloseResult) {\n console.log(\"close\");\n this.adduser = false;\n\n window.location.reload();\n\n } else {\n console.log(\"action\", result);\n window.location.reload();\n\n }\n this.result = JSON.stringify(result);\n });\n }\n public exit() {\n if(this.userform.dirty){\n this.showConfirmationOnBack(\"You have unsaved data on the page.Do you want to continue?\");\n }else{\n window.location.reload();\n }\n }\n\n\n public onFilter(input: Event): void {\n const inputValue = (input.target as HTMLInputElement).value;\n\n this.userGridView = process(this.userData, {\n filter: {\n logic: \"or\",\n filters: [\n {\n field: \"userId\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"company\",\n operator: \"eq\",\n value: inputValue,\n },\n {\n field: \"address\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"role\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"contactNo\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"createdBy\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"lastLoginDate\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"createdDate\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"modifiedDate\",\n operator: \"contains\",\n value: inputValue,\n },\n {\n field: \"modifiedBy\",\n operator: \"contains\",\n value: inputValue,\n }\n\n ],\n },\n }).data;\n }\n\n public showConfirmationOnBack(dialogContent): void {\n const dialog: DialogRef = this.dialogService.open({\n title: \"Please confirm\",\n content: dialogContent,\n actions: [{ text: \"Yes\"}, { text: \"No\", themeColor: \"primary\" }],\n width: 350,\n height: 170,\n });\n\n dialog.result.subscribe((result) => {\n if (result instanceof DialogCloseResult) {\n console.log(\"close\");\n } else {\n if(result.text == \"Yes\"){\n //this._location.back();\n window.location.reload();\n }\n }\n this.result = JSON.stringify(result);\n });\n }\n\n disabled() {\n if (this.isEditMode) {\n console.log(this.userform.dirty);\n if (!this.userform.valid || !this.userform.dirty) {\n return true;\n }\n } else {\n if (!this.userform.valid) {\n return true;\n }\n }\n return false;\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { ClientConfigComponent } from './clientsetup/tabcontent/client-config/client-config.component';\nimport { JobSetupComponent } from './clientsetup/tabcontent/job-setup/job-setup.component';\nimport { TriggerEventComponent } from './clientsetup/tabcontent/trigger-event/trigger-event.component';\nimport { EmailconfigurationComponent } from './emailconfiguration/emailconfiguration/emailconfiguration.component';\nimport { MasterdataComponent } from './masterdata/masterdata.component';\nimport { OndemandprocessingComponent } from './ondemandprocessing/ondemandprocessing.component';\nimport { ClientsetupComponent } from './clientsetup/clientsetup.component';\nimport { HistoryComponent } from './history/history.component';\nimport { AllemailconfigComponent } from './emailconfiguration/allemailconfig/allemailconfig.component';\n import { AuthCallbackComponent } from './callback.component';\nimport { LoginComponent } from './login/login.component';\nimport { LogoutComponent } from './logout.component';\nimport { AuthGuard } from '@auth0/auth0-angular';\nimport { CallbackGaurdService } from './services/callback.gaurd.service';\nimport { NotAuthorizedComponent } from './not-authorized/not-authorized.component';\nimport { UserComponent } from './user/user.component';\nimport { TwilioSMSClaimDetailsComponent } from './history/twilio-smsclaim-details/twilio-smsclaim-details.component'\nconst routes: Routes = [\n {\n path: 'callback',\n canActivate: [ CallbackGaurdService ],\n component: AuthCallbackComponent\n },\n\n // {path:'', component: LoginComponent},\n // {path:'logout', component: LogoutComponent},\n {\n path: '',\n pathMatch: 'full',\n redirectTo: 'login'\n },\n {\n path: 'login',\n component: LoginComponent\n },\n {path:'ClientSetup', component: ClientsetupComponent,canActivate: [CallbackGaurdService],},\n {path:'MasterData', component: MasterdataComponent,canActivate: [AuthGuard],},\n {path:'OnDemandProcessing', component: OndemandprocessingComponent,canActivate: [AuthGuard],},\n {path:'ClientConfiguration', component: ClientConfigComponent,canActivate: [AuthGuard],},\n {path:'EmailConfiguration', component: AllemailconfigComponent,canActivate: [AuthGuard],},\n {path:'JobSetup', component: JobSetupComponent,canActivate: [AuthGuard],},\n {path:'TriggerEvent', component: TriggerEventComponent,canActivate: [AuthGuard],},\n {path:'History', component: HistoryComponent,canActivate: [AuthGuard],},\n {path:'Users', component:UserComponent,canActivate: [AuthGuard]},\n {path:'twilio-smsclaim-details', component:TwilioSMSClaimDetailsComponent,canActivate: [AuthGuard]},\n {path:'not-authorized', component:NotAuthorizedComponent},\n // {path: 'callback',component: AuthCallbackComponent},\n\n\n];\n\n// const routes: Routes = [\n// //{path:'',pathMatch: 'full',redirectTo: 'ui'},\n// {path:'', component: ClientsetupComponent},\n// // {path:'logout', component: LogoutComponent},\n// {path:'ClientSetup', component: ClientsetupComponent},\n// {path:'MasterData', component: MasterdataComponent},\n// {path:'OnDemandProcessing', component: OndemandprocessingComponent},\n// {path:'ClientConfiguration', component: ClientConfigComponent},\n// {path:'EmailConfiguration', component: AllemailconfigComponent},\n// {path:'JobSetup', component: JobSetupComponent},\n// {path:'TriggerEvent', component: TriggerEventComponent},\n// {path:'History', component: HistoryComponent},\n// // {path: 'callback',component: AuthCallbackComponent},\n\n// ];\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","\n \n
\n \n
\n
\n\n \n
\n \n
\n
\n\n \n\n \n \n \n \n \n \n
\n","import { AfterViewInit, Component, ElementRef, Input, NgZone, ViewChild, Inject } from '@angular/core';\nimport { AppBarThemeColor } from '@progress/kendo-angular-navigation';\nimport { Align } from '@progress/kendo-angular-popup';\nimport { Headermenu } from 'src/app/headermenu';\n\nimport { AuthService } from '@auth0/auth0-angular';\nimport { DOCUMENT } from '@angular/common';\nimport { NavbarService } from 'src/app/services/navbar.service';\n\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n host: {\n \"(window:click)\": \"closeUserPanel()\"\n }\n})\nexport class HeaderComponent implements AfterViewInit {\n @ViewChild(\"anchor\", { static: false })\n public anchor: ElementRef | undefined;\n alignPopup: Align = { horizontal: \"right\", vertical: \"top\" };\n alignAnchor: Align = { horizontal: \"right\", vertical: \"bottom\" };\n public themColor: AppBarThemeColor = \"light\";\n public imgSrc = \"./assets/logo-white.svg\";\n\n public margin = { horizontal: -46, vertical: 7 };\n public show = false;\n showLogout: boolean = false;\n showFooter:boolean = false;\n MainHeaderMenuList = [{ name: \"Client Setup\", link: \"/ClientSetup\" },\n { name: \"Master Data\", link: \"/MasterData\" },\n { name: \"On Demand Job Processing\", link: \"/OnDemandProcessing\" },\n { name: \"Email Configuration\", link: \"/EmailConfiguration\" },\n { name: \"History\", link: \"/History\" },\n { name: \"Users\", link: \"/Users\" },\n ];\n clientSetupMenu: Headermenu = {\n name: \"Client Setup\",\n items: [{ text: \"Client Configuration\", link: \"/ClientConfiguration\" },\n { text: \"Trigger Event\", link: \"/TriggerEvent\" },\n { text: \"Job Setup\", link: \"/JobSetup\" },\n ]\n }\n masterDataMenu: Headermenu = {\n name: \"MasterData\",\n items: [{ text: \"Source System\", link: \"/SourceSystem\" },\n { text: \"Trigger Type\", link: \"/TriggerType\" },\n { text: \"Tables to track\", link: \"/TablesToTrack\" },\n { text: \"Frequency\", link: \"/Frequency\" },\n { text: \"Clients\", link: \"/Clients\" }\n ]\n }\n userLoginPanel: boolean = false;\n //userName:string = localStorage.getItem('username');\n @Input() userName;\n // logOutMenu: Headermenu = {name:\"Log Out\",\n // items: [{text: \"My Profile\", link:\"/MyProfile\"},\n // {text: \"Log Out\", link:\"/LogOut\"}\n // ]}\n\n public onToggle(): void {\n this.show = !this.show;\n }\n\n\n\n // constructor(private zone: NgZone) {}\n constructor(private zone: NgZone,\n @Inject(DOCUMENT) public document: Document,\n public auth: AuthService,\n public NavbarService: NavbarService,\n\n ) {\n\n\n }\n ngOnInit() {\n\n this.auth.isAuthenticated$.subscribe(isAuthenticated => {\n if (isAuthenticated) {\n this.auth.user$.subscribe(userData => {\n this.userName = userData.name;\n sessionStorage.setItem('username', userData.name);\n })\n }\n })\n\n\n\n }\n\n closeUserPanel(){\n this.userLoginPanel = false;\n }\n\n//}\n\n public ngAfterViewInit(): void {\n this.zone.runOutsideAngular(() => {\n window.addEventListener(\"resize\", () => {\n if (this.show) {\n this.zone.run(() => this.onToggle());\n }\n });\n });\n}\n\nlogout() {\n sessionStorage.removeItem('token');\n sessionStorage.removeItem('username');\n sessionStorage.removeItem('role');\n sessionStorage.removeItem('expires_in');\n this.auth.logout({\n logoutParams: {\n returnTo: this.document.location.origin\n }\n });\n}\ntoggleUserPanel($event: Event) {\n $event.stopPropagation();\n this.userLoginPanel = !this.userLoginPanel;\n\n}\n\n\n\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-footer',\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.scss']\n})\nexport class FooterComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","\n
\n
\n
©2023 CRAWFORD & COMPANY. All Rights Reserved.
\n
\n
\n
\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable()\nexport class LoaderService {\n isLoading = new Subject();\n show() {\n this.isLoading.next(true);\n }\n hide() {\n this.isLoading.next(false);\n }\n}\n","
\n
\n
","import { Component, OnInit } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { LoaderService } from '../services/loader.service';\n\n@Component({\n selector: 'app-loader',\n templateUrl: './loader.component.html',\n styleUrls: ['./loader.component.scss']\n})\nexport class LoaderComponent {\n color = 'primary';\n mode = 'indeterminate';\n value = 50;\n isLoading: Subject = this.loaderService.isLoading;\n constructor(private loaderService: LoaderService) {\n \n }\n}\n","
\n \n \n \n \n
\n","import { Component } from '@angular/core';\nimport { AuthService } from '@auth0/auth0-angular';\nimport { NavigationStart, Router } from '@angular/router';\nimport { ConfigService } from './services/config.service';\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponent {\n title = 'Client';\n userName: string;\n showFooter:boolean = false;\n constructor(private auth: AuthService, private router: Router,private ConfigService:ConfigService){\n this.ConfigService.loadConfig();\n router.events.forEach((event) => {\n if (event instanceof NavigationStart) {\n if (event['url'] == '/' || event['url'] == '/login') {\n this.showFooter = false;\n } else {\n // console.log(\"NU\")\n this.showFooter = true;\n }\n }\n });\n\n //constructor(){\n /*\n @author : Pranay Palaskar\n @purpose : when user is authenticated then we are storing name in sessionstorage for multipurpose\n */\n this.auth.isAuthenticated$.subscribe(isAuthenticated=>{\n if(isAuthenticated){\n this.auth.user$.subscribe(userData =>{\n this.userName = userData.name;\n sessionStorage.setItem('username',userData.name);\n })\n }\n })\n }\n\n}\n\n\n","
\n
\n
\n
\n \n \n \n \n \n \n Client Name is required\n \n
\n
\n \n \n \n \n \n \n \n Trigger Type is required\n \n
\n
\n \n \n \n \n \n Email required\n Please enter valid email id\n \n
\n
\n \n \n \n \n Please enter valid email id\n \n
\n
\n \n \n \n \n Please enter valid email id\n \n
\n
\n
\n
\n \n \n \n \n \n Subject required\n \n
\n
\n
\n
\n \n \n
\n  \n \n Body required\n
\n
\n
\n
\n
\n \n  \n \n \n
\n
\n
\n
\n \n  \n \n \n
\n
\n
\n
\n \n Back\n \n\n Save\n
\n
\n
\n
\n
\n","import { Component, Inject, OnInit, Input } from '@angular/core';\nimport { Triggertype } from 'src/app/interfaces/triggertype';\nimport { MasterdataService } from 'src/app/services/masterdata.service';\nimport { Client } from 'src/app/interfaces/client';\nimport { ClientService } from 'src/app/services/client.service';\nimport { FormControl, FormGroup, Validators, FormArray, FormBuilder } from '@angular/forms';\nimport { EmailConfig } from 'src/app/models/config.model';\nimport { EmailConfigurationService } from 'src/app/services/email-configuration.service';\nimport { AllemailconfigComponent } from 'src/app/emailconfiguration/allemailconfig/allemailconfig.component';\nimport { DialogService, DialogRef, DialogCloseResult } from '@progress/kendo-angular-dialog';\nimport {Location} from '@angular/common';\n\n@Component({\n selector: 'app-emailconfiguration',\n templateUrl: './emailconfiguration.component.html',\n styleUrls: ['./emailconfiguration.component.scss']\n})\nexport class EmailconfigurationComponent {\n public emailApiData: EmailConfig[];\n @Input()\n clientId: number = 0;\n @Input()\n triggerTypeId: number = 0;\n @Input()\n id: number = 0;\n public triggertypeSource: Triggertype[] = [];\n public triggerType: Triggertype[] = [];\n public type: Triggertype;\n\n public emaildata: any = {\n toEmails: '',\n };\n public isJsonNeedsToBeAttached = false;\n public clientData: Client[] = [];\n public client: Client[] = [];\n public isEditMode: boolean = false;\n public form: FormGroup;\n\n\n public emailForm: FormGroup;\n LoggedInName: string;\n\n\n get f() { return this.emailForm.controls; }\n\n constructor(@Inject(ClientService) private clientService: ClientService, @Inject(EmailConfigurationService) private emailConfigurationService: EmailConfigurationService, @Inject(MasterdataService) private masterdataService: MasterdataService, private fb: FormBuilder, private dialogService: DialogService,private _location: Location) {\n // this.form = new FormGroup({\n // toEmails: new FormControl(this.emaildata.toEmails,[Validators.email,Validators.required])\n // });\n this.masterdataService.getAllClient().subscribe(data => {\n this.clientData = data.filter(s => s.isActive == true);\n this.client = data.filter(s => s.isActive == true);\n console.log(this.client);\n });\n\n this.masterdataService.getAllTriggerType().subscribe(data => {\n this.triggertypeSource = data;\n this.triggerType = data;\n });\n\n this.emailForm = this.fb.group({\n id: new FormControl(),\n clientId: new FormControl(),\n triggerTypeId: new FormControl(),\n clientName: new FormControl(this.emaildata.clientName, [Validators.required]),\n triggerType: new FormControl(this.emaildata.triggerType, [Validators.required]),\n toEmails: new FormControl(this.emaildata.toEmails, [Validators.required, this.emailValidator]),\n ccEmail: new FormControl(null, [this.emailValidator]),\n bccEmail: new FormControl(null, [this.emailValidator]),\n subject: new FormControl(this.emaildata.subject, [Validators.required]),\n body: new FormControl(this.emaildata.body, [Validators.required]),\n isJsonNeedsToBeAttached: new FormControl(false),\n createdBy: new FormControl(),\n CreatedDate: new FormControl(),\n modifiedBy: new FormControl(),\n modifiedDate: new FormControl(),\n isActive:new FormControl(false),\n })\n\n }\n /*\n @author : Pranay Palaskar\n @purpose : validate Email Address when entering on input fields\n */\n\n emailValidator(control) {\n if (control.value) {\n const matches = control.value.match(/[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/);\n return matches ? null : { 'invalidEmail': true };\n } else {\n return null;\n }\n }\n\n public clientFilter(value: string) {\n this.clientData = this.client;\n this.clientData = this.client.filter(\n (s) => s.name.toLowerCase().indexOf(value?.toLowerCase()) !== -1\n );\n }\n\n public triggerTypeFilter(value: string) {\n this.triggertypeSource = this.triggerType;\n this.triggertypeSource = this.triggertypeSource.filter(\n (s) => s.type.toLowerCase().indexOf(value?.toLowerCase()) !== -1\n );\n }\n\n ngOnInit(): void {\n if (+this.id && this.clientId > 0) {\n this.isEditMode = true;\n this.getClientEmailData( this.clientId,this.id);\n }\n\n }\n\n\n public getFormData(): any {\n this.LoggedInName = sessionStorage.getItem('username');\n // if(this.LoggedInName == null || this.LoggedInName == '' || this.LoggedInName == undefined){\n // this.LoggedInName = 'pranay';\n // }\n let data: EmailConfig = new EmailConfig();\n const formValue = this.emailForm.getRawValue();\n if (this.isEditMode) {\n data.id = formValue.id;\n data.clientId = formValue.clientId;\n data.triggerTypeId = formValue.triggerTypeId;\n\n console.log(data.triggerTypeId)\n }\n else {\n data.clientId = formValue.clientName == null ? Number(localStorage.getItem('clientId')) : formValue.clientName?.id;\n data.triggerTypeId = formValue.triggerType?.id;\n // data.isActive = formValue.isActive;\n }\n data.toEmails = formValue.toEmails;\n data.ccEmail = formValue.ccEmail;\n data.bccEmail = formValue.bccEmail;\n data.subject = formValue.subject;\n data.body = formValue.body;\n data.isActive = formValue.isActive;\n data.isJsonNeedsToBeAttached = formValue.isJsonNeedsToBeAttached;\n if (+this.id > 0) {\n data.id = formValue.id;\n data.clientId = this.clientId;\n data.modifiedBy = this.LoggedInName;\n }\n else {\n data.createdBy = this.LoggedInName;\n }\n return data;\n }\n\n public saveEmail() {\n let data = this.getFormData();\n this.emailForm.markAllAsTouched();\n console.log(data)\n if (+this.id > 0) {\n this.putClientEmailData(data);\n } else {\n this.postClientEmailData(data);\n }\n }\n\n public putClientEmailData(data: any) {\n this.emailConfigurationService.putClientEmailTemplate(data).subscribe((resp) => {\n this.id = resp.id;\n this.triggerTypeId = resp.triggerTypeId;\n\n if (resp.isSuccess) {\n this.showConfirmation(\"Success\", \"Client email configuration updated successfully\");\n console.log(\"Client email configuration updated successfully\");\n this.emailConfigurationService.getClientEmailTemplateDetails(this.clientId);\n } else {\n this.showConfirmation(\"Error\", \"Error: \" + resp.message);\n console.log(\"Error: \" + resp.message);\n }\n }, (error: any) => {\n console.log(\"update error1\");\n\n\n });\n }\n\n public postClientEmailData(data: any) {\n this.emailConfigurationService.postClientEmailTemplate(data).subscribe((resp) => {\n this.clientId = resp.clientId;\n this.triggerTypeId = resp.triggerTypeId;\n if (resp.isSuccess) {\n this.showConfirmation(\"Success\", \"Client email configuration added successfully\");\n console.log(\"Client email configuration added successfully\");\n } else {\n this.showConfirmation(\"Error\", \"Error: \" + resp.message);\n console.log(\"Error: \" + resp.message);\n }\n }, (error: any) => {\n console.log(error.message);\n });\n }\n\n public getClientEmailData(clientId: number, id: number) {\n if (this.id && clientId && id > 0) {\n this.emailConfigurationService.getEmailTemplate(clientId,id).subscribe(data => {\n\n this.emailApiData = data.reverse();\n\n if (this.emailApiData) {\n this.emailApiData.find(item => item.id === id);\n console.log(\"data\",this.emailApiData);\n\n this.emailForm.patchValue({\n clientId: this.emailApiData[0].clientId,\n id: this.emailApiData[0].id,\n clientName: this.emailApiData[0].clientName,\n triggerTypeId: this.emailApiData[0].triggerTypeId,\n triggerType: this.emailApiData[0].triggerType,\n toEmails: this.emailApiData[0].toEmails,\n ccEmail: this.emailApiData[0].ccEmail,\n bccEmail: this.emailApiData[0].bccEmail,\n subject: this.emailApiData[0].subject,\n body: this.emailApiData[0].body,\n isJsonNeedsToBeAttached: this.emailApiData[0].isJsonNeedsToBeAttached,\n isActive : this.emailApiData[0].isActive,\n\n });\n this.emailForm.setValue(this.emailApiData);\n this.emailForm.patchValue({ clientName: this.emailApiData[0].clientName })\n }\n });\n }\n }\n public exit() {\n if(this.emailForm.dirty){\n this.showConfirmationOnBack(\"You have unsaved data on the page.Do you want to continue?\");\n }else{\n window.location.reload();\n }\n }\n\n public result;\n public showConfirmation(dialogTitle, dialogContent): void {\n const dialog: DialogRef = this.dialogService.open({\n title: dialogTitle,\n content: dialogContent,\n actions: [{ text: \"Close\", themeColor: \"primary\", cssClass: \"modal-close-button\" }],\n width: 400,\n height: 150,\n minWidth: 250,\n });\n\n dialog.result.subscribe((result) => {\n if (result instanceof DialogCloseResult) {\n console.log(\"close\");\n window.location.reload();\n\n } else {\n console.log(\"action\", result);\n window.location.reload();\n\n }\n this.result = JSON.stringify(result);\n });\n }\n\n\n public showConfirmationOnBack(dialogContent): void {\n const dialog: DialogRef = this.dialogService.open({\n title: \"Please confirm\",\n content: dialogContent,\n actions: [{ text: \"Yes\"}, { text: \"No\", themeColor: \"primary\" }],\n width: 350,\n height: 170,\n });\n\n dialog.result.subscribe((result) => {\n if (result instanceof DialogCloseResult) {\n console.log(\"close\");\n } else {\n if(result.text == \"Yes\"){\n //this._location.back();\n window.location.reload();\n }\n }\n this.result = JSON.stringify(result);\n });\n }\n\n disabled() {\n if (this.isEditMode) {\n if (!this.emailForm.valid || !this.emailForm.dirty) {\n return true;\n }\n } else {\n if (!this.emailForm.valid) {\n return true;\n }\n }\n return false;\n }\n\n}\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpRequest } from '@angular/common/http';\nimport { Inject, Injectable, } from '@angular/core';\n//import { AuthService } from '@auth0/auth0-angular';\nimport { Observable, throwError } from \"rxjs\";\nimport { catchError, finalize } from 'rxjs/operators';\nimport { LoaderService } from './loader.service';\n//import { UserAuthService } from './auth.service';\nimport { AuthService } from '@auth0/auth0-angular';\nimport { DOCUMENT } from '@angular/common';\n\nimport { UserAuthService } from '../auth/services/user-auth.service';\n@Injectable({\n providedIn: 'root'\n})\nexport class InterceptorService {\n\n //constructor(private auth: AuthService) { }\n constructor(public loaderService: LoaderService, public UserAuthService: UserAuthService, public auth: AuthService, @Inject(DOCUMENT) public document: Document,) { }\n\n public intercept(request: HttpRequest, next: HttpHandler,): Observable> {\n\n this.loaderService.show();\n const jwtInjectionConfig = this.UserAuthService.getJwtInjectionConfig();\n // const expiresOn = this.UserAuthService.getJwtInjectionConfig();\n //let currentTime = \"2023-08-24T11:07:50.0758725Z\";\n const now = new Date();\n let secondsToAdd = parseInt(jwtInjectionConfig.expires_in);\n let expires_in = new Date().toISOString();\n if(secondsToAdd){\n expires_in = new Date(now.getTime() + secondsToAdd * 1000).toISOString();\n }\n\n //console.log(expires_in);\n let currentTime = new Date().toISOString();\n\n if (jwtInjectionConfig.token && jwtInjectionConfig.token != \"undefined\") {\n if (currentTime > expires_in) {\n sessionStorage.removeItem('username');\n sessionStorage.removeItem('token');\n sessionStorage.removeItem('role');\n sessionStorage.removeItem('expires_in');\n this.auth.logout({\n logoutParams: {\n returnTo: this.document.location.origin\n }\n });\n }\n }\n \n\n request = request.clone({\n setHeaders: {\n Authorization: `Bearer ${jwtInjectionConfig.token}`,\n }\n });\n\n return next.handle(request).pipe(\n finalize(() => this.loaderService.hide()),\n catchError((error: HttpErrorResponse) => {\n let errorMessage = \"\";\n if (error.error instanceof ErrorEvent) {\n // client-side error\n errorMessage = `Error: ${error.error.message}`;\n } else {\n // server-side error\n errorMessage = `Error Code: ${error.status}\\nMessage: ${error.message}`;\n }\n const errormes = error.error;\n if (error.status == 400 && errormes.message) {\n errorMessage = errormes.message;\n // this.toaster.showToast({\n // message: errorMessage,\n // type: 'danger',\n // duration: 900000\n // });\n }\n\n else {\n if (errorMessage.indexOf(\"Error Code:\") >= 0) {\n // this.toaster.showToast({\n // message: \"Something went wrong, please try again later or contact support\",\n // type: \"danger\"\n // });\n }\n\n }\n return throwError(errorMessage);\n }));\n }\n}\n","import { NgModule, APP_INITIALIZER } from '@angular/core';\nimport { HttpClientModule, HttpClient, HTTP_INTERCEPTORS, HttpBackend } from '@angular/common/http';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { LayoutModule } from '@progress/kendo-angular-layout';\nimport { InputsModule } from '@progress/kendo-angular-inputs';\nimport { ClientConfigComponent } from './clientsetup/tabcontent/client-config/client-config.component';\nimport { TriggerEventComponent } from './clientsetup/tabcontent/trigger-event/trigger-event.component';\nimport { JobSetupComponent } from './clientsetup/tabcontent/job-setup/job-setup.component';\nimport { HeaderComponent } from './layouts/header/header.component';\nimport { NavigationModule } from '@progress/kendo-angular-navigation';\nimport { IconsModule } from '@progress/kendo-angular-icons';\nimport { PopupModule } from '@progress/kendo-angular-popup';\nimport { IndicatorsModule } from '@progress/kendo-angular-indicators';\nimport { ButtonsModule } from \"@progress/kendo-angular-buttons\";\nimport { MasterdataComponent } from './masterdata/masterdata.component';\nimport { OndemandprocessingComponent } from './ondemandprocessing/ondemandprocessing.component';\nimport { ContentheaderComponent } from './contentheader/contentheader.component';\nimport { PopupComponent } from './popup/popup.component';\nimport { LabelModule } from '@progress/kendo-angular-label';\nimport { DateInputsModule } from '@progress/kendo-angular-dateinputs';\nimport { EmailconfigurationComponent } from './emailconfiguration/emailconfiguration/emailconfiguration.component';\nimport { FooterComponent } from './layouts/footer/footer.component';\nimport { DropDownsModule } from '@progress/kendo-angular-dropdowns';\nimport { GridModule, PDFModule, ExcelModule, GridDataResult, RowArgs } from '@progress/kendo-angular-grid';\nimport { DialogModule, DialogService, DialogCloseResult } from '@progress/kendo-angular-dialog';\nimport { EditorModule } from '@progress/kendo-angular-editor';\nimport { ClientsetupComponent } from './clientsetup/clientsetup.component';\nimport { TabstripComponent } from './clientsetup/tabstrip/tabstrip.component';\nimport { ClientService } from './services/client.service';\nimport { HistoryComponent } from './history/history.component';\nimport { ConfigInitializer } from './config.initializer';\nimport { ConfigService } from './services/config.service';\nimport { AllorganizationsComponent } from './masterdata/allorganizations/allorganizations.component';\nimport { AllsourcesystemComponent } from './masterdata/allsourcesystem/allsourcesystem.component';\nimport { AlljobfrequencyComponent } from './masterdata/alljobfrequency/alljobfrequency.component';\nimport { AlltrackedtablesComponent } from './masterdata/alltrackedtables/alltrackedtables.component';\nimport { AlltimecodeComponent } from './masterdata/alltimecode/alltimecode.component';\nimport { AllexpensecodeComponent } from './masterdata/allexpensecode/allexpensecode.component';\nimport { AlltriggertypeComponent } from './masterdata/alltriggertype/alltriggertype.component';\nimport { AllclientsComponent } from './masterdata/allclients/allclients.component';\nimport { AllemailconfigComponent } from './emailconfiguration/allemailconfig/allemailconfig.component';\n// Import the authModule from the SDK\nimport { AuthClientConfig, AuthModule } from '@auth0/auth0-angular';\nimport { LogoutComponent } from './logout.component';\n//import { AuthCallbackComponent } from './callback.component';\nimport{LoginComponent} from './login/login.component';\nimport { UserComponent } from './user/user.component'\n//import { AuthHttpInterceptor } from '@auth0/auth0-angular';\n//import { InterceptorService } from './services/interceptor.service';\n//import { APP_BASE_HREF } from '@angular/common';\nimport { LoaderComponent } from './loader/loader.component';\nimport { LoaderService } from './services/loader.service';\nimport { InterceptorService } from './services/interceptor.service';\nimport { NotAuthorizedComponent } from './not-authorized/not-authorized.component';\nimport { AllConsumerAPIComponent } from './masterdata/all-consumer-api/all-consumer-api.component';\nimport { TwilioSMSClaimDetailsComponent } from './history/twilio-smsclaim-details/twilio-smsclaim-details.component';\nimport { ClaimWatcherHistoryComponent } from './history/claim-watcher-history/claim-watcher-history.component';\n\n\nfunction configInitializer(\n handler: HttpBackend,\n config: AuthClientConfig\n) {\n return () =>\n new HttpClient(handler)\n .get(`assets/config/config.json`)\n .toPromise()\n // Set the config that was loaded asynchronously here\n .then(response => {\n console.log(\"Response\",response)\n ConfigService.settings = response;\n config.set({\n clientId: ConfigService.settings.AdminUIAuth0_clientID, domain: ConfigService.settings.OAuth0_Domain,\n authorizationParams: {\n redirect_uri: window.location.origin+\"/callback\"\n }\n });\n });\n}\n\n@NgModule({\n declarations: [\n AppComponent,\n ClientConfigComponent,\n TriggerEventComponent,\n JobSetupComponent,\n HeaderComponent,\n MasterdataComponent,\n OndemandprocessingComponent,\n ContentheaderComponent,\n PopupComponent,\n EmailconfigurationComponent,\n FooterComponent,\n ClientsetupComponent,\n TabstripComponent,\n HistoryComponent,\n AllorganizationsComponent,\n AllsourcesystemComponent,\n AlljobfrequencyComponent,\n AlltrackedtablesComponent,\n AlltimecodeComponent,\n AllexpensecodeComponent,\n AlltriggertypeComponent,\n AllclientsComponent,\n AllemailconfigComponent,\n LoginComponent,\n LogoutComponent,\n LoaderComponent,\n NotAuthorizedComponent,\n UserComponent,\n AllConsumerAPIComponent,\n TwilioSMSClaimDetailsComponent,\n ClaimWatcherHistoryComponent,\n \n //AuthCallbackComponent,\n ],\n\n\n imports: [\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n BrowserModule,\n AppRoutingModule,\n LayoutModule,\n BrowserAnimationsModule,\n InputsModule,\n NavigationModule,\n IconsModule,\n PopupModule,\n IndicatorsModule,\n ButtonsModule,\n LabelModule,\n DateInputsModule,\n DropDownsModule,\n GridModule,\n DialogModule,\n PDFModule,\n ExcelModule,\n EditorModule,\n //Import the module into the application, with configuration\n // AuthModule.forRoot({\n // domain: configInfo.OAuth0_Domain,\n // clientId: configInfo.AdminUIAuth0_clientID,\n // authorizationParams: {\n // redirect_uri: window.location.origin+\"/callback\"\n // }\n // }),\n // AuthModule.forRoot({\n // ...env.auth\n // })\n AuthModule.forRoot()\n \n ],\n providers: [\n LoaderService,\n ClientService,\n ConfigService,\n //{ provide: APP_BASE_HREF, useValue: '/ui' },\n {\n provide: APP_INITIALIZER,\n useFactory: configInitializer,\n multi: true,\n deps: [HttpBackend, AuthClientConfig]\n },\n { provide: HTTP_INTERCEPTORS, useClass: InterceptorService, multi: true },\n \n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\nexport interface IAppConfig {\n AdminUIAuth0_clientID: string\n OAuth0_Domain: string\n}","import configInfo from '../assets/config/config.json';\n\n\nexport const environment = {\n production: true,\n auth: {\n domain: configInfo.OAuth0_Domain,\n clientId: configInfo.AdminUIAuth0_clientID,\n authorizationParams: {\n redirect_uri: window.location.origin + \"/callback\"\n }\n }\n};\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nexport function getBaseUrl() {\n return document.getElementsByTagName('base')[0].href;\n}\n\nconst providers = [\n { provide: 'BASE_URL', useFactory: getBaseUrl, deps: [] }\n];\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n"],"x_google_ignoreList":[]}