report
This commit is contained in:
		
							parent
							
								
									f7c801e835
								
							
						
					
					
						commit
						656f29018b
					
				
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -1,79 +1,115 @@ | ||||
| <ol class="breadcrumb breadcrumb-arrow font-trirong"> | ||||
|     <li><a href="javascript://" [routerLink]="['/cns-portal/dashboard/order']"><clr-icon shape="home"></clr-icon></a></li> | ||||
|     <li><a href="javascript://"><clr-icon shape=""></clr-icon>{{ 'SETUP' | translate }}</a></li> | ||||
|   </ol> | ||||
|    | ||||
|   <br> | ||||
|    | ||||
|   <div class="dg-wrapper"> | ||||
|       <div class="clr-row"> | ||||
|         <div class="clr-col-8"> | ||||
|           <!-- <h3>Setup</h3> --> | ||||
|         </div> | ||||
|       </div> | ||||
|   <li><a href="javascript://" [routerLink]="['/cns-portal/dashboard/order']"><clr-icon shape="home"></clr-icon></a></li> | ||||
|   <li><a href="javascript://"><clr-icon shape=""></clr-icon>{{ 'SETUP' | translate }}</a></li> | ||||
| </ol> | ||||
| 
 | ||||
| <br> | ||||
| 
 | ||||
| <div class="dg-wrapper"> | ||||
|   <div class="clr-row"> | ||||
|     <div class="clr-col-8"> | ||||
|       <!-- <h3>Setup</h3> --> | ||||
|     </div> | ||||
|   </div> | ||||
| 
 | ||||
| 
 | ||||
| <div class="container"> | ||||
|   <div class="container"> | ||||
|     <h3 class="section">{{ 'SETUP_TOOLS' | translate }}</h3> | ||||
| <div class="clr-row clr-align-items-start clr-justify-content-start" style="padding-right: 10px;"> | ||||
|   | ||||
|     <div class="clr-row"> | ||||
|        | ||||
|       <div class="clr-col-md-3" style="width: 300px ;"  *ngFor="let item of sub;"> | ||||
|           <div class="card" (click)="goToUserMaintenance(item)" style="border-left: none; border-right: none; border-top: none;"> | ||||
|     <div class="clr-row clr-align-items-start clr-justify-content-start" style="padding-right: 10px;"> | ||||
| 
 | ||||
|       <div class="clr-row"> | ||||
| 
 | ||||
|         <div class="clr-col-md-3" style="width: 300px ;" *ngFor="let item of sub;"> | ||||
|           <div class="card" (click)="goToUserMaintenance(item)" | ||||
|             style="border-left: none; border-right: none; border-top: none;"> | ||||
| 
 | ||||
| 
 | ||||
|               <div class="card-header" style="padding-bottom: 0px;"> | ||||
|                 <div class="clr-row"> | ||||
|                   <div class="clr-col-10"> | ||||
|               <clr-icon shape="cog"></clr-icon> | ||||
|             <div class="card-header" style="padding-bottom: 0px;"> | ||||
|               <div class="clr-row"> | ||||
|                 <div class="clr-col-10"> | ||||
|                   <clr-icon shape="cog"></clr-icon> | ||||
|                 </div> | ||||
|                 <div  class="clr-col-2"> | ||||
|                     <input type="radio" id="cb1" class="dots" [title]="item.status == 'Enable' ? 'status: True' : 'status: False'" [ngStyle]="{'background-color': item.status == 'Enable' ? 'green' : 'red'}" > | ||||
|                   </div> | ||||
|                 </div>  <br> | ||||
|                 <div class="clr-row"> | ||||
|                   <div class="clr-col-12"> | ||||
|                 <div class="clr-col-2"> | ||||
|                   <input type="radio" id="cb1" class="dots" | ||||
|                     [title]="item.status == 'Enable' ? 'status: True' : 'status: False'" | ||||
|                     [ngStyle]="{'background-color': item.status == 'Enable' ? 'green' : 'red'}"> | ||||
|                 </div> | ||||
|               </div> <br> | ||||
|               <div class="clr-row"> | ||||
|                 <div class="clr-col-12"> | ||||
|                   <b class="word" id="word" title="User Maintenance" style="color:#e98585">{{item.menuItemDesc}}</b> | ||||
|                 </div> | ||||
|                 </div>   | ||||
|   | ||||
|                    <div class="clr-row"> | ||||
|                     <div class="clr-col-12"> <div class="card-title1" id="word" > | ||||
|                       <b style="font-size: 15px;" class="p2" [title]="">{{item.menuItemDesc}}</b> | ||||
|                     </div> | ||||
|                      </div> | ||||
|                   </div> | ||||
|               </div> | ||||
|           </div> | ||||
|       </div>    | ||||
|   | ||||
|        | ||||
|       <div class="clr-col-md-3" style="width: 300px ;"> | ||||
|           <div class="card" (click)="goToreport()"  style="border-left: none; border-right: none; border-top: none;"> | ||||
| 
 | ||||
|               <div class="card-header" style="padding-bottom: 0px;"> | ||||
|                 <div class="clr-row"> | ||||
|                   <div class="clr-col-12"> | ||||
|               <clr-icon shape="cog"></clr-icon> | ||||
|               <div class="clr-row"> | ||||
|                 <div class="clr-col-12"> | ||||
|                   <div class="card-title1" id="word"> | ||||
|                     <b style="font-size: 15px;" class="p2" [title]="">{{item.menuItemDesc}}</b> | ||||
|                   </div> | ||||
|                 </div> | ||||
|                 </div>  <br> | ||||
|                 <div class="clr-row"> | ||||
|                   <div class="clr-col-12"> | ||||
|               </div> | ||||
|             </div> | ||||
|           </div> | ||||
|         </div> | ||||
| 
 | ||||
| 
 | ||||
|         <div class="clr-col-md-3" style="width: 300px ;"> | ||||
|           <div class="card" (click)="goToreport()" style="border-left: none; border-right: none; border-top: none;"> | ||||
| 
 | ||||
|             <div class="card-header" style="padding-bottom: 0px;"> | ||||
|               <div class="clr-row"> | ||||
|                 <div class="clr-col-12"> | ||||
|                   <clr-icon shape="cog"></clr-icon> | ||||
|                 </div> | ||||
|               </div> <br> | ||||
|               <div class="clr-row"> | ||||
|                 <div class="clr-col-12"> | ||||
|                   <b class="word" id="word" title="Reports" style="color:#e98585">{{ 'REPORTS' | translate }}</b> | ||||
|                 </div> | ||||
|                 </div>   | ||||
|   | ||||
|                    <div class="clr-row"> | ||||
|                     <div class="clr-col-12"> <div class="card-title1" id="word" > | ||||
|                       <b style="font-size: 15px;" class="p2" [title]="">{{ 'REPORTS_DESCRIPTION' | translate }}</b> | ||||
|                     </div> | ||||
|                      </div> | ||||
|                   </div> | ||||
|               </div> | ||||
| 
 | ||||
|               <div class="clr-row"> | ||||
|                 <div class="clr-col-12"> | ||||
|                   <div class="card-title1" id="word"> | ||||
|                     <b style="font-size: 15px;" class="p2" [title]="">{{ 'REPORTS_DESCRIPTION' | translate }}</b> | ||||
|                   </div> | ||||
|                 </div> | ||||
|               </div> | ||||
|             </div> | ||||
|           </div> | ||||
|       </div> | ||||
|         </div> | ||||
| 
 | ||||
|      | ||||
| 
 | ||||
| </div> | ||||
| 
 | ||||
|         <!-- Api Registery --> | ||||
|         <div class="clr-col-md-3" style="width: 300px ;"> | ||||
|           <div class="card" (click)="goToApiRegistery()" | ||||
|             style="border-left: none; border-right: none; border-top: none;"> | ||||
| 
 | ||||
|             <div class="card-header" style="padding-bottom: 0px;"> | ||||
|               <div class="clr-row"> | ||||
|                 <div class="clr-col-12"> | ||||
|                   <clr-icon shape="cog"></clr-icon> | ||||
|                 </div> | ||||
|               </div> <br> | ||||
|               <div class="clr-row"> | ||||
|                 <div class="clr-col-12"> | ||||
|                   <b class="word" id="word" title="Api Registery" style="color:#e98585">{{ 'API_REGISTERY' | translate | ||||
|                     }}</b> | ||||
|                 </div> | ||||
|               </div> | ||||
| 
 | ||||
|               <div class="clr-row"> | ||||
|                 <div class="clr-col-12"> | ||||
|                   <div class="card-title1" id="word"> | ||||
|                     <b style="font-size: 15px;" class="p2" [title]="">{{ 'API_REGISTERY_DESCRIPTION' | translate }}</b> | ||||
|                   </div> | ||||
|                 </div> | ||||
|               </div> | ||||
|             </div> | ||||
|           </div> | ||||
|         </div> | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|       </div> | ||||
| @ -8,82 +8,86 @@ import { TranslateService } from '@ngx-translate/core'; | ||||
|   templateUrl: './setupicon.component.html', | ||||
|   styleUrls: ['./setupicon.component.scss'] | ||||
| }) | ||||
| export class SetupiconComponent implements OnInit{ | ||||
| export class SetupiconComponent implements OnInit { | ||||
| 
 | ||||
|   sub; | ||||
|     constructor(private router: Router,  private route: ActivatedRoute,private menuservice:MenumaintanceService,    private menuGroupService: MenuGroupService, | ||||
|       private translate: TranslateService | ||||
|     ) { } | ||||
|   constructor(private router: Router, private route: ActivatedRoute, private menuservice: MenumaintanceService, private menuGroupService: MenuGroupService, | ||||
|     private translate: TranslateService | ||||
|   ) { } | ||||
| 
 | ||||
| 
 | ||||
|     ngOnInit(): void { | ||||
|       this.getById(1116) | ||||
|     } | ||||
|     switchLanguage(language: string) { | ||||
|       this.translate.use(language); | ||||
|     } | ||||
|     getById(id:any){ | ||||
|       this.menuservice.getbyid(id).subscribe((data)=>{ | ||||
|         this.sub=data; | ||||
|         console.log(this.sub) | ||||
|       }) | ||||
|     } | ||||
|   ngOnInit(): void { | ||||
|     this.getById(1116) | ||||
|   } | ||||
|   switchLanguage(language: string) { | ||||
|     this.translate.use(language); | ||||
|   } | ||||
|   getById(id: any) { | ||||
|     this.menuservice.getbyid(id).subscribe((data) => { | ||||
|       this.sub = data; | ||||
|       console.log(this.sub) | ||||
|     }) | ||||
|   } | ||||
|   mc; | ||||
|   me; | ||||
|   md; | ||||
|   mv; | ||||
|   goToUserMaintenance(val) { | ||||
|     console.log(val); | ||||
|         this.menuGroupService.storeaddeditvalues(val); | ||||
|     this.mc=val.mcreate; | ||||
|     this.me=val.medit; | ||||
|     this.md=val.mdelete; | ||||
|     this.mv=val.mvisible; | ||||
|     if(this.mv == 'false'){ | ||||
|     this.menuGroupService.storeaddeditvalues(val); | ||||
|     this.mc = val.mcreate; | ||||
|     this.me = val.medit; | ||||
|     this.md = val.mdelete; | ||||
|     this.mv = val.mvisible; | ||||
|     if (this.mv == 'false') { | ||||
|       this.router.navigate(['/**']) | ||||
|     } | ||||
|         this.router.navigate(['../'+ val.main_menu_action_name] , { relativeTo: this.route}); | ||||
|     this.router.navigate(['../' + val.main_menu_action_name], { relativeTo: this.route }); | ||||
|   } | ||||
| 
 | ||||
|   goToUsergrpMaintenance() { | ||||
|     this.router.navigate(['/cns-portal/usergrpmaintance'],{ relativeTo: this.route }); | ||||
|     this.router.navigate(['/cns-portal/usergrpmaintance'], { relativeTo: this.route }); | ||||
|   } | ||||
| 
 | ||||
|   goToMenumaintance() { | ||||
|     this.router.navigate(['/cns-portal/menumaintance'],{ relativeTo: this.route }); | ||||
|     this.router.navigate(['/cns-portal/menumaintance'], { relativeTo: this.route }); | ||||
|   } | ||||
| 
 | ||||
|   goToMenuaccess() { | ||||
|     this.router.navigate(['/cns-portal/menuaccess'],{ relativeTo: this.route }); | ||||
|     this.router.navigate(['/cns-portal/menuaccess'], { relativeTo: this.route }); | ||||
|   } | ||||
| 
 | ||||
|   goToSystemparameters() { | ||||
|     this.router.navigate(['/cns-portal/systemparameters'],{ relativeTo: this.route }); | ||||
|     this.router.navigate(['/cns-portal/systemparameters'], { relativeTo: this.route }); | ||||
|   } | ||||
| 
 | ||||
|   goToAccesstype() { | ||||
|     this.router.navigate(['/cns-portal/accesstype'],{ relativeTo: this.route }); | ||||
|     this.router.navigate(['/cns-portal/accesstype'], { relativeTo: this.route }); | ||||
|   } | ||||
| 
 | ||||
|   goToreport() { | ||||
|     this.router.navigate(['/cns-portal/reportbuild'],{ relativeTo: this.route }); | ||||
|     this.router.navigate(['/cns-portal/reportbuild'], { relativeTo: this.route }); | ||||
|   } | ||||
| 
 | ||||
|   goTodash() { | ||||
|     this.router.navigate(['/cns-portal/dashboardbuilder'],{ relativeTo: this.route }); | ||||
|     this.router.navigate(['/cns-portal/dashboardbuilder'], { relativeTo: this.route }); | ||||
|   } | ||||
| 
 | ||||
|   goToApiRegistery() { | ||||
|     this.router.navigate(['/cns-portal/apiregistery'], { relativeTo: this.route }); | ||||
|   } | ||||
| 
 | ||||
| 
 | ||||
| //   mc;
 | ||||
| //   me;
 | ||||
| //   md;
 | ||||
| //   mv;
 | ||||
| //   send(val){
 | ||||
| //     console.log(val);
 | ||||
| //     this.menuGroupService.storeaddeditvalues(val);
 | ||||
| // this.mc=val.mcreate;
 | ||||
| // this.me=val.medit;
 | ||||
| // this.md=val.mdelete;
 | ||||
| // this.mv=val.mvisible;
 | ||||
|    | ||||
|   //   mc;
 | ||||
|   //   me;
 | ||||
|   //   md;
 | ||||
|   //   mv;
 | ||||
|   //   send(val){
 | ||||
|   //     console.log(val);
 | ||||
|   //     this.menuGroupService.storeaddeditvalues(val);
 | ||||
|   // this.mc=val.mcreate;
 | ||||
|   // this.me=val.medit;
 | ||||
|   // this.md=val.mdelete;
 | ||||
|   // this.mv=val.mvisible;
 | ||||
| 
 | ||||
| } | ||||
|  | ||||
| @ -1,4 +1,7 @@ | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| import { SequencegenaratorComponent } from './fnd/sequencegenarator/sequencegenarator.component'; | ||||
| import { Component, NgModule } from '@angular/core'; | ||||
| import { Routes, RouterModule } from '@angular/router'; | ||||
| @ -81,6 +84,9 @@ import { MappingruleComponent } from './datamanagement/mappingrule/mappingrule.c | ||||
| import { MappingruleallComponent } from './datamanagement/mappingrule/mappingruleall/mappingruleall.component'; | ||||
| import { MappingruleaddComponent } from './datamanagement/mappingrule/mappingruleadd/mappingruleadd.component'; | ||||
| import { MappingruleeditComponent } from './datamanagement/mappingrule/mappingruleedit/mappingruleedit.component'; | ||||
| import { QueryComponent } from './superadmin/query/query.component'; | ||||
| import { QueryaddComponent } from './superadmin/queryadd/queryadd.component'; | ||||
| import { QueryeditComponent } from './superadmin/queryedit/queryedit.component'; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| @ -122,9 +128,20 @@ const routes: Routes = [ | ||||
|           { path: 'all', component: ReportbuildallComponent }, | ||||
|           { path: 'add', component: ReportbuildaddComponent }, | ||||
|           { path: 'edit/:id', component: ReportbuildeditComponent }, | ||||
|           { path: 'reportQuery/:id', component: ReportbuildqueryComponent } | ||||
|           { path: 'reportQuery/:id', component: ReportbuildqueryComponent }, | ||||
| 
 | ||||
| 
 | ||||
|           //SUPER ADMIN
 | ||||
|           { path: 'query', component: QueryComponent, canActivate: [AuthGuard], data: { roles: [Role.Admin] } }, | ||||
|           { path: 'reportQuery/:id/queryadd', component: QueryaddComponent, canActivate: [AuthGuard], data: { roles: [Role.Admin] } }, | ||||
|           { path: 'reportQuery/queryedit/:id', component: QueryeditComponent, canActivate: [AuthGuard], data: { roles: [Role.Admin] } }, | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|         ] | ||||
|       }, // {path:'rerunner',component:DatefunctionComponent},
 | ||||
|       }, | ||||
| 
 | ||||
|       // {path:'rerunner',component:DatefunctionComponent},
 | ||||
| 
 | ||||
|       { | ||||
|         path: 'reportbuild2', component: ReportBuild2Component, | ||||
| @ -242,8 +259,6 @@ const routes: Routes = [ | ||||
| 
 | ||||
|       // buildercomponents
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|       { path: '**', component: PageNotFoundComponent }, | ||||
| 
 | ||||
|     ] | ||||
|  | ||||
| @ -1,128 +1,112 @@ | ||||
| 
 | ||||
| 
 | ||||
| import { SequencegenaratorComponent } from './fnd/sequencegenarator/sequencegenarator.component'; | ||||
| import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; | ||||
| import { CommonModule } from '@angular/common'; | ||||
| import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; | ||||
| import { FormsModule, ReactiveFormsModule } from '@angular/forms'; | ||||
| import { ClarityModule } from '@clr/angular'; | ||||
| 
 | ||||
| import { MainRoutingModule } from './main-routing.module'; | ||||
| import { MainPageComponent } from '../main/fnd/main-page/main-page.component'; | ||||
| import { MainRoutingModule } from './main-routing.module'; | ||||
| import { PageNotFoundComponent } from './page-not-found/page-not-found.component'; | ||||
| // import { AboutComponent } from '../main/admin/about/about.component';
 | ||||
| // import { LayoutComponent } from './layout/layout.component';
 | ||||
| import { UserComponent } from '../main/admin/user/user.component'; | ||||
| import { HelperModule } from 'src/app/pipes/helpers.module'; | ||||
| import { PasswordResetComponent } from '../main/admin/password-reset/password-reset.component'; | ||||
| import { UserComponent } from '../main/admin/user/user.component'; | ||||
| 
 | ||||
| import { DashboardComponent } from '../main/fnd/dashboard/dashboard.component'; | ||||
| 
 | ||||
| import { MenuGroupComponent } from '../main/admin/menu-group/menu-group.component'; | ||||
| import { AllMenuGroupComponent } from '../main/admin/menu-group/all/all-menu-group.component'; | ||||
| import { EditMenuGroupComponent } from '../main/admin/menu-group/edit/edit-menu-group.component'; | ||||
| import { MenuGroupComponent } from '../main/admin/menu-group/menu-group.component'; | ||||
| import { ReadOnlyMenuGroupComponent } from '../main/admin/menu-group/read-only/readonly-menu-group.component'; | ||||
| import { MenuRegisterComponent } from '../main/admin/menu-register/menu-register.component'; | ||||
| import { AddMenurComponent } from '../main/admin/menu-register/add-menur/add-menur.component'; | ||||
| import { EditMenurComponent } from '../main/admin/menu-register/edit-menur/edit-menur.component'; | ||||
| import { AllMenurComponent } from '../main/admin/menu-register/all-menur/all-menur.component'; | ||||
| import { EditMenurComponent } from '../main/admin/menu-register/edit-menur/edit-menur.component'; | ||||
| import { MenuRegisterComponent } from '../main/admin/menu-register/menu-register.component'; | ||||
| import { ReadonlyMenurComponent } from '../main/admin/menu-register/readonly-menur/readonly-menur.component'; | ||||
| import { ProfileSettingComponent } from '../main/admin/profile-setting/profile-setting.component'; | ||||
| import { UsermaintanceComponent } from '../main/admin/usermaintance/usermaintance.component'; | ||||
| import { UsermaintanceaddComponent } from '../main/admin/usermaintanceadd/usermaintanceadd.component'; | ||||
| import { UsermaintanceeditComponent } from '../main/admin/usermaintanceedit/usermaintanceedit.component'; | ||||
| import { UsergrpmaintenanceComponent } from '../main/admin/usergrpmaintenance/usergrpmaintenance.component'; | ||||
| import { MenuaccesscontrolComponent } from '../main/admin/menuaccesscontrol/menuaccesscontrol.component'; | ||||
| import { SystemparametersComponent } from '../main/admin/systemparameters/systemparameters.component'; | ||||
| import { MenumaintanceComponent } from '../main/admin/menumaintance/menumaintance.component'; | ||||
| 
 | ||||
| import { DragDropModule } from '@angular/cdk/drag-drop'; | ||||
| import { CKEditorModule } from 'ng2-ckeditor'; | ||||
| import { CodemirrorModule } from "@ctrl/ngx-codemirror"; | ||||
| import { GridsterModule } from 'angular-gridster2'; | ||||
| import { NgChartsModule } from 'ng2-charts'; | ||||
| import { NgxChartsModule } from '@swimlane/ngx-charts'; | ||||
| import { DynamicModule } from 'ng-dynamic-component'; | ||||
| import { HttpClientModule } from '@angular/common/http'; | ||||
| import { CodemirrorModule } from "@ctrl/ngx-codemirror"; | ||||
| import { NgxChartsModule } from '@swimlane/ngx-charts'; | ||||
| import { GridsterModule } from 'angular-gridster2'; | ||||
| import { DynamicModule } from 'ng-dynamic-component'; | ||||
| import { NgChartsModule } from 'ng2-charts'; | ||||
| import { CKEditorModule } from 'ng2-ckeditor'; | ||||
| 
 | ||||
| import { UserRegistrationComponent } from '../main/admin/user-registration/user-registration.component'; | ||||
| 
 | ||||
| import { QRCodeModule } from 'angularx-qrcode'; | ||||
| import { ImageCropperModule } from 'ngx-image-cropper'; | ||||
| import { SubmenuComponent } from './admin/submenu/submenu.component'; | ||||
| import { TagInputModule } from 'ngx-chips'; | ||||
| import { AccesstypeComponent } from './admin/accesstype/accesstype.component'; | ||||
| import { ModulesComponent } from './admin/modules/modules.component'; | ||||
| import { CookieService } from 'ngx-cookie-service'; | ||||
| import { ImageCropperModule } from 'ngx-image-cropper'; | ||||
| import { ModulesComponent } from './admin/modules/modules.component'; | ||||
| import { SessionloggerComponent } from './admin/sessionlogger/sessionlogger.component'; | ||||
| import { SubmenuComponent } from './admin/submenu/submenu.component'; | ||||
| 
 | ||||
| import { WireframeService } from 'src/app/services/builder/wireframe.service'; | ||||
| import { ReportRunnerComponent } from './builder/report-runner/report-runner.component'; | ||||
| import { ReportrunnerallComponent } from './builder/report-runner/reportrunnerall/reportrunnerall.component'; | ||||
| import { ReportrunnereditComponent } from './builder/report-runner/reportrunneredit/reportrunneredit.component'; | ||||
| import { Reportrunneredit2Component } from './builder/report-runner/reportrunneredit2/reportrunneredit2.component'; | ||||
| import { ReportBuildComponent } from './builder/report-build/report-build.component'; | ||||
| import { ReportbuildallComponent } from './builder/report-build/reportbuildall/reportbuildall.component'; | ||||
| import { ReportbuildaddComponent } from './builder/report-build/reportbuildadd/reportbuildadd.component'; | ||||
| import { ReportbuildeditComponent } from './builder/report-build/reportbuildedit/reportbuildedit.component'; | ||||
| import { ReportbuildqueryComponent } from './builder/report-build/reportbuildquery/reportbuildquery.component'; | ||||
| import { ReportBuild2Component } from './builder/report-build2/report-build2.component'; | ||||
| import { ReportBuild2allComponent } from './builder/report-build2/report-build2all/report-build2all.component'; | ||||
| import { ReportBuild2addComponent } from './builder/report-build2/report-build2add/report-build2add.component'; | ||||
| import { ReportBuild2editComponent } from './builder/report-build2/report-build2edit/report-build2edit.component'; | ||||
| import { ReportRunnerComponent } from './builder/report-runner/report-runner.component'; | ||||
| import { ReportrunnereditComponent } from './builder/report-runner/reportrunneredit/reportrunneredit.component'; | ||||
| import { Reportrunneredit2Component } from './builder/report-runner/reportrunneredit2/reportrunneredit2.component'; | ||||
| 
 | ||||
| 
 | ||||
| import { DashboardnewComponent } from './builder/dashboardnew/dashboardnew.component'; | ||||
| import { AddnewdashComponent } from './builder/dashboardnew/addnewdash/addnewdash.component'; | ||||
| import { AllnewdashComponent } from './builder/dashboardnew/allnewdash/allnewdash.component'; | ||||
| import { EditformnewdashComponent } from './builder/dashboardnew/editformnewdash/editformnewdash.component'; | ||||
| import { EditnewdashComponent } from './builder/dashboardnew/editnewdash/editnewdash.component'; | ||||
| import { BarChartComponent } from './builder/dashboardnew/gadgets/bar-chart/bar-chart.component'; | ||||
| import { BubbleChartComponent } from './builder/dashboardnew/gadgets/bubble-chart/bubble-chart.component'; | ||||
| import { DoughnutChartComponent } from './builder/dashboardnew/gadgets/doughnut-chart/doughnut-chart.component'; | ||||
| import { DynamicChartComponent } from './builder/dashboardnew/gadgets/dynamic-chart/dynamic-chart.component'; | ||||
| import { FinancialChartComponent } from './builder/dashboardnew/gadgets/financial-chart/financial-chart.component'; | ||||
| import { GridViewComponent } from './builder/dashboardnew/gadgets/grid-view/grid-view.component'; | ||||
| import { LineChartComponent } from './builder/dashboardnew/gadgets/line-chart/line-chart.component'; | ||||
| import { PieChartComponent } from './builder/dashboardnew/gadgets/pie-chart/pie-chart.component'; | ||||
| import { PolarChartComponent } from './builder/dashboardnew/gadgets/polar-chart/polar-chart.component'; | ||||
| import { RadarChartComponent } from './builder/dashboardnew/gadgets/radar-chart/radar-chart.component'; | ||||
| import { ScatterChartComponent } from './builder/dashboardnew/gadgets/scatter-chart/scatter-chart.component'; | ||||
| import { ToDoChartComponent } from './builder/dashboardnew/gadgets/to-do-chart/to-do-chart.component'; | ||||
| import { ScheduleComponent } from './builder/dashboardnew/schedule/schedule.component'; | ||||
| import { SetupiconComponent } from './builder/setupicon/setupicon.component'; | ||||
| import { AddextensionComponent } from './fnd/extension/addextension/addextension.component'; | ||||
| import { AllextensionComponent } from './fnd/extension/allextension/allextension.component'; | ||||
| import { EditextensionComponent } from './fnd/extension/editextension/editextension.component'; | ||||
| import { ExtensionComponent } from './fnd/extension/extension.component'; | ||||
| import { DoughnutChartComponent } from './builder/dashboardnew/gadgets/doughnut-chart/doughnut-chart.component'; | ||||
| import { LineChartComponent } from './builder/dashboardnew/gadgets/line-chart/line-chart.component'; | ||||
| import { RadarChartComponent } from './builder/dashboardnew/gadgets/radar-chart/radar-chart.component'; | ||||
| import { BarChartComponent } from './builder/dashboardnew/gadgets/bar-chart/bar-chart.component'; | ||||
| import { BubbleChartComponent } from './builder/dashboardnew/gadgets/bubble-chart/bubble-chart.component'; | ||||
| import { DynamicChartComponent } from './builder/dashboardnew/gadgets/dynamic-chart/dynamic-chart.component'; | ||||
| import { ScatterChartComponent } from './builder/dashboardnew/gadgets/scatter-chart/scatter-chart.component'; | ||||
| import { PolarChartComponent } from './builder/dashboardnew/gadgets/polar-chart/polar-chart.component'; | ||||
| import { PieChartComponent } from './builder/dashboardnew/gadgets/pie-chart/pie-chart.component'; | ||||
| import { FinancialChartComponent } from './builder/dashboardnew/gadgets/financial-chart/financial-chart.component'; | ||||
| import { ToDoChartComponent } from './builder/dashboardnew/gadgets/to-do-chart/to-do-chart.component'; | ||||
| import { GridViewComponent } from './builder/dashboardnew/gadgets/grid-view/grid-view.component'; | ||||
| 
 | ||||
| import { DashboardrunnerComponent } from './builder/dashboardrunner/dashboardrunner.component'; | ||||
| import { DashrunnerallComponent } from './builder/dashboardrunner/dashrunnerall/dashrunnerall.component'; | ||||
| import { DashrunnerlineComponent } from './builder/dashboardrunner/dashrunnerline/dashrunnerline.component'; | ||||
| import { BarRunnerComponent } from './builder/dashboardrunner/dashrunnerline/bar-runner/bar-runner.component'; | ||||
| import { LineRunnerComponent } from './builder/dashboardrunner/dashrunnerline/line-runner/line-runner.component'; | ||||
| import { BubbleRunnerComponent } from './builder/dashboardrunner/dashrunnerline/bubble-runner/bubble-runner.component'; | ||||
| import { DashrunnerlineComponent } from './builder/dashboardrunner/dashrunnerline/dashrunnerline.component'; | ||||
| import { DoughnutRunnerComponent } from './builder/dashboardrunner/dashrunnerline/doughnut-runner/doughnut-runner.component'; | ||||
| import { GridRunnerComponent } from './builder/dashboardrunner/dashrunnerline/grid-runner/grid-runner.component'; | ||||
| import { LineRunnerComponent } from './builder/dashboardrunner/dashrunnerline/line-runner/line-runner.component'; | ||||
| import { PieRunnerComponent } from './builder/dashboardrunner/dashrunnerline/pie-runner/pie-runner.component'; | ||||
| import { PolarRunnerComponent } from './builder/dashboardrunner/dashrunnerline/polar-runner/polar-runner.component'; | ||||
| import { RadarRunnerComponent } from './builder/dashboardrunner/dashrunnerline/radar-runner/radar-runner.component'; | ||||
| import { ScatterRunnerComponent } from './builder/dashboardrunner/dashrunnerline/scatter-runner/scatter-runner.component'; | ||||
| import { TodoRunnerComponent } from './builder/dashboardrunner/dashrunnerline/todo-runner/todo-runner.component'; | ||||
| import { BubbleRunnerComponent } from './builder/dashboardrunner/dashrunnerline/bubble-runner/bubble-runner.component'; | ||||
| 
 | ||||
| import { ApiregisteryComponent } from './fnd/apiregistery/apiregistery.component'; | ||||
| 
 | ||||
| import { BulkimportComponent } from './datamanagement/bulkimport/bulkimport.component'; | ||||
| import { BulkimportaddComponent } from './datamanagement/bulkimport/bulkimportadd/bulkimportadd.component'; | ||||
| import { BulkimportallComponent } from './datamanagement/bulkimport/bulkimportall/bulkimportall.component'; | ||||
| import { BulkimporteditComponent } from './datamanagement/bulkimport/bulkimportedit/bulkimportedit.component'; | ||||
| import { BulkimporteditlineComponent } from './datamanagement/bulkimport/bulkimporteditline/bulkimporteditline.component'; | ||||
| import { BulkimportlineComponent } from './datamanagement/bulkimport/bulkimportline/bulkimportline.component'; | ||||
| import { DatamanagementComponent } from './datamanagement/datamanagement/datamanagement.component'; | ||||
| import { DatamananementworkflowComponent } from './datamanagement/datamananementworkflow/datamananementworkflow.component'; | ||||
| import { BulkimportComponent } from './datamanagement/bulkimport/bulkimport.component'; | ||||
| import { BulkimportallComponent } from './datamanagement/bulkimport/bulkimportall/bulkimportall.component'; | ||||
| import { BulkimportaddComponent } from './datamanagement/bulkimport/bulkimportadd/bulkimportadd.component'; | ||||
| import { BulkimporteditComponent } from './datamanagement/bulkimport/bulkimportedit/bulkimportedit.component'; | ||||
| import { BulkimportlineComponent } from './datamanagement/bulkimport/bulkimportline/bulkimportline.component'; | ||||
| import { BulkimporteditlineComponent } from './datamanagement/bulkimport/bulkimporteditline/bulkimporteditline.component'; | ||||
| import { MappingruleComponent } from './datamanagement/mappingrule/mappingrule.component'; | ||||
| import { MappingruleallComponent } from './datamanagement/mappingrule/mappingruleall/mappingruleall.component'; | ||||
| import { MappingruleaddComponent } from './datamanagement/mappingrule/mappingruleadd/mappingruleadd.component'; | ||||
| import { MappingruleallComponent } from './datamanagement/mappingrule/mappingruleall/mappingruleall.component'; | ||||
| import { MappingruleeditComponent } from './datamanagement/mappingrule/mappingruleedit/mappingruleedit.component'; | ||||
| import { QueryComponent } from './superadmin/query/query.component'; | ||||
| import { QueryaddComponent } from './superadmin/queryadd/queryadd.component'; | ||||
| import { QueryeditComponent } from './superadmin/queryedit/queryedit.component'; | ||||
| 
 | ||||
| @NgModule({ | ||||
|   declarations: [ | ||||
| @ -134,7 +118,7 @@ import { MappingruleeditComponent } from './datamanagement/mappingrule/mappingru | ||||
|     DashboardnewComponent, EditformnewdashComponent, EditnewdashComponent, ScheduleComponent, | ||||
|     DoughnutChartComponent, LineChartComponent, RadarChartComponent, BarChartComponent, BubbleChartComponent, DynamicChartComponent, ScatterChartComponent, PolarChartComponent, PieChartComponent, FinancialChartComponent, ToDoChartComponent, GridViewComponent, | ||||
|     DashrunnerlineComponent, BarRunnerComponent, LineRunnerComponent, DoughnutRunnerComponent, GridRunnerComponent, PieRunnerComponent, PolarRunnerComponent, RadarRunnerComponent, ScatterRunnerComponent, TodoRunnerComponent, BubbleRunnerComponent, | ||||
|     ReportBuildComponent, ReportbuildeditComponent, ReportbuildqueryComponent, ReportBuild2Component, ReportBuild2editComponent, | ||||
|     ReportBuildComponent, ReportbuildeditComponent, ReportbuildqueryComponent, ReportBuild2Component, ReportBuild2editComponent, QueryComponent, QueryaddComponent, QueryeditComponent, | ||||
|     ExtensionComponent, | ||||
|     AllextensionComponent, | ||||
|     AddextensionComponent, EditextensionComponent, ApiregisteryComponent, | ||||
| @ -145,8 +129,6 @@ import { MappingruleeditComponent } from './datamanagement/mappingrule/mappingru | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   ], | ||||
|   imports: [ | ||||
|     QRCodeModule, | ||||
|  | ||||
| @ -0,0 +1,146 @@ | ||||
| @import '@swimlane/ngx-datatable/index.css'; | ||||
| @import '@swimlane/ngx-datatable/themes/bootstrap.css'; | ||||
| @import '@swimlane/ngx-datatable/assets/icons.css'; | ||||
| .button1::after { | ||||
|   content: none; | ||||
| } | ||||
| 
 | ||||
| .button1:hover::after { | ||||
|   content: "ADD ROWS"; | ||||
| } | ||||
| 
 | ||||
| .delete, .heading { | ||||
|   text-align: center; | ||||
|   color: red; | ||||
| } | ||||
| 
 | ||||
| .bold { | ||||
|   font-weight: bold; | ||||
| } | ||||
| 
 | ||||
| .section p { | ||||
|   padding: 10px; | ||||
|   font-size: 18px; | ||||
| } | ||||
| 
 | ||||
| .clr-input { | ||||
|   color: #212529; | ||||
|   border: 1px solid #ced4da; | ||||
|   border-radius: 0.25rem; | ||||
|   padding: 0.75rem 0.75rem; | ||||
|   margin-top: 3px; | ||||
|   width: 100%; | ||||
|   margin-bottom: 10px; | ||||
| } | ||||
| 
 | ||||
| .required-field { | ||||
|   color: red; | ||||
|   font-size: 18px; | ||||
| } | ||||
| 
 | ||||
| input[type=text], textarea { | ||||
|   width: 100%; | ||||
|   padding: 15px 15px; | ||||
|   background-color: rgb(255, 255, 255); | ||||
|   display: inline-block; | ||||
|   border: 1px solid #ccc; | ||||
|   border-radius: 4px; | ||||
|   box-sizing: border-box; | ||||
| } | ||||
| 
 | ||||
| html { | ||||
|   /* make sure we use up the whole viewport */ | ||||
|   width: 100%; | ||||
|   min-height: 100vh; | ||||
| } | ||||
| 
 | ||||
| body { | ||||
|   width: 100%; | ||||
|   background-color: gray; | ||||
| } | ||||
| 
 | ||||
| ngx-datatable { | ||||
|   font-family: Metropolis, Avenir Next, Helvetica Neue, Arial, sans-serif; | ||||
|   font-size: 13px; | ||||
|   border: 1px solid #ccc; | ||||
|   border-radius: 2px; | ||||
|   padding: 0; | ||||
|   background-color: #fff; | ||||
| } | ||||
| ngx-datatable .datatable-header, ngx-datatable .datatable-footer { | ||||
|   font-size: 11px; | ||||
|   line-height: 18px; | ||||
|   font-weight: bold; | ||||
|   background-color: #fafafa; | ||||
| } | ||||
| ngx-datatable .datatable-header { | ||||
|   box-shadow: 0 2px 4px 0px #ccc; | ||||
| } | ||||
| ngx-datatable .datatable-header .datatable-header-cell { | ||||
|   line-height: 22px; | ||||
|   padding-left: 10px; | ||||
|   height: 22px; | ||||
| } | ||||
| ngx-datatable .datatable-header .datatable-header-cell:not(:first-child) { | ||||
|   border-left: 1px solid #ccc; | ||||
| } | ||||
| ngx-datatable .datatable-footer { | ||||
|   border-top: 1px solid #ccc; | ||||
| } | ||||
| ngx-datatable .datatable-footer .page-count { | ||||
|   margin: 10px; | ||||
| } | ||||
| ngx-datatable .datatable-footer .pages a { | ||||
|   padding: 8px; | ||||
|   color: inherit; | ||||
| } | ||||
| ngx-datatable .datatable-footer .pages.active a { | ||||
|   padding: 8px; | ||||
|   color: #007cbb; | ||||
|   background-color: rgb(221, 221, 221); | ||||
|   text-align: center; | ||||
| } | ||||
| ngx-datatable .datatable-header-inner { | ||||
|   padding: 12px; | ||||
| } | ||||
| ngx-datatable .datatable-body-cell { | ||||
|   padding: 8px 0 10px 20px; | ||||
|   border-top: 1px solid #ddd; | ||||
| } | ||||
| ngx-datatable .pager i { | ||||
|   font-size: 18px; | ||||
|   vertical-align: middle; | ||||
| } | ||||
| 
 | ||||
| .postColumn { | ||||
|   border: 1px solid #ccc; | ||||
|   width: 78%; | ||||
|   margin-left: 15px; | ||||
| } | ||||
| 
 | ||||
| .colName { | ||||
|   text-align: center; | ||||
|   padding: 5px; | ||||
| } | ||||
| 
 | ||||
| .colfields { | ||||
|   border: 1px solid black; | ||||
|   margin: 17px; | ||||
|   text-align: center; | ||||
|   padding: 3px; | ||||
| } | ||||
| 
 | ||||
| .fieldWrapper { | ||||
|   margin-top: 20px; | ||||
| } | ||||
| 
 | ||||
| .center { | ||||
|   text-align: center; | ||||
| } | ||||
| 
 | ||||
| select { | ||||
|   width: 100%; | ||||
|   padding: 5px 5px; | ||||
|   border: 1px solid #ccc; | ||||
|   border-radius: 4px; | ||||
| }/*# sourceMappingURL=query.component.css.map */ | ||||
| @ -0,0 +1 @@ | ||||
| {"version":3,"sources":["query.component.scss","query.component.css"],"names":[],"mappings":"AA8JQ,2CAAA;AACA,sDAAA;AACC,kDAAA;AA9JT;EACE,aAAA;ACEF;;ADAA;EACE,mBAAA;ACGF;;ADAA;EACE,kBAAA;EACA,UAAA;ACGF;;ADAA;EACE,iBAAA;ACGF;;ADCA;EAEE,aAAA;EACA,eAAA;ACCF;;ADEA;EACE,cAAA;EACA,yBAAA;EACA,sBAAA;EACA,wBAAA;EACA,eAAA;EACA,WAAA;EACA,mBAAA;ACCF;;ADWA;EACE,UAAA;EACF,eAAA;ACRA;;ADYA;EACE,WAAA;EACA,kBAAA;EAED,oCAAA;EACC,qBAAA;EACA,sBAAA;EACA,kBAAA;EACA,sBAAA;ACVF;;ADcA;EACI,2CAAA;EACA,WAAA;EACA,iBAAA;ACXJ;;ADaA;EACI,WAAA;EACA,sBAAA;ACVJ;;ADeA;EACE,uEAAA;EACA,eAAA;EACA,sBAAA;EACA,kBAAA;EACA,UAAA;EACA,sBAAA;ACZF;ADaE;EACE,eAAA;EACA,iBAAA;EACA,iBAAA;EACA,yBAAA;ACXJ;ADaE;EAEE,8BAAA;ACZJ;ADaI;EACE,iBAAA;EACA,kBAAA;EACA,YAAA;ACXN;ADcE;EACI,2BAAA;ACZN;ADeE;EACE,0BAAA;ACbJ;ADcI;EACE,YAAA;ACZN;ADcI;EACE,YAAA;EACA,cAAA;ACZN;ADcI;EACE,YAAA;EACA,cAAA;EACA,oCAAA;EACA,kBAAA;ACZN;ADgBE;EACE,aAAA;ACdJ;ADgBE;EACE,wBAAA;EACA,0BAAA;ACdJ;ADgBE;EACE,eAAA;EACA,sBAAA;ACdJ;;ADkBA;EACE,sBAAA;EACA,UAAA;EACA,iBAAA;ACfF;;ADiBA;EACE,kBAAA;EACA,YAAA;ACdF;;ADgBA;EACE,uBAAA;EACA,YAAA;EACA,kBAAA;EACA,YAAA;ACbF;;ADeA;EACE,gBAAA;ACZF;;ADcA;EACE,kBAAA;ACXF;;ADcA;EACE,WAAA;EACA,gBAAA;EACA,sBAAA;EACA,kBAAA;ACXF","file":"query.component.css"} | ||||
| @ -0,0 +1,637 @@ | ||||
| <ol class="breadcrumb breadcrumb-arrow font-trirong"> | ||||
|   <li><a href="javascript://" [routerLink]="['/cns-portal/dashboard/order']"><clr-icon shape="home"></clr-icon></a></li> | ||||
|   <li><a href="javascript://"><clr-icon shape="crown"></clr-icon>Super Admin</a></li> | ||||
|   <li><a href="javascript://"> Query</a></li> | ||||
| </ol> | ||||
| 
 | ||||
| <!-- <span style="float: right;"> | ||||
|   <ng-template #n2><button type="submit" class="btn btn-primary" (click)="onBack()"><clr-icon shape="angle-double"></clr-icon></button></ng-template> | ||||
|   <button *ngIf="!backQuery " type="submit" class="btn btn-primary" (click)="onBack()"><clr-icon shape="angle" direction="down "></clr-icon></button></span> | ||||
| <div *ngIf="backQuery"> --> | ||||
| <div class="container"> | ||||
| 
 | ||||
| 
 | ||||
|   <div class="clr-row"> | ||||
|     <div class="clr-col-8"> | ||||
|       <h3>SQL Worksheet- | ||||
|         <ng-template #no> <b>connection name</b></ng-template> | ||||
|         <b *ngIf="databaseName;else no" style="color:#0072a3 ;">{{databaseName}}</b> | ||||
|         <span class="label label-light-green p7" style="margin-top: .4em; display: inline; cursor: pointer;" | ||||
|           (click)="opendatabsemo()">switch</span> | ||||
|         <span class="label label-light-green p7" style="margin-top: .4em; display: inline; cursor: pointer;" | ||||
|           (click)="opencopym()">Add New</span> | ||||
|       </h3> | ||||
| 
 | ||||
|     </div> | ||||
| 
 | ||||
|     <div class="clr-col-4" style="text-align: right;"> | ||||
|       <button mat-raised-button class="btn btn-primary" (click)="addTab(selectAfterAdding.checked)"> | ||||
|         <clr-icon shape="plus"></clr-icon> new tab | ||||
|       </button> | ||||
|       <span #selectAfterAdding> </span> | ||||
|     </div> | ||||
|   </div> | ||||
| 
 | ||||
|   <clr-tabs [selectedIndex]="selected.value" (selectedIndexChange)="selected.setValue($event)"> | ||||
|     <clr-tab *ngFor="let tab of tabs; let index = index" [label]="tab"> | ||||
|       <button clrTabLink>{{tab}}{{index+1}}</button> | ||||
|       <clr-tab-content *clrIfActive> | ||||
| 
 | ||||
|         <div class="clr-row"> | ||||
|           <div class="clr-col-8"> | ||||
|             <!-- <h5> Contents for {{tab}}{{index+1}} tab </h5> --> | ||||
|             <div class="clr-row" style="padding-left: 10px;"> | ||||
|             <div> | ||||
|               <!-- <label for="tags"> | ||||
|                     <span class="label label-light-green p7" style="margin-top: .4em; display: inline; cursor: pointer;" (click)="opentablemod()">Add Table</span> | ||||
|                   </label> --> | ||||
|               <!-- <textarea type="text" id="sql_query" name="sql_query" cols="10" rows="3"   placeholder="select table here" | ||||
|                  name="selectedtable" [(ngModel)]="selectedtable" > | ||||
|                   </textarea> --> | ||||
|                   | ||||
|                 <clr-combobox-container> | ||||
|                   <label>Table List</label> | ||||
|                   <clr-combobox [(ngModel)]="selectedtable" name="selectedtable" clrMulti="true" | ||||
|                    required> | ||||
|                     | ||||
|                     <ng-container *clrOptionSelected="let selected;let i = alias"> | ||||
|                       {{selected}} <b>{{ getAliasedColumn(selected) }}</b> | ||||
|                      | ||||
|                         <!-- <span *ngFor="let data of TableData"> | ||||
|                           <b *ngIf="data.tables == selected">{{data.alias}}</b></span> --> | ||||
|                     </ng-container> | ||||
|                     <clr-options> | ||||
|                       <clr-option *clrOptionItems="let state of tableList" [clrValue]="state"> | ||||
|                         {{state}} | ||||
|                       </clr-option> | ||||
|                     </clr-options> | ||||
|                   </clr-combobox> | ||||
|                 </clr-combobox-container> | ||||
| 
 | ||||
|                 <!-- <select [(ngModel)]="selectedtable" name="selectedtable" (change)="opentcolmod($event.target.value)" class="clr-dropdown"> | ||||
|                   <option value="null">Choose Data Store</option> | ||||
|                   <option *ngFor="let sub of tableList" [value]="sub">{{sub}}</option> | ||||
|                 </select> --> | ||||
|             </div> | ||||
|             <div style="padding-top: 12px; padding-bottom: 0px;"><br><button class="btn btn-icon btn-sm btn-primary" style="margin-left: 5px;" | ||||
|               (click)="opentcolmod()"><clr-icon shape="step-forward-2"></clr-icon></button></div> | ||||
|               <div style="padding-top: 12px; padding-bottom: 0px;"><p *ngIf="msg" style="color: red;">{{msg}} </p></div> | ||||
| 
 | ||||
|           </div> | ||||
|           <div class="clr-row" style="padding-left: 10px;"> | ||||
|             <div> | ||||
|               <!-- <label for="tags" class="req"> <span class="label label-light-green p7" style="margin-top: .4em; display: inline; cursor: pointer;"  (click)="opentcolmod()" >Add Select String</span></label> --> | ||||
|               | ||||
|               <!-- <textarea type="text" id="sql_query" name="sql_query" cols="10" rows="3"  placeholder="select string here" | ||||
|                   name="selectedcol" [(ngModel)]="selectedcol" > | ||||
|                   </textarea> --> | ||||
|               <clr-combobox-container> | ||||
|                 <label>Column List</label> | ||||
|                 <clr-combobox [(ngModel)]="selectedcol" name="selectedcol" clrMulti="true" | ||||
|                  required> | ||||
|                   <ng-container *clrOptionSelected="let selected"> | ||||
|                     <ng-container *ngIf="selected.indexOf('.') !== -1; else noDot"> | ||||
|                       <span class="bold">{{ selected.substr(0, selected.indexOf('.')) }}</span>{{ selected.substr(selected.indexOf('.')) }} | ||||
|                     </ng-container> | ||||
|                     <ng-template #noDot> | ||||
|                       {{selected}} | ||||
|                       </ng-template> | ||||
|                   </ng-container> | ||||
|                   <clr-options> | ||||
|                     <clr-option *clrOptionItems="let state of collist" [clrValue]="state"> | ||||
|                       {{state}} | ||||
|                     </clr-option> | ||||
|                   </clr-options> | ||||
|                 </clr-combobox> | ||||
|               </clr-combobox-container> | ||||
|                | ||||
|               <!-- <button class="btn btn-icon btn-sm btn-primary" style="margin-left: 5px;" (click)="opentcolmod1()"><clr-icon shape="step-forward-2"></clr-icon></button> --> | ||||
|             </div> | ||||
|             <div style="padding-top: 12px; padding-bottom: 0px;"><br><button class="btn btn-icon btn-sm btn-primary" style="margin-left: 5px;" (click)="colname()"><clr-icon shape="step-forward-2"></clr-icon></button></div> | ||||
|             <div style="padding-top: 12px; padding-bottom: 0px;"><p *ngIf="msg1" style="color: red;">{{msg1}} </p></div> | ||||
|             </div> | ||||
|             <div class="clr-row" style="padding-left: 10px;"> | ||||
|               <div> | ||||
|               <!-- <label for="tags" class="req"> | ||||
|                     <span class="label label-light-green p7" style="margin-top: .4em; display: inline; cursor: pointer;"  (click)="opentcolmod1()" >Add Condition</span> | ||||
|                   </label> --> | ||||
|               | ||||
|               <!-- <textarea type="text" id="sql_query" name="sql_query" cols="10" rows="3"  placeholder="select string here" | ||||
|                   name="selectedcol" [(ngModel)]="selectedcol1" > | ||||
|                   </textarea> --> | ||||
|               <clr-combobox-container> | ||||
|                 <label>Condition List</label> | ||||
|                 <clr-combobox [(ngModel)]="selectedcol1" name="selectedcol1" clrMulti="true" | ||||
|                  required> | ||||
|                   <ng-container *clrOptionSelected="let selected"> | ||||
|                     <span *ngFor="let data of conditionData"> | ||||
|                     <b *ngIf="data.fields_name == selected">{{data.andor}}</b></span>  | ||||
|                     <ng-container *ngIf="selected.indexOf('.') !== -1; else noDot"> | ||||
|                       <span class="bold">{{ selected.substr(0, selected.indexOf('.')) }}</span>{{ selected.substr(selected.indexOf('.')) }} | ||||
|                     </ng-container> | ||||
|                     <ng-template #noDot> | ||||
|                       {{selected}} | ||||
|                     </ng-template> | ||||
|                     <span *ngFor="let data of conditionData"> | ||||
|                     <b *ngIf="data.fields_name == selected">{{data.condition}} {{data.value}}</b></span> | ||||
|                    | ||||
|                   </ng-container> | ||||
|                   <clr-options> | ||||
|                     <clr-option *clrOptionItems="let state of collist" [clrValue]="state"> | ||||
|                       {{state}} | ||||
|                     </clr-option> | ||||
|                   </clr-options> | ||||
|                 </clr-combobox> | ||||
|                 <!-- <clr-control-helper>Helper text</clr-control-helper> --> | ||||
|                 <!-- <clr-control-error>Select one mandatory</clr-control-error> --> | ||||
|               </clr-combobox-container> | ||||
|             </div> | ||||
|             <div style="padding-top: 12px; padding-bottom: 0px;"><br><button class="btn btn-icon btn-sm btn-primary" style="margin-left: 5px;" (click)="filter(selectedcol1)"><clr-icon shape="filter"></clr-icon></button></div> | ||||
|             <!-- <div style="padding-top: 12px; padding-bottom: 0px;"><p *ngIf="msg" style="color: red;">{{msg}} </p></div> --> | ||||
|             </div> | ||||
|           </div> | ||||
| 
 | ||||
|           <div class="clr-col-4" style="text-align: right;"> | ||||
|             <button mat-raised-button class="btn btn-primary" [disabled]="tabs.length === 1" (click)="removeTab(index)"> | ||||
|               <clr-icon shape="trash"></clr-icon> {{tab}}{{index+1}} | ||||
|             </button> | ||||
|           </div> | ||||
|         </div> | ||||
|         <div class="container" style="margin-top: 20px;"> | ||||
|           <div class="progressform"> | ||||
|             <div class="clr-row"> | ||||
|             </div> | ||||
|             <form [formGroup]="entryForm"> | ||||
|               <div class="clr-row"> | ||||
|                 <div class="clr-col-md-6 clr-col-sm-12"> | ||||
|                   <label for="tags"> <span class="label label-light-green p7" | ||||
|                       style="margin-top: .4em; display: inline; cursor: pointer;" (click)="openquerymod()">Add | ||||
|                       Query</span> | ||||
|                   </label> | ||||
|                   <textarea type="text" id="sql_query" name="sql_query" formControlName="sql_query" cols="10" rows="3" | ||||
|                     [(ngModel)]="selectedquery" placeholder="Enter Query here"> | ||||
|                   </textarea> | ||||
|                 </div> | ||||
|               </div> | ||||
|             </form> | ||||
|             <span style="float: right;"> | ||||
|               <button type="submit" class="btn btn-primary" (click)="savequery()">SAVE QUERY</button> | ||||
|               <button  type="submit" class="btn btn-primary" (click)="onSubmit()">RUN</button> | ||||
|             </span><br> | ||||
|             <div> | ||||
|               <h4 style="font-weight: 300;display: inline;">Response</h4> | ||||
|             </div> | ||||
|             <hr> | ||||
|             <div class="clr-row" style="padding-top: 10px;"> | ||||
| 
 | ||||
|               <!-- <ngx-datatable | ||||
|                      style='width:fit-content;' | ||||
|                      [rows]="rows" | ||||
|                      [columns]="columns" | ||||
|                      class="bootstrap" | ||||
|                     [loadingIndicator]="loadingIndicator" | ||||
|                     [headerHeight]="40" | ||||
|                     [summaryRow]="true" | ||||
|                     [summaryPosition]="'bottom'" | ||||
|                     [scrollbarV]="true" | ||||
|                     [limit]="10" | ||||
|                     [rowHeight]="40" | ||||
|                       [reorderable]="reorderable" > | ||||
|                  </ngx-datatable> --> | ||||
|             </div> | ||||
|           </div> | ||||
|         </div><br> | ||||
|       </clr-tab-content> | ||||
|     </clr-tab> | ||||
|   </clr-tabs> | ||||
| </div> | ||||
| <!-- </div> --> | ||||
| <div class="container" style=" min-width: 1200px; max-height: 500px !important; overflow: auto;"> | ||||
| <table class="table" > | ||||
|   <thead> | ||||
|     <tr> | ||||
|       <th *ngFor="let co of getHeaders();let i=index">{{co}}</th> | ||||
|     </tr> | ||||
|   </thead> | ||||
|   <tbody> | ||||
|     <tr *ngFor="let item of rows"> | ||||
|       <td *ngFor="let key of getHeaders()">{{item[key]}}</td> | ||||
|     </tr> | ||||
|   </tbody> | ||||
| </table> | ||||
| </div> | ||||
| 
 | ||||
| <!-- <clr-datagrid [clrDgLoading]="loading"> | ||||
|     <clr-dg-placeholder><ng-template #loadingSpinner><clr-spinner>Loading ... </clr-spinner></ng-template> | ||||
|       <div *ngIf="errorco;else loadingSpinner">{{errorco}}</div></clr-dg-placeholder> | ||||
|     <clr-dg-column  *ngFor="let co of getHeaders()"> | ||||
|       {{co}} | ||||
|     </clr-dg-column> | ||||
|       <clr-dg-row  *ngFor="let item of rows"> | ||||
|       <clr-dg-cell *ngFor="let key of getHeaders()">{{item[key]}}</clr-dg-cell> | ||||
|        </clr-dg-row> | ||||
|     <clr-dg-footer> | ||||
|       <clr-dg-pagination #pagination [clrDgPageSize]="5"> | ||||
|         <clr-dg-page-size [clrPageSizeOptions]="[10,20,50,100]">Record per page</clr-dg-page-size> | ||||
|         {{pagination.firstItem + 1}} - {{pagination.lastItem + 1}} | ||||
|         of {{pagination.totalItems}} Records | ||||
|       </clr-dg-pagination> | ||||
|     </clr-dg-footer> | ||||
|   </clr-datagrid> --> | ||||
| 
 | ||||
| <clr-modal [(clrModalOpen)]="database" [clrModalSize]="'xl'"> | ||||
|   <h3 class="modal-title"><b>Select Database</b></h3> | ||||
|   <div class="modal-body"> | ||||
|     <div class="clr-row"> | ||||
|       <div class="clr-col-md-12 clr-col-sm-12" style="margin-top: 8px;"> | ||||
|         <input id="data" type="text" placeholder="Enter search Criteria" class="clr-input" name="searchtable" | ||||
|           [(ngModel)]="searchdatabase"> | ||||
|       </div> | ||||
|     </div> | ||||
|     <clr-datagrid [clrDgLoading]="loading"> | ||||
|       <clr-dg-placeholder><ng-template #loadingSpinner><clr-spinner>Loading ... </clr-spinner></ng-template> | ||||
|         <div *ngIf="errorco;else loadingSpinner">{{errorco}}</div> | ||||
|       </clr-dg-placeholder> | ||||
|       <clr-dg-column [clrDgField]="'id'"> <ng-container *clrDgHideableColumn="{hidden: false}"> | ||||
|           No | ||||
|         </ng-container></clr-dg-column> | ||||
|       <clr-dg-column [clrDgField]="'name'"> <ng-container *clrDgHideableColumn="{hidden: false}"> | ||||
|          Database Name | ||||
|         </ng-container></clr-dg-column> | ||||
|       <clr-dg-column [clrDgField]="'description'"> <ng-container *clrDgHideableColumn="{hidden: false}"> | ||||
|         Description | ||||
|         </ng-container></clr-dg-column> | ||||
|       <clr-dg-column [clrDgField]="'active'"> <ng-container *clrDgHideableColumn="{hidden: false}"> | ||||
|         Active | ||||
|         </ng-container></clr-dg-column> | ||||
|       <clr-dg-column [clrDgField]="'type'"> <ng-container *clrDgHideableColumn="{hidden: false}"> | ||||
|           Type | ||||
|         </ng-container></clr-dg-column> | ||||
|         <clr-dg-column> <ng-container *clrDgHideableColumn="{hidden: false}"> <clr-icon shape="bars"></clr-icon>  | ||||
|           Action | ||||
|         </ng-container></clr-dg-column> | ||||
|       <clr-dg-row *ngFor="let user of databaselist | filter:searchdatabase;let i = index"> | ||||
|         <clr-dg-cell>{{i+1}}</clr-dg-cell> | ||||
|         <clr-dg-cell style="color: rgb(108, 108, 194); cursor: pointer;" (click)="databasename(user)">{{user.name}}</clr-dg-cell> | ||||
|         <clr-dg-cell>{{user.description}}</clr-dg-cell> | ||||
|         <clr-dg-cell>{{user.active}}</clr-dg-cell> | ||||
|         <clr-dg-cell id="word">{{user.type}}</clr-dg-cell> | ||||
|         <clr-dg-cell> | ||||
|           <span style="cursor: pointer;padding: 10px; "><clr-icon shape="trash" (click)="onDelete(user)" class="red is-error" style="color: red;"></clr-icon></span> | ||||
|           <!-- <span style="cursor: pointer;"><clr-icon shape="help" class="success" style="color: rgb(0, 130, 236);;"></clr-icon></span> --> | ||||
|           </clr-dg-cell> | ||||
|         <clr-dg-action-overflow> | ||||
| 
 | ||||
|           <button class="action-item" (click)="goToEdit(user.id)">Edit <clr-icon shape="edit" class="is-error"></clr-icon></button> | ||||
|           <!-- <button class="action-item" (click)="onDelete(user)">Delete<clr-icon shape="trash" class="is-error"></clr-icon></button> --> | ||||
|           </clr-dg-action-overflow> | ||||
|       </clr-dg-row> | ||||
| 
 | ||||
|       <clr-dg-footer> | ||||
|         <clr-dg-pagination #pagination [clrDgPageSize]="10"> | ||||
|           <clr-dg-page-size [clrPageSizeOptions]="[10,20,50,100]">Record per page</clr-dg-page-size> | ||||
|           {{pagination.firstItem + 1}} - {{pagination.lastItem + 1}} | ||||
|           of {{pagination.totalItems}} Records | ||||
|         </clr-dg-pagination> | ||||
|       </clr-dg-footer> | ||||
|     </clr-datagrid> | ||||
|   </div> | ||||
| </clr-modal> | ||||
| 
 | ||||
| <clr-modal [(clrModalOpen)]="table" [clrModalSize]="'lg'"> | ||||
|   <h3 class="modal-title"><b>Select From Table List:</b></h3> | ||||
|   <div class="modal-body"> | ||||
|     <div class="clr-row"> | ||||
|       <div class="clr-col-md-12 clr-col-sm-12" style="margin-top: 8px;"> | ||||
|         <input id="data" type="text" placeholder="Enter search Criteria" class="clr-input" name="searchtable" | ||||
|           [(ngModel)]="searchtable"> | ||||
|       </div> | ||||
|     </div> | ||||
|     <clr-datagrid [clrDgLoading]="loading"> | ||||
|       <clr-dg-placeholder><ng-template #loadingSpinner><clr-spinner>Loading ... </clr-spinner></ng-template> | ||||
|         <div *ngIf="errortb;else loadingSpinner">{{errortb}}</div> | ||||
|       </clr-dg-placeholder> | ||||
|       <clr-dg-column [clrDgField]="'id'"> <ng-container *clrDgHideableColumn="{hidden: false}"> | ||||
|           No | ||||
|         </ng-container></clr-dg-column> | ||||
|       <clr-dg-column [clrDgField]="'tableList'"> <ng-container *clrDgHideableColumn="{hidden: false}"> | ||||
|           Table Name | ||||
|         </ng-container></clr-dg-column> | ||||
|       <clr-dg-row *ngFor="let user of tableList | filter:searchtable;let i = index" [clrDgItem]="user"> | ||||
|         <clr-dg-cell>{{i+1}}</clr-dg-cell> | ||||
|         <clr-dg-cell style="color: rgb(108, 108, 194);" (click)="tablename(user)">{{user}}</clr-dg-cell> | ||||
|       </clr-dg-row> | ||||
| 
 | ||||
|       <clr-dg-footer> | ||||
|         <clr-dg-pagination #pagination [clrDgPageSize]="10"> | ||||
|           <clr-dg-page-size [clrPageSizeOptions]="[10,20,50,100]">Users per page</clr-dg-page-size> | ||||
|           {{pagination.firstItem + 1}} - {{pagination.lastItem + 1}} | ||||
|           of {{pagination.totalItems}} Record | ||||
|         </clr-dg-pagination> | ||||
|       </clr-dg-footer> | ||||
|     </clr-datagrid> | ||||
|   </div> | ||||
| </clr-modal> | ||||
| 
 | ||||
| <clr-modal [(clrModalOpen)]="col" [clrModalSize]="'lg'"> | ||||
|   <h3 class="modal-title"><b>Select From Tables Columns List:</b></h3> | ||||
|   <div class="modal-body"> | ||||
|     <div class="clr-row"> | ||||
|       <div class="clr-col-md-12 clr-col-sm-12" style="margin-top: 8px;"> | ||||
|         <input id="data" type="text" placeholder="Enter search Criteria" class="clr-input" name="searchtable" | ||||
|           [(ngModel)]="searchcol"> | ||||
|       </div> | ||||
|     </div> | ||||
|     <clr-datagrid [clrDgLoading]="loading"> | ||||
|       <clr-dg-placeholder><ng-template #loadingSpinner><clr-spinner>Loading ... </clr-spinner></ng-template> | ||||
|         <div *ngIf="errorcl;else loadingSpinner">{{errorcl}}</div> | ||||
|       </clr-dg-placeholder> | ||||
|       <clr-dg-column [clrDgField]="'id'"> <ng-container *clrDgHideableColumn="{hidden: false}"> | ||||
|           No | ||||
|         </ng-container></clr-dg-column> | ||||
|       <clr-dg-column [clrDgField]="'tableList'"> <ng-container *clrDgHideableColumn="{hidden: false}"> | ||||
|           Column Name | ||||
|         </ng-container></clr-dg-column> | ||||
|       <clr-dg-row *ngFor="let user of collist | filter:searchcol;let i = index"> | ||||
|         <clr-dg-cell>{{i+1}}</clr-dg-cell> | ||||
|         <clr-dg-cell style="color: rgb(108, 108, 194);" (click)="colname(user)">{{user}}</clr-dg-cell> | ||||
|       </clr-dg-row> | ||||
| 
 | ||||
|       <clr-dg-footer> | ||||
|         <clr-dg-pagination #pagination [clrDgPageSize]="10"> | ||||
|           <clr-dg-page-size [clrPageSizeOptions]="[10,20,50,100]">Record per page</clr-dg-page-size> | ||||
|           {{pagination.firstItem + 1}} - {{pagination.lastItem + 1}} | ||||
|           of {{pagination.totalItems}} Records | ||||
|         </clr-dg-pagination> | ||||
|       </clr-dg-footer> | ||||
|     </clr-datagrid> | ||||
|   </div> | ||||
| </clr-modal> | ||||
| 
 | ||||
| <clr-modal [(clrModalOpen)]="col1" [clrModalSize]="'lg'"> | ||||
|   <h3 class="modal-title"><b>Select From Tables Columns List:</b></h3> | ||||
|   <div class="modal-body"> | ||||
|     <div class="clr-row"> | ||||
|       <div class="clr-col-md-12 clr-col-sm-12" style="margin-top: 8px;"> | ||||
|         <input id="data" type="text" placeholder="Enter search Criteria" class="clr-input" name="searchtable" | ||||
|           [(ngModel)]="searchcol"> | ||||
|       </div> | ||||
|     </div> | ||||
|     <clr-datagrid [clrDgLoading]="loading"> | ||||
|       <clr-dg-placeholder><clr-spinner [clrMedium]="true">Loading ...</clr-spinner></clr-dg-placeholder> | ||||
|       <clr-dg-column [clrDgField]="'id'"> <ng-container *clrDgHideableColumn="{hidden: false}"> | ||||
|           No | ||||
|         </ng-container></clr-dg-column> | ||||
|       <clr-dg-column [clrDgField]="'tableList'"> <ng-container *clrDgHideableColumn="{hidden: false}"> | ||||
|           Column Name | ||||
|         </ng-container></clr-dg-column> | ||||
|       <clr-dg-row *ngFor="let user of collist | filter:searchcol;let i = index"> | ||||
|         <clr-dg-cell>{{i+1}}</clr-dg-cell> | ||||
|         <clr-dg-cell style="color: rgb(108, 108, 194);" (click)="colname1(user)">{{user}}</clr-dg-cell> | ||||
|       </clr-dg-row> | ||||
| 
 | ||||
|       <clr-dg-footer> | ||||
|         <clr-dg-pagination #pagination [clrDgPageSize]="10"> | ||||
|           <clr-dg-page-size [clrPageSizeOptions]="[10,20,50,100]">Record per page</clr-dg-page-size> | ||||
|           {{pagination.firstItem + 1}} - {{pagination.lastItem + 1}} | ||||
|           of {{pagination.totalItems}} Records | ||||
|         </clr-dg-pagination> | ||||
|       </clr-dg-footer> | ||||
|     </clr-datagrid> | ||||
|   </div> | ||||
| </clr-modal> | ||||
| 
 | ||||
| <clr-modal [(clrModalOpen)]="query" [clrModalSize]="'lg'"> | ||||
|   <h3 class="modal-title"><b>Select Query:</b></h3> | ||||
|   <div class="modal-body"> | ||||
|     <div class="clr-row"> | ||||
|       <div class="clr-col-md-12 clr-col-sm-12" style="margin-top: 8px;"> | ||||
|         <input id="data" type="text" placeholder="Enter search Criteria" class="clr-input" name="searchtable" | ||||
|           [(ngModel)]="searchquery"> | ||||
|       </div> | ||||
|     </div> | ||||
|     <clr-datagrid [clrDgLoading]="loading"> | ||||
|       <clr-dg-placeholder><clr-spinner [clrMedium]="true">Loading ...</clr-spinner></clr-dg-placeholder> | ||||
|       <clr-dg-column [clrDgField]="'id'"> <ng-container *clrDgHideableColumn="{hidden: false}"> | ||||
|           No | ||||
|         </ng-container></clr-dg-column> | ||||
|       <clr-dg-column [clrDgField]="'query'"> <ng-container *clrDgHideableColumn="{hidden: false}"> | ||||
|           Query | ||||
|         </ng-container></clr-dg-column> | ||||
| 
 | ||||
|       <clr-dg-row *ngFor="let user of querydata | filter:searchquery;let i = index"> | ||||
|         <clr-dg-cell>{{i+1}}</clr-dg-cell> | ||||
|         <clr-dg-cell style="color: rgb(108, 108, 194);" | ||||
|           (click)="selectquery(user.sql_query)">{{user.sql_query}}</clr-dg-cell> | ||||
| 
 | ||||
|       </clr-dg-row> | ||||
| 
 | ||||
|       <clr-dg-footer> | ||||
|         <clr-dg-pagination #pagination [clrDgPageSize]="10"> | ||||
|           <clr-dg-page-size [clrPageSizeOptions]="[10,20,50,100]">Record per page</clr-dg-page-size> | ||||
|           {{pagination.firstItem + 1}} - {{pagination.lastItem + 1}} | ||||
|           of {{pagination.totalItems}} Records | ||||
|         </clr-dg-pagination> | ||||
|       </clr-dg-footer> | ||||
|     </clr-datagrid> | ||||
|   </div> | ||||
| </clr-modal> | ||||
| 
 | ||||
| <clr-modal [(clrModalOpen)]="addmodal" [clrModalSize]="'lg'" [clrModalStaticBackdrop]="true"> | ||||
|   <h3 class="modal-title"> Create New</h3> | ||||
|   <div class="modal-body"> | ||||
|     <form [formGroup]="addForm" (ngSubmit)="onCreate()"> | ||||
|       <div class="clr-row"> | ||||
|         <div class="clr-col-md-6 clr-col-sm-12"> | ||||
|           <label>Conn_String<span class="required-field">*</span></label> | ||||
|           <input type="text" formControlName="conn_string" class="clr-input"> | ||||
|         </div> | ||||
|         <div class="clr-col-md-6 clr-col-sm-12"> | ||||
|           <label>Username<span class="required-field">*</span></label> | ||||
|           <input type="text" formControlName="username" class="clr-input"> | ||||
|         </div> | ||||
|       </div> | ||||
|       <div class="clr-row"> | ||||
|         <div class="clr-col-md-6 clr-col-sm-12"> | ||||
|           <label>Password<span class="required-field">*</span></label> | ||||
|           <input type="text" formControlName="password" class="clr-input"> | ||||
|         </div> | ||||
|         <div class="clr-col-md-6 clr-col-sm-12"> | ||||
|           <label>Driver_class_name<span class="required-field">*</span></label> | ||||
|           <input type="text" formControlName="driver_class_name" class="clr-input"> | ||||
|         </div> | ||||
|       </div> | ||||
|       <div class="modal-footer"> | ||||
|         <button type="button" class="btn btn-outline" (click)="addmodal = false">Cancel</button> | ||||
|         <button type="submit" class="btn btn-primary">Add</button> | ||||
|       </div> | ||||
|     </form> | ||||
|   </div> | ||||
| </clr-modal> | ||||
| <clr-modal [(clrModalOpen)]="filterModel" [clrModalSize]="'lg'" [clrModalStaticBackdrop]="true"> | ||||
|   <h3 class="modal-title"> Condition Table</h3> | ||||
|   <div class="modal-body"> | ||||
|     <form> | ||||
| 
 | ||||
| 
 | ||||
|       <div class="clr-row fieldWrapper" > | ||||
|           <div class="clr-col-12"> | ||||
|               <table class="table table-striped table-bordered" style="margin-top: 0px;"> | ||||
|                   <thead> | ||||
|                       <tr> | ||||
|                           <th>ANDOR</th> | ||||
|                           <th>FIELD NAME</th> | ||||
|                           <th>CONDITION</th> | ||||
|                           <th>VALUE</th> | ||||
|                           <th class="right" style="width:125px;">Action</th> | ||||
|                       </tr> | ||||
|                   </thead> | ||||
|                   <tbody> | ||||
|                       <tr  *ngFor="let data of conditionData; let i = index"> | ||||
|                           <td ><select colspan="2" [(ngModel)]="data.andor" [ngModelOptions]="{standalone: true}" name="andor" class="clr-dropdown"> | ||||
|                               <option [ngValue]="null">Select Values</option> | ||||
|                               <option *ngFor="let sub of andor" [ngValue]="sub">{{sub}}</option> | ||||
|                               </select> | ||||
|                           </td> | ||||
|                           <!-- <td><input type="text" colspan="2"  [(ngModel)]="data.alias" [ngModelOptions]="{standalone: true}" name="alias" class="clr-input"/></td> --> | ||||
| 
 | ||||
|                           <td><select colspan="2"  [(ngModel)]="data.fields_name" [ngModelOptions]="{standalone: true}" name="fields_name" class="clr-dropdown"> | ||||
|                               <option  [ngValue]="null">Select Field Name</option> | ||||
|                               <!-- <option *ngFor="let sub of sourceTable" [ngValue]="sub">{{sub}}</option> --> | ||||
|                               <option *ngFor="let item of collist" [ngValue]="item">{{item}}</option> | ||||
| 
 | ||||
|                               </select> | ||||
|                           </td> | ||||
|                           <td> | ||||
|                            <select colspan="2" [(ngModel)]="data.condition" [ngModelOptions]="{standalone: true}" name="condition" class="clr-dropdown"> | ||||
|                               <option  [ngValue]="null">Select Values</option> | ||||
|                               <option *ngFor="let sub of condition" [ngValue]="sub">{{sub}}</option> | ||||
|                               </select> | ||||
|                           </td> | ||||
|                           <td><input type="text"   [(ngModel)]="data.value" [ngModelOptions]="{standalone: true}" name="value" class="clr-input"/></td> | ||||
|                           <td style="width:40px;"> | ||||
|                               <a (click)="deleteRow(i)"> | ||||
|                                   <clr-icon shape="trash" class="is-error"></clr-icon> | ||||
|                               </a> | ||||
|                           </td> | ||||
|                       </tr> | ||||
|    | ||||
|                   </tbody> | ||||
|                   <button type="button" class="btn btn-primary button1" (click)="onAddLines()"> | ||||
|                       <clr-icon shape="plus"></clr-icon> | ||||
|                   </button> | ||||
|               </table> | ||||
|           </div> | ||||
|       </div> | ||||
|    | ||||
|       <div class="center"> | ||||
|           <button type="button" class="btn btn-outline" (click)="filterModel = false">Cancel</button> | ||||
|           <button type="submit" form-control class="btn btn-primary" (click)="onSelected()">Select</button> | ||||
|           <!-- <button type="button" form-control class="btn btn-primary" (click)="back()">Back</button> --> | ||||
|       </div> | ||||
|   </form> | ||||
|   </div> | ||||
| </clr-modal> | ||||
| 
 | ||||
| <clr-modal [(clrModalOpen)]="columnModal" [clrModalSize]="'lg'" [clrModalStaticBackdrop]="true"> | ||||
|   <h3 class="modal-title"> Column Table</h3> | ||||
|   <div class="modal-body"> | ||||
|     <form> | ||||
| 
 | ||||
| 
 | ||||
|       <div class="clr-row fieldWrapper" > | ||||
|           <div class="clr-col-12"> | ||||
|               <table class="table table-striped table-bordered" style="margin-top: 0px;"> | ||||
|                   <thead> | ||||
|                       <tr> | ||||
|                           <th>Column</th> | ||||
|                           <th>Alias</th> | ||||
|                           <th class="right" style="width:125px;">Action</th> | ||||
|                       </tr> | ||||
|                   </thead> | ||||
|                   <tbody> | ||||
|                       <tr  *ngFor="let data of columnData; let i = index"> | ||||
|                           <td > | ||||
|                               <input type="text"  [(ngModel)]="data.columns" [ngModelOptions]="{standalone: true}" name="columns" class="clr-input" readonly/> | ||||
|                           <td><input type="text"   [(ngModel)]="data.alias" [ngModelOptions]="{standalone: true}" name="alias" class="clr-input"/></td> | ||||
|                           <td style="width:40px;"> | ||||
|                               <a (click)="deleteColRow(i)"> | ||||
|                                   <clr-icon shape="trash" class="is-error"></clr-icon> | ||||
|                               </a> | ||||
|                           </td> | ||||
|                       </tr> | ||||
|    | ||||
|                   </tbody> | ||||
|                   <button type="button" class="btn btn-primary button1" (click)="onAddColLines()"> | ||||
|                       <clr-icon shape="plus"></clr-icon> | ||||
|                   </button> | ||||
|               </table> | ||||
|           </div> | ||||
|       </div> | ||||
|    | ||||
|       <div class="center"> | ||||
|           <button type="submit" form-control class="btn btn-primary" (click)="onColSelected()">Select</button> | ||||
|           <!-- <button type="button" form-control class="btn btn-primary" (click)="back()">Back</button> --> | ||||
|       </div> | ||||
|   </form> | ||||
|   </div> | ||||
| </clr-modal> | ||||
| 
 | ||||
| <!-- <clr-modal [(clrModalOpen)]="tableModal" [clrModalSize]="'lg'" [clrModalStaticBackdrop]="true"> | ||||
|   <h3 class="modal-title"> Condition Table</h3> | ||||
|   <div class="modal-body"> | ||||
|     <form> | ||||
| 
 | ||||
| 
 | ||||
|       <div class="clr-row fieldWrapper" > | ||||
|           <div class="clr-col-12"> | ||||
|               <table class="table table-striped table-bordered" style="margin-top: 0px;"> | ||||
|                   <thead> | ||||
|                       <tr> | ||||
|                           <th>Table Name</th> | ||||
|                           <th>Alias</th> | ||||
|                           <th></th> | ||||
|                           <th class="right" style="width:125px;">Action</th> | ||||
|                       </tr> | ||||
|                   </thead> | ||||
|                   <tbody> | ||||
|                       <tr  *ngFor="let data of TableData; let i = index"> | ||||
|                           <td > | ||||
|                               <input type="text"  [(ngModel)]="data.tables" [ngModelOptions]="{standalone: true}" name="columns" class="clr-input" readonly/> | ||||
|                           <td><input type="text"   [(ngModel)]="data.alias" [ngModelOptions]="{standalone: true}" name="alias" class="clr-input"/></td> | ||||
|                           <td><button type="button" class="btn btn-primary" (click)="onTableSelected(data)">Add</button></td> | ||||
|                           <td style="width:40px;"> | ||||
|                               <a (click)="deleteTableRow(i)"> | ||||
|                                   <clr-icon shape="trash" class="is-error"></clr-icon> | ||||
|                               </a> | ||||
|                           </td> | ||||
|                       </tr> | ||||
|    | ||||
|                   </tbody> | ||||
|                   <button type="button" class="btn btn-primary button1" (click)="onAddTableLines()"> | ||||
|                       <clr-icon shape="plus"></clr-icon> | ||||
|                   </button> | ||||
|               </table> | ||||
|           </div> | ||||
|       </div> | ||||
|    | ||||
|       <div class="center"> | ||||
|           <button type="submit" form-control class="btn btn-outline" (click)="tableModal = false">Cancel</button> | ||||
|       </div> | ||||
|   </form> | ||||
|   </div> | ||||
| </clr-modal> --> | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| <clr-modal [(clrModalOpen)]="modaldelete" [clrModalSize]="'lg'" [clrModalStaticBackdrop]="true"> | ||||
| 
 | ||||
|   <div class="modal-body" *ngIf="rowSelected.id"> | ||||
|     <h1 class="delete">Are You Sure Want to delete?</h1> | ||||
|     <h2 class="heading">{{rowSelected.id}}</h2> | ||||
|     <div class="modal-footer"> | ||||
|       <button type="button" class="btn btn-outline" (click)="modaldelete = false">Cancel</button> | ||||
|     <button type="submit" (click)="delete(rowSelected.id)" class="btn btn-primary" >Delete</button> | ||||
|     </div> | ||||
|   </div> | ||||
| </clr-modal> | ||||
| @ -0,0 +1,161 @@ | ||||
| $bg-color: #dddddd; | ||||
| 
 | ||||
| .button1::after { | ||||
|   content: none; | ||||
| } | ||||
| .button1:hover::after { | ||||
|   content: "ADD ROWS"; | ||||
| } | ||||
| 
 | ||||
| .delete,.heading{ | ||||
|   text-align: center; | ||||
|   color: red; | ||||
| } | ||||
| 
 | ||||
| .bold{ | ||||
|   font-weight: bold; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| .section p { | ||||
|   //color: white; | ||||
|   padding: 10px; | ||||
|   font-size: 18px; | ||||
| } | ||||
| 
 | ||||
| .clr-input { | ||||
|   color: #212529; | ||||
|   border: 1px solid #ced4da; | ||||
|   border-radius: 0.25rem; | ||||
|   padding: 0.75rem 0.75rem; | ||||
|   margin-top: 3px; | ||||
|   width: 100%; | ||||
|   margin-bottom: 10px; | ||||
| } | ||||
| // input[type=text],[type=date],textarea { | ||||
| //   width: 60%; | ||||
| //   padding: 15px 15px; | ||||
| //  // margin: 8px 0; | ||||
| //  background-color:rgb(255, 255, 255); | ||||
| //   display: inline-block; | ||||
| //   border: 1px solid #ccc; | ||||
| //   border-radius: 4px; | ||||
| //   box-sizing: border-box; | ||||
| // } | ||||
| .required-field{ | ||||
|   color: red; | ||||
| font-size: 18px; | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| input[type=text],textarea { | ||||
|   width: 100%; | ||||
|   padding: 15px 15px; | ||||
|  // margin: 8px 0; | ||||
|  background-color:rgb(255, 255, 255); | ||||
|   display: inline-block; | ||||
|   border: 1px solid #ccc; | ||||
|   border-radius: 4px; | ||||
|   box-sizing: border-box; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| html { | ||||
|     /* make sure we use up the whole viewport */ | ||||
|     width: 100%; | ||||
|     min-height: 100vh; | ||||
| } | ||||
| body { | ||||
|     width: 100%; | ||||
|     background-color: gray; | ||||
|     //min-height: 100vh; /* this helps with the sticky footer */ | ||||
| } | ||||
| 
 | ||||
| //Import classes from swimlane datatable | ||||
| ngx-datatable { | ||||
|   font-family: Metropolis,Avenir Next,Helvetica Neue,Arial,sans-serif; | ||||
|   font-size:13px; | ||||
|   border:1px solid #ccc; | ||||
|   border-radius: 2px; | ||||
|   padding:0; | ||||
|   background-color: #fff; | ||||
|   .datatable-header, .datatable-footer { | ||||
|     font-size:11px; | ||||
|     line-height:18px; | ||||
|     font-weight:bold; | ||||
|     background-color:#fafafa; | ||||
|   } | ||||
|   .datatable-header{ | ||||
|     //border-bottom: 2px solid #ccc; | ||||
|     box-shadow: 0 2px 4px 0px #ccc; | ||||
|     .datatable-header-cell{ | ||||
|       line-height:22px; | ||||
|       padding-left:10px; | ||||
|       height:22px; | ||||
|     } | ||||
|   } | ||||
|   .datatable-header .datatable-header-cell:not(:first-child) { | ||||
|       border-left:1px solid #ccc; | ||||
|   } | ||||
| 
 | ||||
|   .datatable-footer{ | ||||
|     border-top: 1px solid #ccc; | ||||
|     .page-count{ | ||||
|       margin: 10px; | ||||
|     } | ||||
|     .pages a{ | ||||
|       padding:8px; | ||||
|       color:inherit; | ||||
|     } | ||||
|     .pages.active a{ | ||||
|       padding:8px; | ||||
|       color:#007cbb; | ||||
|       background-color:rgb(221, 221, 221); | ||||
|       text-align: center; | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   .datatable-header-inner{ | ||||
|     padding:12px; | ||||
|   } | ||||
|   .datatable-body-cell{ | ||||
|     padding:8px 0 10px 20px; | ||||
|     border-top: 1px solid #ddd; | ||||
|   } | ||||
|   .pager i { | ||||
|     font-size:18px; | ||||
|     vertical-align: middle; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| .postColumn{ | ||||
|   border: 1px solid #ccc; | ||||
|   width: 78%; | ||||
|   margin-left: 15px; | ||||
| } | ||||
| .colName{ | ||||
|   text-align: center; | ||||
|   padding: 5px; | ||||
| } | ||||
| .colfields{ | ||||
|   border: 1px solid black; | ||||
|   margin: 17px; | ||||
|   text-align: center; | ||||
|   padding: 3px; | ||||
| } | ||||
| .fieldWrapper{ | ||||
|   margin-top: 20px; | ||||
| } | ||||
| .center { | ||||
|   text-align: center; | ||||
| } | ||||
| 
 | ||||
| select{ | ||||
|   width: 100%; | ||||
|   padding: 5px 5px; | ||||
|   border: 1px solid #ccc; | ||||
|   border-radius: 4px; | ||||
| } | ||||
| // @import '@swimlane/ngx-datatable/index.css'; | ||||
| // @import '@swimlane/ngx-datatable/themes/bootstrap.css'; | ||||
| //  @import '@swimlane/ngx-datatable/assets/icons.css'; | ||||
| @ -0,0 +1,25 @@ | ||||
| import { ComponentFixture, TestBed } from '@angular/core/testing'; | ||||
| 
 | ||||
| import { QueryComponent } from './query.component'; | ||||
| 
 | ||||
| describe('QueryComponent', () => { | ||||
|   let component: QueryComponent; | ||||
|   let fixture: ComponentFixture<QueryComponent>; | ||||
| 
 | ||||
|   beforeEach(async () => { | ||||
|     await TestBed.configureTestingModule({ | ||||
|       declarations: [ QueryComponent ] | ||||
|     }) | ||||
|     .compileComponents(); | ||||
|   }); | ||||
| 
 | ||||
|   beforeEach(() => { | ||||
|     fixture = TestBed.createComponent(QueryComponent); | ||||
|     component = fixture.componentInstance; | ||||
|     fixture.detectChanges(); | ||||
|   }); | ||||
| 
 | ||||
|   it('should create', () => { | ||||
|     expect(component).toBeTruthy(); | ||||
|   }); | ||||
| }); | ||||
| @ -0,0 +1,536 @@ | ||||
| import { Component, OnInit } from '@angular/core'; | ||||
| import { FormBuilder, FormControl, FormGroup } from '@angular/forms'; | ||||
| import { ReportBuilderService } from 'src/app/services/api/report-builder.service'; | ||||
| import { TableList } from '../../../../models/fnd/table-setup'; | ||||
| import { HttpClient } from '@angular/common/http'; | ||||
| import { ToastrService } from 'ngx-toastr'; | ||||
| import { ActivatedRoute, Router } from '@angular/router'; | ||||
| @Component({ | ||||
|   selector: 'app-query', | ||||
|   templateUrl: './query.component.html', | ||||
|   styleUrls: ['./query.component.scss'] | ||||
| }) | ||||
| export class QueryComponent implements OnInit { | ||||
|   searchtable: any; | ||||
|   searchcol: any; | ||||
|   columns: any[]; | ||||
|   table: boolean = false; | ||||
|   database: boolean = false; | ||||
|   query: boolean = false; | ||||
|   public entryForm: FormGroup; | ||||
|   public addForm: FormGroup; | ||||
|   addmodal: boolean = false; | ||||
|   query2: string; | ||||
|   rows: any[]; | ||||
|   loading = false; | ||||
|   tableList: TableList[]; | ||||
|   databaselist = []; | ||||
|   collist; | ||||
|   search: any; | ||||
|   selectedtable: any[]; | ||||
|   selectedcol: any[]; | ||||
|   selectedcol1: any[]; | ||||
|   selectedtablequery; | ||||
|   selectcolquery; | ||||
|   selectedquery; | ||||
|   backQuery = true; | ||||
|   searchquery; | ||||
|   col: boolean = false; | ||||
|   col1: boolean = false; | ||||
|   searchdatabase; | ||||
|   selecteddatabase; | ||||
|   msg; | ||||
|   querydata; | ||||
|   errorco; | ||||
|   errortb; | ||||
|   errorcl; | ||||
|   loadingIndicator = true; reorderable = true; | ||||
|   filterModel = false; | ||||
|   conditionData = []; | ||||
|   andor = ['AND', 'OR', 'NOT']; | ||||
|   fieldname = ['name1', 'name2']; | ||||
|   condition = ['=', '!=', '<', '>', '<=', '>=', 'LIKE', 'BETWEEN', 'IN']; | ||||
|   alias = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']; | ||||
|   tabs = ['Tab', 'Tab',]; | ||||
|   selected = new FormControl(0); | ||||
|   constructor(private _fb: FormBuilder, private router: Router, | ||||
|     private route: ActivatedRoute, | ||||
|     private reportBuilderService: ReportBuilderService, private toastr: ToastrService,) { } | ||||
| 
 | ||||
|   ngOnInit(): void { | ||||
|     this.entryForm = this._fb.group({ | ||||
|       sql_query: [null], | ||||
|     }); | ||||
|     this.addForm = this._fb.group({ | ||||
|       conn_string: [null], | ||||
|       username: [null], | ||||
|       password: [null], | ||||
|       driver_class_name: [null], | ||||
|     }) | ||||
|     // this.listofTables();
 | ||||
| 
 | ||||
|   } | ||||
| 
 | ||||
| 
 | ||||
|   listoddatabase() { | ||||
|     this.reportBuilderService.getdatabse().subscribe((data) => { | ||||
|       this.databaselist = data; | ||||
|       console.log('databse list ', this.databaselist) | ||||
|       if (this.databaselist.length == 0) { | ||||
|         this.errorco = "No data Available"; | ||||
| 
 | ||||
|       } | ||||
|     }, (error) => { | ||||
|       console.log(error); | ||||
|       if (error) { | ||||
|         this.errorco = "No data Available"; | ||||
|       } | ||||
|     }); | ||||
| 
 | ||||
|   } | ||||
|   listofTables(val) { | ||||
|     this.reportBuilderService.getTableListn(val).subscribe(data => { | ||||
|       // console.log("table list "+data);
 | ||||
|       this.tableList = data; | ||||
|       console.log('table list ', this.tableList); | ||||
|     }, (error) => { | ||||
|       console.log(error); | ||||
|       if (error) { | ||||
|         this.errortb = "No data Available"; | ||||
|       } | ||||
|     }) | ||||
|   } | ||||
|   msg1; | ||||
|   finalColList: any[] = []; | ||||
|   listofcol(val) { | ||||
|     console.log(this.selectedtable); | ||||
|     console.log(this.selectedcol); | ||||
|     console.log(this.selectedcol1); | ||||
|     const tableString = JSON.stringify(val); | ||||
|     console.log(tableString); | ||||
|     const array = Array.of(val); // Using the Array constructor
 | ||||
|     console.log(array); | ||||
|     console.log(val); | ||||
|     // this.reportBuilderService.getcolListn(this.name[1],val).subscribe((data)=>{ 
 | ||||
|     // this.reportBuilderService.getColumnList(this.name[1],array).subscribe((data)=>{
 | ||||
|     this.reportBuilderService.getAllColumnsFromAllTables(array).subscribe((data) => { | ||||
|       console.log(data); | ||||
|       this.collist = data; | ||||
|       // this.finalColList.push(data);
 | ||||
|       // this.finalColList.push(this.collist)
 | ||||
|       if (this.selectedtable == null) { | ||||
|         this.msg = 'Plz First Select Table' | ||||
|       } else { | ||||
|         this.msg = ""; | ||||
|       } | ||||
| 
 | ||||
|       //console.log(this.collist);
 | ||||
|     }, (error) => { | ||||
|       console.log(error); | ||||
|       if (error) { | ||||
|         this.errorcl = "No data Available"; | ||||
|       } | ||||
|     }) | ||||
|   } | ||||
|   listofquery() { | ||||
|     this.reportBuilderService.getall().subscribe((data) => { | ||||
|       this.querydata = data; | ||||
|       console.log(this.querydata) | ||||
|     }) | ||||
|   } | ||||
|   rowdata; | ||||
|   onSubmit() { | ||||
|     this.backQuery = false; | ||||
| 
 | ||||
|     this.query2 = this.entryForm.value.sql_query; | ||||
|     console.log(this.query2); | ||||
|     this.reportBuilderService.getMasterData(this.query2).subscribe((data) => { | ||||
|       this.rows = data; | ||||
|       console.log(this.rows); | ||||
|       this.rowdata = [this.rows]; | ||||
|       console.log(typeof this.rows); | ||||
|       if (data) { | ||||
|         this.toastr.success("Run Successfully") | ||||
|       } | ||||
|       var j; | ||||
|       var cart = []; | ||||
| 
 | ||||
|       for (var i = 0; i < data.length; i++) { | ||||
|         var columnsIn = data[i]; | ||||
|         if (i == 1) { | ||||
|           for (var key in columnsIn) { | ||||
|             j = { prop: key, name: key }; | ||||
|             cart.push(j) | ||||
| 
 | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|       this.columns = cart; | ||||
| 
 | ||||
|     }); | ||||
|   } | ||||
|   getHeaders() { | ||||
|     let headers: string[] = []; | ||||
|     if (this.rows) { | ||||
|       this.rows.forEach((value) => { | ||||
|         Object.keys(value).forEach((key) => { | ||||
|           if (!headers.find((header) => header == key)) { | ||||
|             headers.push(key) | ||||
|           } | ||||
| 
 | ||||
|         }) | ||||
| 
 | ||||
|       }) | ||||
|     } | ||||
|     return headers; | ||||
|   } | ||||
|   savequery() { | ||||
|     //this.query2=this.entryForm.value.sql_query;
 | ||||
|     console.log(this.entryForm.value); | ||||
|     this.reportBuilderService.saveq(this.entryForm.value).subscribe((data) => { | ||||
|       console.log(data); | ||||
|     }) | ||||
| 
 | ||||
|   } | ||||
| 
 | ||||
|   //tab
 | ||||
|   addTab(selectAfterAdding: boolean) { | ||||
|     this.tabs.push('Tab'); | ||||
| 
 | ||||
|     if (selectAfterAdding) { | ||||
|       this.selected.setValue(this.tabs.length - 1); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   removeTab(index: number) { | ||||
|     this.tabs.splice(index, 1); | ||||
|   } | ||||
|   opendatabsemo() { | ||||
|     this.database = true; | ||||
|     this.listoddatabase(); | ||||
|   } | ||||
|   name; | ||||
|   databaseName; | ||||
|   databasename(val) { | ||||
|     console.log(val); | ||||
|     this.databaseName = val.name; | ||||
|     this.selecteddatabase = val.conn_string; | ||||
|     console.log('selected databse ', this.selecteddatabase); | ||||
|     // this.selecteddatabase.substring(0,this.selecteddatabase.indexOf(':3306/'))
 | ||||
|     // console.log(this.selecteddatabase);
 | ||||
|     this.name = this.selecteddatabase.split(":3306/"); | ||||
|     console.log(this.name[1]); | ||||
|     this.database = false; | ||||
|     this.listofTables(this.name[1]) | ||||
|   } | ||||
|   opentablemod() { | ||||
|     this.table = true; | ||||
|     // this.listofTables();
 | ||||
|   } | ||||
|   tablename(value) { | ||||
|     console.log(value); | ||||
|     this.selectedtable = value; | ||||
|     this.table = false; | ||||
|   } | ||||
|   tableModal = false; | ||||
|   TableData; | ||||
|   opentcolmod() { | ||||
|     // this.col=true;
 | ||||
| 
 | ||||
|     if (this.selectedtable == null) { | ||||
|       this.msg = 'Plz First Select Table' | ||||
|     } else { | ||||
|       this.msg = ""; | ||||
|       // this.tableModal = true;
 | ||||
|     } | ||||
|     this.listofcol(this.selectedtable) | ||||
| 
 | ||||
|     if (Array.isArray(this.selectedtable) || this.selectedtable === undefined) { | ||||
|       const selectedTables = this.selectedtable.map((table, index) => { | ||||
|         const alias = String.fromCharCode(97 + (index % 26)); // Generate aliases starting from 'a'
 | ||||
|         console.log(alias, table); | ||||
|         return `${table} ${alias}`; | ||||
|       }).join(','); | ||||
|       console.log(selectedTables); | ||||
|       // const selectedTables = this.TableData.map(({ alias, tables }) => `${tables} ${alias}`).join(',');
 | ||||
|       // console.log(selectedTables);
 | ||||
| 
 | ||||
|       this.selectedtablequery = `SELECT * FROM ${selectedTables} WHERE 1=1`; | ||||
|       console.log(this.selectedtablequery); | ||||
|       // You can perform further actions with the generated SQL query
 | ||||
|     } else { | ||||
|       this.selectedtablequery = ''; | ||||
|       console.log(this.selectedtablequery); | ||||
|       // You can perform further actions with the generated SQL query
 | ||||
|     } | ||||
| 
 | ||||
|     this.selectedquery = this.selectedtablequery; | ||||
| 
 | ||||
|     // const defaultObject = {
 | ||||
|     //   alias: "",
 | ||||
|     // }
 | ||||
|     //   const objectArray = this.selectedtable.map(value => ({
 | ||||
|     //     ...defaultObject,
 | ||||
|     //     tables: value,
 | ||||
|     //   }));
 | ||||
|     //   console.log(objectArray);
 | ||||
|     //   const data = JSON.stringify(objectArray);
 | ||||
|     //  try {
 | ||||
|     //    this.TableData = JSON.parse(data);
 | ||||
|     //    console.log('Received data:', this.TableData );
 | ||||
|     //  } catch (e) { console.error('Invalid JSON:', data);}
 | ||||
|   } | ||||
| 
 | ||||
|   onAddTableLines() { | ||||
|     this.TableData.push({ | ||||
|       tables: "", | ||||
|       alias: "", | ||||
|     }); | ||||
|   } | ||||
|   deleteTableRow(index) { | ||||
|     this.TableData.splice(index, 1); | ||||
|   } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   opentcolmod1() { | ||||
|     // this.col1=true;
 | ||||
|     this.listofcol(this.selectedtable) | ||||
| 
 | ||||
| 
 | ||||
|   } | ||||
|   columnModal = false; | ||||
|   columnData; | ||||
|   colname() { | ||||
| 
 | ||||
|     this.columnModal = true; | ||||
| 
 | ||||
|     //column filter
 | ||||
|     const defaultObject = { | ||||
|       alias: "", | ||||
|     } | ||||
|     const objectArray = this.selectedcol.map(value => ({ | ||||
|       ...defaultObject, | ||||
|       columns: value, | ||||
|     })); | ||||
|     console.log(objectArray); | ||||
|     const data = JSON.stringify(objectArray); | ||||
|     try { | ||||
|       this.columnData = JSON.parse(data); | ||||
|       console.log('Received data:', this.columnData); | ||||
|     } catch (e) { console.error('Invalid JSON:', data); } | ||||
|   } | ||||
| 
 | ||||
|   onAddColLines() { | ||||
|     this.columnData.push({ | ||||
|       columns: "", | ||||
|       alias: "", | ||||
|     }); | ||||
|   } | ||||
|   deleteColRow(index) { | ||||
|     this.columnData.splice(index, 1); | ||||
|   } | ||||
| 
 | ||||
|   onColSelected() { | ||||
|     // console.log(col);
 | ||||
|     // this.selectedcol=col;
 | ||||
|     this.col = false; | ||||
|     this.columnModal = false; | ||||
|     if (Array.isArray(this.columnData)) { | ||||
|       // const selectedColumns = this.columnData.join(',');
 | ||||
|       //for column
 | ||||
|       const selectedColumns = this.columnData.map(({ alias, columns }) => `${columns} as ${alias}`).join(','); | ||||
|       console.log(selectedColumns); | ||||
|       //for table
 | ||||
|       const selectedTables = this.selectedtable.map((table, index) => { | ||||
|         const alias = String.fromCharCode(97 + (index % 26)); // Generate aliases starting from 'a'
 | ||||
|         console.log(alias, table); | ||||
|         return `${table} ${alias}`; | ||||
|       }).join(','); | ||||
|       console.log(selectedTables); | ||||
| 
 | ||||
|       // const selectedTables = this.TableData.map(({ alias, tables }) => `${tables} ${alias}`).join(',');
 | ||||
|       // console.log(selectedTables);
 | ||||
| 
 | ||||
|       this.selectcolquery = `SELECT ${selectedColumns} FROM ${selectedTables} WHERE 1=1`; | ||||
|       console.log(this.selectcolquery); | ||||
|       // You can perform further actions with the generated SQL query
 | ||||
|     } else if (Array.isArray(this.selectedtable)) { | ||||
|       //for table
 | ||||
|       const selectedTables = this.selectedtable.map((table, index) => { | ||||
|         const alias = String.fromCharCode(97 + (index % 26)); // Generate aliases starting from 'a'
 | ||||
|         console.log(alias, table); | ||||
|         return `${table} ${alias}`; | ||||
|       }).join(','); | ||||
|       console.log(selectedTables); | ||||
|       this.selectcolquery = `SELECT * FROM ${selectedTables} WHERE 1=1`; | ||||
|       console.log(this.selectcolquery); | ||||
|       // You can perform further actions with the generated SQL query
 | ||||
|     } else { | ||||
|       // if(this.selectedtable==null){
 | ||||
|       //   this.msg1='Plz First Select Table'
 | ||||
|       // }else{
 | ||||
|       //   this.msg1="";
 | ||||
|       // }
 | ||||
|     } | ||||
|     this.selectedquery = this.selectcolquery; | ||||
|   } | ||||
|   colname1() { | ||||
|     // console.log(col);
 | ||||
|     // this.selectedcol1=col;
 | ||||
|     // this.col1=false;
 | ||||
|     // this.listofquery();
 | ||||
|   } | ||||
|   openquerymod() { | ||||
|     this.query = true; | ||||
|     this.listofquery(); | ||||
|   } | ||||
|   selectquery(val) { | ||||
|     console.log(val); | ||||
|     this.selectedquery = val; | ||||
|     this.query = false; | ||||
|   } | ||||
|   opencopym() { | ||||
|     this.router.navigate(["../queryadd"], { relativeTo: this.route }); | ||||
|     // this.addmodal=true;
 | ||||
|   } | ||||
|   onCreate() { | ||||
|     console.log(this.addForm.value); | ||||
|     this.reportBuilderService.createdb(this.addForm.value).subscribe((data) => { | ||||
|       console.log(data); | ||||
|     }) | ||||
|   } | ||||
| 
 | ||||
|   // onSelectedChanged(selected){
 | ||||
|   //   this.selectedTableData = this.tableList.filter(item => item.selected);
 | ||||
|   // }
 | ||||
|   conditionVal; | ||||
|   filter(val) { | ||||
| 
 | ||||
|     this.filterModel = true; | ||||
|     this.conditionVal = val; | ||||
| 
 | ||||
|     const defaultObject = { | ||||
|       andor: "AND", | ||||
|       //  alias: "",
 | ||||
|       condition: "=", | ||||
|       value: "", | ||||
|     } | ||||
|     const objectArray = this.conditionVal.map(value => ({ | ||||
|       ...defaultObject, | ||||
|       fields_name: value, | ||||
|     })); | ||||
|     console.log(objectArray); | ||||
|     const data = JSON.stringify(objectArray); | ||||
|     try { | ||||
|       this.conditionData = JSON.parse(data); | ||||
|       console.log('Received data:', this.conditionData); | ||||
|     } catch (e) { console.error('Invalid JSON:', data); } | ||||
|   } | ||||
| 
 | ||||
|   onAddLines() { | ||||
|     this.conditionData.push({ | ||||
|       andor: "AND", | ||||
|       fields_name: "", | ||||
|       condition: "=", | ||||
|       value: "" | ||||
|     }); | ||||
|   } | ||||
|   deleteRow(index) { | ||||
|     this.conditionData.splice(index, 1); | ||||
|   } | ||||
|   filteredConditionData; | ||||
|   filterAndor; | ||||
|   filtercondlvalue; | ||||
|   onSelected() { | ||||
|     this.filterModel = false; | ||||
|     console.log(this.conditionData); | ||||
|     let formattedString = ''; | ||||
|     for (const condition of this.conditionData) { | ||||
|       const { andor, fields_name, condition: cond, value } = condition; | ||||
|       formattedString += `${andor} ${fields_name} ${cond} '${value}'`; | ||||
|       this.filterAndor = andor; | ||||
|       this.filtercondlvalue = cond + ' ' + value; | ||||
|     } | ||||
|     // this.getConditionBeforeColumn(this.selectedcol1)
 | ||||
|     // this.getConditionAfterColumn(this.selectedcol1);
 | ||||
|     console.log(formattedString); | ||||
|     this.filteredConditionData = formattedString | ||||
|     if (this.selectcolquery !== undefined) { | ||||
|       const mQuery = this.selectcolquery + ' ' + formattedString; | ||||
|       console.log(mQuery); | ||||
|       this.selectedquery = mQuery; | ||||
|     } else { | ||||
|       const mQuery = this.selectedtablequery + ' ' + formattedString; | ||||
|       console.log(mQuery); | ||||
|       this.selectedquery = mQuery; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   } | ||||
| 
 | ||||
|   // getConditionBeforeColumn(selected: any){
 | ||||
| 
 | ||||
|   //   return this.filterAndor;
 | ||||
| 
 | ||||
| 
 | ||||
|   // }
 | ||||
|   // getConditionAfterColumn(selected: any){
 | ||||
|   //   return this.filtercondlvalue
 | ||||
| 
 | ||||
| 
 | ||||
|   // }
 | ||||
|   onBack() { | ||||
|     // this.backQuery = true;
 | ||||
|   } | ||||
| 
 | ||||
|   getAliasedColumn(selected: string) { | ||||
|     const index = this.selectedtable.findIndex(item => item === selected); | ||||
|     const alphabet = 'abcdefghijklmnopqrstuvwxyz'; | ||||
|     const aliasIndex = index % alphabet.length; // Calculate the index based on the remainder
 | ||||
|     const repeatedAlias = alphabet.charAt(aliasIndex); | ||||
|     return repeatedAlias; | ||||
| 
 | ||||
|     // const index = this.selectedtable.findIndex(item => item === selected);
 | ||||
|     // return this.alias[index];
 | ||||
|   } | ||||
| 
 | ||||
| 
 | ||||
|   //
 | ||||
| 
 | ||||
|   goToEdit(id) { | ||||
|     this.router.navigate(["../queryedit/" + id], { relativeTo: this.route }); | ||||
|   } | ||||
| 
 | ||||
|   rowSelected: any = {}; | ||||
|   modaldelete = false; | ||||
|   onDelete(row) { | ||||
|     this.rowSelected = row; | ||||
|     this.modaldelete = true; | ||||
|   } | ||||
| 
 | ||||
|   delete(id) { | ||||
|     this.modaldelete = false; | ||||
|     console.log("in delete  " + id); | ||||
|     this.reportBuilderService.deleteSqlModel(id).subscribe( | ||||
|       (data) => { | ||||
|         console.log(data); | ||||
|         this.listoddatabase(); | ||||
|         if (data) { | ||||
|           this.toastr.success('Deleted successfully'); | ||||
|         } | ||||
|       }, | ||||
|       (error) => { | ||||
|         console.log('Error in adding data...', +error); | ||||
|         if (isNaN(error)) { | ||||
|           this.toastr.success('Deleted successfully'); | ||||
|         } else { | ||||
|           this.toastr.error('Not Deleted Data Getting Some Error'); | ||||
|         } | ||||
|         this.listoddatabase(); | ||||
|       } | ||||
|     ); | ||||
|   } | ||||
| 
 | ||||
| } | ||||
| @ -0,0 +1,75 @@ | ||||
| .s-info-bar { | ||||
|   display: flex; | ||||
|   flex-direction: row; | ||||
|   justify-content: space-between; | ||||
| } | ||||
| .s-info-bar button { | ||||
|   outline: none; | ||||
| } | ||||
| 
 | ||||
| .entry-pg { | ||||
|   width: 750px; | ||||
| } | ||||
| 
 | ||||
| .button1::after { | ||||
|   content: none; | ||||
| } | ||||
| 
 | ||||
| .button1:hover::after { | ||||
|   content: "ADD ROWS"; | ||||
| } | ||||
| 
 | ||||
| .section { | ||||
|   background-color: #dddddd; | ||||
|   height: 40px; | ||||
| } | ||||
| 
 | ||||
| .section p { | ||||
|   font-weight: bold; | ||||
|   padding: 10px; | ||||
|   font-size: 18px; | ||||
| } | ||||
| 
 | ||||
| .clr-input { | ||||
|   color: #212529; | ||||
|   border: 1px solid #ced4da; | ||||
|   border-radius: 0.25rem; | ||||
|   padding: 0.75rem 0.75rem; | ||||
|   margin-top: 3px; | ||||
|   width: 100%; | ||||
|   margin-bottom: 10px; | ||||
| } | ||||
| 
 | ||||
| .clr-file { | ||||
|   color: #212529; | ||||
|   border: 1px solid #ced4da; | ||||
|   border-radius: 0.25rem; | ||||
|   margin-top: 3px; | ||||
|   width: 100%; | ||||
|   margin-bottom: 10px; | ||||
| } | ||||
| 
 | ||||
| .center { | ||||
|   text-align: center; | ||||
| } | ||||
| 
 | ||||
| input[type=text], [type=date], textarea { | ||||
|   width: 100%; | ||||
|   padding: 15px 15px; | ||||
|   background-color: rgb(255, 255, 255); | ||||
|   display: inline-block; | ||||
|   border: 1px solid #ccc; | ||||
|   border-radius: 4px; | ||||
|   box-sizing: border-box; | ||||
| } | ||||
| 
 | ||||
| .required-field { | ||||
|   color: red; | ||||
| } | ||||
| 
 | ||||
| select { | ||||
|   width: 100%; | ||||
|   padding: 5px 5px; | ||||
|   border: 1px solid #ccc; | ||||
|   border-radius: 4px; | ||||
| }/*# sourceMappingURL=queryadd.component.css.map */ | ||||
| @ -0,0 +1 @@ | ||||
| {"version":3,"sources":["queryadd.component.scss","queryadd.component.css"],"names":[],"mappings":"AACA;EACI,aAAA;EACA,mBAAA;EACA,8BAAA;ACAJ;ADCI;EACE,aAAA;ACCN;;ADGE;EACE,YAAA;ACAJ;;ADGE;EACE,aAAA;ACAJ;;ADEE;EACE,mBAAA;ACCJ;;ADIE;EACE,yBAHS;EAIT,YAAA;ACDJ;;ADIE;EAEE,iBAAA;EACA,aAAA;EACA,eAAA;ACFJ;;ADKE;EACE,cAAA;EACA,yBAAA;EACA,sBAAA;EACA,wBAAA;EACA,eAAA;EACA,WAAA;EACA,mBAAA;ACFJ;;ADKE;EACE,cAAA;EACA,yBAAA;EACA,sBAAA;EAEA,eAAA;EACA,WAAA;EACA,mBAAA;ACHJ;;ADME;EACE,kBAAA;ACHJ;;ADKE;EACE,WAAA;EACA,kBAAA;EAED,oCAAA;EACC,qBAAA;EACA,sBAAA;EACA,kBAAA;EACA,sBAAA;ACHJ;;ADME;EACE,UAAA;ACHJ;;ADME;EACE,WAAA;EACA,gBAAA;EACA,sBAAA;EACA,kBAAA;ACHJ","file":"queryadd.component.css"} | ||||
| @ -0,0 +1,130 @@ | ||||
| <h4 style="font-weight: 300;display: inline;"><b> Add Database</b></h4> | ||||
| <span class="label label-light-blue" style="display: inline;margin-left: 10px;">Add Mode</span><br> | ||||
| <hr> | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| <div class="container"> | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   <!-- entry form--> | ||||
|   <form [formGroup]="entryForm"><!-- (ngSubmit)="onSubmit()"--> | ||||
|     <div class="clr-row"> | ||||
|       <div class="clr-col-md-4 clr-col-sm-12"> | ||||
|         <label for="projectName">Name</label> | ||||
|         <input id="projectName" type="text" formControlName="name" placeholder="Enter Name" | ||||
|           class="clr-input" required> | ||||
|       </div> | ||||
|       <div class="clr-col-md-4 clr-col-sm-12"> | ||||
|         <label for="technologyStack">Type</label> | ||||
|         <select formControlName="type"  class="clr-dropdown"> | ||||
|           <option [ngValue]="null">Choose Technology</option> | ||||
|           <option *ngFor="let item of type" [ngValue]="item">{{item}}</option> | ||||
|         </select> | ||||
|       </div> | ||||
|       </div> | ||||
| 
 | ||||
|       <div class="clr-row"> | ||||
|       <div class="clr-col-md-4 clr-col-sm-12"> | ||||
|         <label for="description">Description (optional)</label> | ||||
|           <textarea  id="" cols="10" rows="2"  name=" remarks" formControlName="description" placeholder="Enter Description"> | ||||
|           </textarea> | ||||
|              </div> | ||||
|              <div class="clr-col-md-4 clr-col-sm-12"> | ||||
|               <label for="workflow_name">Active</label> | ||||
|               <input type="checkbox" formControlName="active" clrToggle value="billable" name="billable" /> | ||||
| 
 | ||||
|             </div> | ||||
|         </div> | ||||
| 
 | ||||
|       <div style="margin-top: 40px;"> | ||||
|       <h4 style="font-weight: 300;display: inline;"> Configurations</h4> | ||||
| </div> | ||||
| <!-- <div class="clr-row"> | ||||
|   <div class="clr-col-6">These configurations default to repositories setups.</div> | ||||
|   <div class="clr-col-6" style="  display: flex; justify-content: flex-end;"><button (click)="testConnection()" class="btn btn-primary">Test Connection</button></div> | ||||
|   </div> --> | ||||
| <hr> | ||||
| 
 | ||||
|       <div class="clr-row"> | ||||
| 
 | ||||
|       <div class="clr-col-md-4 clr-col-sm-12"> | ||||
|         <label for="projectPrefix">Driver class Name</label> | ||||
|         <input type="text" formControlName="driver_class_name" placeholder="Enter Driver class Name" class="clr-input"> | ||||
| 
 | ||||
|       </div> | ||||
|       <div class="clr-col-md-4 clr-col-sm-12"> | ||||
|         <label for="projectPrefix">Connection String</label> | ||||
|         <input type="text" formControlName="conn_string" placeholder="Enter connection string" class="clr-input"> | ||||
| 
 | ||||
|       </div> | ||||
|       <!-- <div class="clr-col-md-4 clr-col-sm-12"> | ||||
|         <label for="portNumber">Port Number</label> | ||||
|         <input colspan="2" type="text" formControlName="portnumber" readonly class="clr-input"> | ||||
| 
 | ||||
|       </div> --> | ||||
|       <div class="clr-col-md-4 clr-col-sm-12"> | ||||
|         <label for="projectPrefix">Username</label> | ||||
|         <input type="text" formControlName="username" placeholder="Enter Username" class="clr-input"> | ||||
| 
 | ||||
|       </div> | ||||
| 
 | ||||
|       <div class="clr-col-md-4 clr-col-sm-12"> | ||||
|         <label for="dbPassword">Password</label> | ||||
|         <input type="text" formControlName="password" placeholder="Enter  Password" class="clr-input"> | ||||
| 
 | ||||
|       </div> | ||||
|       <!-- <div class="clr-col-md-4 clr-col-sm-12"> | ||||
|         <label for="workflow_name">Connect Through SSH</label> | ||||
|         <input type="checkbox" formControlName="connectssh" clrToggle value="billable" name="billable" /> | ||||
| 
 | ||||
|       </div> | ||||
|       <div class="clr-col-md-4 clr-col-sm-12"> | ||||
|         <label for="projectPrefix">SSH Host Name</label> | ||||
|         <input type="text" formControlName="ssh_host_name" placeholder="Enter Host Name" class="clr-input"> | ||||
| 
 | ||||
|       </div> | ||||
| 
 | ||||
| 
 | ||||
|       <div class="clr-col-md-4 clr-col-sm-12"> | ||||
|         <label for="projectPrefix">SSH User Name</label> | ||||
|         <input type="text" formControlName="ssh_user_name" placeholder="Enter SSH Username" class="clr-input"> | ||||
| 
 | ||||
|       </div> | ||||
| 
 | ||||
|       <div class="clr-col-md-4 clr-col-sm-12"> | ||||
|         <label for="dbPassword">SSH Password</label> | ||||
|         <input type="text" formControlName="ssh_password" placeholder="Enter SSH Password" class="clr-input"> | ||||
| 
 | ||||
|       </div> | ||||
|       <div class="clr-col-md-4 clr-col-sm-12"> | ||||
|         <label for="dbPassword">SSH Key File</label><br> | ||||
|         <input type="file" formControlName="ssh_file_key" (change)="onFileChanged($event)" placeholder="Enter Database Password" required> | ||||
| 
 | ||||
|       </div> --> | ||||
|     </div> | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     <div class="center"> | ||||
|       <div class="btn-group"> | ||||
|         <div class="checkbox btn"> | ||||
|           <input type="checkbox" id="btn-demo-check-1" (click)="goback()"/> | ||||
|           <label for="btn-demo-check-1">Cancel</label> | ||||
|         </div> | ||||
|         <!-- <div class="checkbox btn"> | ||||
|           <input type="checkbox" id="btn-demo-check-2" checked  (click)="onSubmit()"/> | ||||
|           <label for="btn-demo-check-2">Submit</label> | ||||
|         </div> --> | ||||
|         </div> | ||||
|       <button type="submit" class="btn btn-primary" [disabled]="!entryForm.valid" (click)="onSubmit()">SUBMIT</button> | ||||
|     </div> | ||||
|   </form> | ||||
| </div> | ||||
| @ -0,0 +1,80 @@ | ||||
| //@import "../../../../assets/scss/var"; | ||||
| .s-info-bar { | ||||
|     display: flex; | ||||
|     flex-direction: row; | ||||
|     justify-content: space-between; | ||||
|     button { | ||||
|       outline: none; | ||||
|     } | ||||
|   } | ||||
|    | ||||
|   .entry-pg { | ||||
|     width: 750px; | ||||
|   } | ||||
|    | ||||
|   .button1::after { | ||||
|     content: none; | ||||
|   } | ||||
|   .button1:hover::after { | ||||
|     content: "ADD ROWS"; | ||||
|   } | ||||
|    | ||||
|   $bg-color: #dddddd; | ||||
|    | ||||
|   .section { | ||||
|     background-color: $bg-color; | ||||
|     height: 40px; | ||||
|   } | ||||
|    | ||||
|   .section p { | ||||
|     //color: white; | ||||
|     font-weight: bold; | ||||
|     padding: 10px; | ||||
|     font-size: 18px; | ||||
|   } | ||||
|    | ||||
|   .clr-input { | ||||
|     color: #212529; | ||||
|     border: 1px solid #ced4da; | ||||
|     border-radius: 0.25rem; | ||||
|     padding: 0.75rem 0.75rem; | ||||
|     margin-top: 3px; | ||||
|     width: 100%; | ||||
|     margin-bottom: 10px; | ||||
|   } | ||||
|    | ||||
|   .clr-file { | ||||
|     color: #212529; | ||||
|     border: 1px solid #ced4da; | ||||
|     border-radius: 0.25rem; | ||||
|     //padding: 0.6rem 0.75rem; | ||||
|     margin-top: 3px; | ||||
|     width: 100%; | ||||
|     margin-bottom: 10px; | ||||
|   } | ||||
|    | ||||
|   .center { | ||||
|     text-align: center; | ||||
|   } | ||||
|   input[type=text],[type=date],textarea { | ||||
|     width: 100%; | ||||
|     padding: 15px 15px; | ||||
|    // margin: 8px 0; | ||||
|    background-color:rgb(255, 255, 255); | ||||
|     display: inline-block; | ||||
|     border: 1px solid #ccc; | ||||
|     border-radius: 4px; | ||||
|     box-sizing: border-box; | ||||
|   } | ||||
|    | ||||
|   .required-field{ | ||||
|     color: red; | ||||
|    | ||||
|   } | ||||
|   select{ | ||||
|     width: 100%; | ||||
|     padding: 5px 5px; | ||||
|     border: 1px solid #ccc; | ||||
|     border-radius: 4px; | ||||
|   } | ||||
|    | ||||
| @ -0,0 +1,25 @@ | ||||
| import { ComponentFixture, TestBed } from '@angular/core/testing'; | ||||
| 
 | ||||
| import { QueryaddComponent } from './queryadd.component'; | ||||
| 
 | ||||
| describe('QueryaddComponent', () => { | ||||
|   let component: QueryaddComponent; | ||||
|   let fixture: ComponentFixture<QueryaddComponent>; | ||||
| 
 | ||||
|   beforeEach(async () => { | ||||
|     await TestBed.configureTestingModule({ | ||||
|       declarations: [ QueryaddComponent ] | ||||
|     }) | ||||
|     .compileComponents(); | ||||
|   }); | ||||
| 
 | ||||
|   beforeEach(() => { | ||||
|     fixture = TestBed.createComponent(QueryaddComponent); | ||||
|     component = fixture.componentInstance; | ||||
|     fixture.detectChanges(); | ||||
|   }); | ||||
| 
 | ||||
|   it('should create', () => { | ||||
|     expect(component).toBeTruthy(); | ||||
|   }); | ||||
| }); | ||||
| @ -0,0 +1,92 @@ | ||||
| import { HttpErrorResponse, HttpHeaderResponse } from '@angular/common/http'; | ||||
| import { Component, OnInit } from '@angular/core'; | ||||
| import { FormBuilder, FormGroup } from '@angular/forms'; | ||||
| import { ActivatedRoute, Router } from '@angular/router'; | ||||
| import { ToastrService } from 'ngx-toastr'; | ||||
| import { ReportBuilderService } from 'src/app/services/api/report-builder.service'; | ||||
| 
 | ||||
| @Component({ | ||||
|   selector: 'app-queryadd', | ||||
|   templateUrl: './queryadd.component.html', | ||||
|   styleUrls: ['./queryadd.component.scss'] | ||||
| }) | ||||
| export class QueryaddComponent implements OnInit { | ||||
|   public entryForm: FormGroup; | ||||
|   selectedFile: File[] = []; | ||||
|   type = ["MYSQL", "postgresql", "mysqllite", "oracle", "Snowflake", "BigQuery", "RedShift", "microsoft sql server", "redis", "maria_db", "MongoDB", "firebase", "dynamodb", "ibm DB2", "couchbase", "ElasticSearch", "Casandra", "OrientDB", "Neo4j", "FireBird"]; | ||||
|   constructor(private _fb: FormBuilder, private router: Router, private toastr: ToastrService, | ||||
|     private route: ActivatedRoute, private reportBuilderService: ReportBuilderService,) { } | ||||
| 
 | ||||
|   ngOnInit(): void { | ||||
|     this.entryForm = this._fb.group({ | ||||
|       name: [null], | ||||
|       type: [null], | ||||
|       description: [null], | ||||
|       active: [null], | ||||
|       driver_class_name: [null], | ||||
|       conn_string: [null], | ||||
|       username: [null], | ||||
|       password: [null], | ||||
|     }); | ||||
|   } | ||||
|   public onFileChanged(event) { | ||||
|     //Select File
 | ||||
|     console.log(event); | ||||
|     this.selectedFile = event.target.files[0]; | ||||
|     //for (var i = 0; i < event.target.files.length; i++) {
 | ||||
|     // var name = event.target.files[i].name;
 | ||||
|     // var type = event.target.files[i].type;
 | ||||
|     // var size = event.target.files[i].size;
 | ||||
|     // var modifiedDate = event.target.files[i].lastModifiedDate;
 | ||||
|     // this.selectedFile.push(event.target.files[i]);
 | ||||
|     //}
 | ||||
|   } | ||||
|   toastrShown: boolean = false; | ||||
|   onSubmit() { | ||||
|     console.log(this.entryForm.value); | ||||
|     this.reportBuilderService.createdb(this.entryForm.value).subscribe((data) => { | ||||
|       console.log(data); | ||||
|       if (data) { | ||||
|         if (!this.toastrShown) { | ||||
|           this.toastrShown = true; // Set the flag to indicate that the toastr message has been shown
 | ||||
|           this.toastr.success("Added Successfully"); | ||||
|           setTimeout(() => { | ||||
|             // this.router.navigate(["../query"], { relativeTo: this.route });
 | ||||
|             this.router.navigate([".."], { relativeTo: this.route }); | ||||
| 
 | ||||
|           }, 500); | ||||
|         } | ||||
|       } | ||||
|     }, (error: HttpErrorResponse) => { | ||||
|       console.log(error); | ||||
|       if (error.status === 202) { | ||||
|         this.toastr.success("Added Succesfully"); | ||||
|       } | ||||
|       if (error.status === 404) { | ||||
|         this.toastr.error("Not Added"); | ||||
|       } | ||||
|       if (error.status === 400) { | ||||
|         this.toastr.error("Not Added"); | ||||
|       } | ||||
|     }); | ||||
|     setTimeout(() => { | ||||
|       // this.router.navigate(["../query"], { relativeTo: this.route });
 | ||||
|       this.router.navigate([".."], { relativeTo: this.route }); | ||||
| 
 | ||||
|     }, 500); | ||||
|   } | ||||
|   goback() { | ||||
|     this.router.navigate(["../query"], { relativeTo: this.route }); | ||||
|   } | ||||
| 
 | ||||
|   // testConnection(){
 | ||||
|   //   this.dataservice.testConnection(this.entryForm.value.data_source_type, this.entryForm.value.user_name, this.entryForm.value.password, this.entryForm.value.portnumber, this.entryForm.value.db_host_name).subscribe((data)=> {
 | ||||
|   //     console.log(data);
 | ||||
|   //     this.toastr.success('Test Connection successfully');
 | ||||
|   //   },(err) => {
 | ||||
|   //     console.log(err);
 | ||||
|   //     this.toastr.error('Test Connection Failed');
 | ||||
|   //   });
 | ||||
|   // }
 | ||||
| 
 | ||||
| } | ||||
| @ -0,0 +1,75 @@ | ||||
| .s-info-bar { | ||||
|   display: flex; | ||||
|   flex-direction: row; | ||||
|   justify-content: space-between; | ||||
| } | ||||
| .s-info-bar button { | ||||
|   outline: none; | ||||
| } | ||||
| 
 | ||||
| .entry-pg { | ||||
|   width: 750px; | ||||
| } | ||||
| 
 | ||||
| .button1::after { | ||||
|   content: none; | ||||
| } | ||||
| 
 | ||||
| .button1:hover::after { | ||||
|   content: "ADD ROWS"; | ||||
| } | ||||
| 
 | ||||
| .section { | ||||
|   background-color: #dddddd; | ||||
|   height: 40px; | ||||
| } | ||||
| 
 | ||||
| .section p { | ||||
|   font-weight: bold; | ||||
|   padding: 10px; | ||||
|   font-size: 18px; | ||||
| } | ||||
| 
 | ||||
| .clr-input { | ||||
|   color: #212529; | ||||
|   border: 1px solid #ced4da; | ||||
|   border-radius: 0.25rem; | ||||
|   padding: 0.75rem 0.75rem; | ||||
|   margin-top: 3px; | ||||
|   width: 100%; | ||||
|   margin-bottom: 10px; | ||||
| } | ||||
| 
 | ||||
| .clr-file { | ||||
|   color: #212529; | ||||
|   border: 1px solid #ced4da; | ||||
|   border-radius: 0.25rem; | ||||
|   margin-top: 3px; | ||||
|   width: 100%; | ||||
|   margin-bottom: 10px; | ||||
| } | ||||
| 
 | ||||
| .center { | ||||
|   text-align: center; | ||||
| } | ||||
| 
 | ||||
| input[type=text], [type=date], textarea { | ||||
|   width: 100%; | ||||
|   padding: 15px 15px; | ||||
|   background-color: rgb(255, 255, 255); | ||||
|   display: inline-block; | ||||
|   border: 1px solid #ccc; | ||||
|   border-radius: 4px; | ||||
|   box-sizing: border-box; | ||||
| } | ||||
| 
 | ||||
| .required-field { | ||||
|   color: red; | ||||
| } | ||||
| 
 | ||||
| select { | ||||
|   width: 100%; | ||||
|   padding: 5px 5px; | ||||
|   border: 1px solid #ccc; | ||||
|   border-radius: 4px; | ||||
| }/*# sourceMappingURL=queryedit.component.css.map */ | ||||
| @ -0,0 +1 @@ | ||||
| {"version":3,"sources":["queryedit.component.scss","queryedit.component.css"],"names":[],"mappings":"AACA;EACI,aAAA;EACA,mBAAA;EACA,8BAAA;ACAJ;ADCI;EACE,aAAA;ACCN;;ADGE;EACE,YAAA;ACAJ;;ADGE;EACE,aAAA;ACAJ;;ADEE;EACE,mBAAA;ACCJ;;ADIE;EACE,yBAHS;EAIT,YAAA;ACDJ;;ADIE;EAEE,iBAAA;EACA,aAAA;EACA,eAAA;ACFJ;;ADKE;EACE,cAAA;EACA,yBAAA;EACA,sBAAA;EACA,wBAAA;EACA,eAAA;EACA,WAAA;EACA,mBAAA;ACFJ;;ADKE;EACE,cAAA;EACA,yBAAA;EACA,sBAAA;EAEA,eAAA;EACA,WAAA;EACA,mBAAA;ACHJ;;ADME;EACE,kBAAA;ACHJ;;ADKE;EACE,WAAA;EACA,kBAAA;EAED,oCAAA;EACC,qBAAA;EACA,sBAAA;EACA,kBAAA;EACA,sBAAA;ACHJ;;ADME;EACE,UAAA;ACHJ;;ADME;EACE,WAAA;EACA,gBAAA;EACA,sBAAA;EACA,kBAAA;ACHJ","file":"queryedit.component.css"} | ||||
| @ -0,0 +1,127 @@ | ||||
| <h4 style="font-weight: 300;display: inline;"><b>Database</b></h4> | ||||
| <span class="label label-light-blue" style="display: inline;margin-left: 10px;">Edit Mode</span><br> | ||||
| <hr> | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| <div class="container"> | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   <!-- entry form--> | ||||
|   <form> | ||||
|     <div class="clr-row"> | ||||
|       <div class="clr-col-md-4 clr-col-sm-12"> | ||||
|         <label for="projectName">Name</label> | ||||
|         <input id="projectName" type="text" name="name" [(ngModel)]="tdata.name" placeholder="Enter Name" | ||||
|           class="clr-input" required> | ||||
|       </div> | ||||
|       <div class="clr-col-md-4 clr-col-sm-12"> | ||||
|         <label for="technologyStack">Type</label> | ||||
|         <select name="type"  class="clr-dropdown" [(ngModel)]="tdata.type"> | ||||
|           <option [ngValue]="null">Choose Technology</option> | ||||
|           <option *ngFor="let item of type" [ngValue]="item">{{item}}</option> | ||||
|         </select> | ||||
|       </div> | ||||
|       </div> | ||||
| 
 | ||||
|       <div class="clr-row"> | ||||
|       <div class="clr-col-md-4 clr-col-sm-12"> | ||||
|         <label for="description">Description (optional)</label> | ||||
|           <textarea  id="" cols="10" rows="2"   [(ngModel)]="tdata.description" name="description" placeholder="Enter Description"> | ||||
|           </textarea> | ||||
|              </div> | ||||
|              <div class="clr-col-md-4 clr-col-sm-12"> | ||||
|               <label for="workflow_name">Active</label> | ||||
|               <input type="checkbox" name="active" clrToggle [(ngModel)]="tdata.active"/> | ||||
| 
 | ||||
|             </div> | ||||
|         </div> | ||||
| 
 | ||||
|       <div style="margin-top: 40px;"> | ||||
|       <h4 style="font-weight: 300;display: inline;"> Configurations</h4> | ||||
| </div> | ||||
| <!-- These configurations default to repositories setups. --> | ||||
| <hr> | ||||
| 
 | ||||
|       <div class="clr-row"> | ||||
| 
 | ||||
|       <div class="clr-col-md-4 clr-col-sm-12"> | ||||
|         <label for="projectPrefix">Driver Class Name</label> | ||||
|         <input type="text" name="driver_class_name" placeholder="Enter Driver Class Name" class="clr-input" [(ngModel)]="tdata.driver_class_name"> | ||||
| 
 | ||||
|       </div> | ||||
|       <div class="clr-col-md-4 clr-col-sm-12"> | ||||
|         <label for="projectPrefix">Connection String</label> | ||||
|         <input type="text" name="conn_string" placeholder="Enter Connection String Name" class="clr-input" [(ngModel)]="tdata.conn_string"> | ||||
| 
 | ||||
|       </div> | ||||
|       <!-- <div class="clr-col-md-4 clr-col-sm-12"> | ||||
|         <label for="portNumber">Port Number</label> | ||||
|         <input colspan="2" type="text" name="portNumber" readonly class="clr-input" [(ngModel)]="tdata.portnumber"> | ||||
| 
 | ||||
|       </div> --> | ||||
|       <div class="clr-col-md-4 clr-col-sm-12"> | ||||
|         <label for="projectPrefix">Username</label> | ||||
|         <input type="text" name="username" placeholder="Enter Username" class="clr-input" [(ngModel)]="tdata.username"> | ||||
| 
 | ||||
|       </div> | ||||
| 
 | ||||
|       <div class="clr-col-md-4 clr-col-sm-12"> | ||||
|         <label for="dbPassword">Password</label> | ||||
|         <input type="text" name="password" placeholder="Enter  Password" class="clr-input" [(ngModel)]="tdata.password"> | ||||
| 
 | ||||
|       </div> | ||||
|       <!-- <div class="clr-col-md-4 clr-col-sm-12"> | ||||
|         <label for="workflow_name">Connect Through SSH</label> | ||||
|         <input type="checkbox" name="connectssh" clrToggle  [(ngModel)]="tdata.connectssh"/> | ||||
| 
 | ||||
|       </div> | ||||
|       <div class="clr-col-md-4 clr-col-sm-12"> | ||||
|         <label for="projectPrefix">SSH Host Name</label> | ||||
|         <input type="text" name="sshusername" placeholder="Enter Host Name" class="clr-input" [(ngModel)]="tdata.ssh_host_name"> | ||||
| 
 | ||||
|       </div> | ||||
| 
 | ||||
| 
 | ||||
|       <div class="clr-col-md-4 clr-col-sm-12"> | ||||
|         <label for="projectPrefix">SSH User Name</label> | ||||
|         <input type="text" name="sshusername" placeholder="Enter SSH Username" class="clr-input"[(ngModel)]="tdata.ssh_user_name"> | ||||
| 
 | ||||
|       </div> | ||||
| 
 | ||||
|       <div class="clr-col-md-4 clr-col-sm-12"> | ||||
|         <label for="dbPassword">SSH Password</label> | ||||
|         <input type="text" name="sshpassword" placeholder="Enter SSH Password" class="clr-input"[(ngModel)]="tdata.ssh_password"> | ||||
| 
 | ||||
|       </div> | ||||
|       <div class="clr-col-md-4 clr-col-sm-12"> | ||||
|         <label for="dbPassword">SSH Key File</label><br> | ||||
|         <input type="file" name="sshkeyfile" placeholder="Enter Database Password"(change)="onFileChanged($event)"> | ||||
|         {{tdata.ssh_file_key}} | ||||
|       </div> --> | ||||
|     </div> | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     <div class="center"> | ||||
|       <div class="btn-group"> | ||||
|         <div class="checkbox btn"> | ||||
|           <input type="checkbox" id="btn-demo-check-1" (click)="goback()"/> | ||||
|           <label for="btn-demo-check-1">Cancle</label> | ||||
|         </div> | ||||
|         <div class="checkbox btn"> | ||||
|           <input type="checkbox" id="btn-demo-check-2" checked  (click)="onSubmit()"/> | ||||
|           <label for="btn-demo-check-2">Update</label> | ||||
|         </div> | ||||
|         </div> | ||||
|       <!-- <button type="submit" class="btn btn-primary" [disabled]="!entryForm.valid">SUBMIT</button> --> | ||||
|     </div> | ||||
|   </form> | ||||
| </div> | ||||
| @ -0,0 +1,80 @@ | ||||
| //@import "../../../../assets/scss/var"; | ||||
| .s-info-bar { | ||||
|     display: flex; | ||||
|     flex-direction: row; | ||||
|     justify-content: space-between; | ||||
|     button { | ||||
|       outline: none; | ||||
|     } | ||||
|   } | ||||
|    | ||||
|   .entry-pg { | ||||
|     width: 750px; | ||||
|   } | ||||
|    | ||||
|   .button1::after { | ||||
|     content: none; | ||||
|   } | ||||
|   .button1:hover::after { | ||||
|     content: "ADD ROWS"; | ||||
|   } | ||||
|    | ||||
|   $bg-color: #dddddd; | ||||
|    | ||||
|   .section { | ||||
|     background-color: $bg-color; | ||||
|     height: 40px; | ||||
|   } | ||||
|    | ||||
|   .section p { | ||||
|     //color: white; | ||||
|     font-weight: bold; | ||||
|     padding: 10px; | ||||
|     font-size: 18px; | ||||
|   } | ||||
|    | ||||
|   .clr-input { | ||||
|     color: #212529; | ||||
|     border: 1px solid #ced4da; | ||||
|     border-radius: 0.25rem; | ||||
|     padding: 0.75rem 0.75rem; | ||||
|     margin-top: 3px; | ||||
|     width: 100%; | ||||
|     margin-bottom: 10px; | ||||
|   } | ||||
|    | ||||
|   .clr-file { | ||||
|     color: #212529; | ||||
|     border: 1px solid #ced4da; | ||||
|     border-radius: 0.25rem; | ||||
|     //padding: 0.6rem 0.75rem; | ||||
|     margin-top: 3px; | ||||
|     width: 100%; | ||||
|     margin-bottom: 10px; | ||||
|   } | ||||
|    | ||||
|   .center { | ||||
|     text-align: center; | ||||
|   } | ||||
|   input[type=text],[type=date],textarea { | ||||
|     width: 100%; | ||||
|     padding: 15px 15px; | ||||
|    // margin: 8px 0; | ||||
|    background-color:rgb(255, 255, 255); | ||||
|     display: inline-block; | ||||
|     border: 1px solid #ccc; | ||||
|     border-radius: 4px; | ||||
|     box-sizing: border-box; | ||||
|   } | ||||
|    | ||||
|   .required-field{ | ||||
|     color: red; | ||||
|    | ||||
|   } | ||||
|   select{ | ||||
|     width: 100%; | ||||
|     padding: 5px 5px; | ||||
|     border: 1px solid #ccc; | ||||
|     border-radius: 4px; | ||||
|   } | ||||
|    | ||||
| @ -0,0 +1,25 @@ | ||||
| import { ComponentFixture, TestBed } from '@angular/core/testing'; | ||||
| 
 | ||||
| import { QueryeditComponent } from './queryedit.component'; | ||||
| 
 | ||||
| describe('QueryeditComponent', () => { | ||||
|   let component: QueryeditComponent; | ||||
|   let fixture: ComponentFixture<QueryeditComponent>; | ||||
| 
 | ||||
|   beforeEach(async () => { | ||||
|     await TestBed.configureTestingModule({ | ||||
|       declarations: [ QueryeditComponent ] | ||||
|     }) | ||||
|     .compileComponents(); | ||||
|   }); | ||||
| 
 | ||||
|   beforeEach(() => { | ||||
|     fixture = TestBed.createComponent(QueryeditComponent); | ||||
|     component = fixture.componentInstance; | ||||
|     fixture.detectChanges(); | ||||
|   }); | ||||
| 
 | ||||
|   it('should create', () => { | ||||
|     expect(component).toBeTruthy(); | ||||
|   }); | ||||
| }); | ||||
| @ -0,0 +1,67 @@ | ||||
| import { HttpHeaderResponse } from '@angular/common/http'; | ||||
| import { Component, OnInit } from '@angular/core'; | ||||
| import { FormBuilder } from '@angular/forms'; | ||||
| import { ActivatedRoute, Router } from '@angular/router'; | ||||
| import { ToastrService } from 'ngx-toastr'; | ||||
| import { ReportBuilderService } from 'src/app/services/api/report-builder.service'; | ||||
| @Component({ | ||||
|   selector: 'app-queryedit', | ||||
|   templateUrl: './queryedit.component.html', | ||||
|   styleUrls: ['./queryedit.component.scss'] | ||||
| }) | ||||
| export class QueryeditComponent implements OnInit { | ||||
|   id:any; | ||||
|   tdata:any={}; | ||||
|   selectedFile: File[]=[]; | ||||
|   type = ["MYSQL","postgresql","mysqllite","oracle","Snowflake","BigQuery","RedShift","microsoft sql server","redis","maria_db","MongoDB","firebase","dynamodb","ibm DB2","couchbase","ElasticSearch","Casandra","OrientDB","Neo4j","FireBird"]; | ||||
|   constructor(private _fb: FormBuilder, private router: Router, | ||||
|     private toastr: ToastrService,private route: ActivatedRoute, private reportBuilderService: ReportBuilderService,) { } | ||||
| 
 | ||||
|   ngOnInit(): void { | ||||
|     this.id = this.route.snapshot.params["id"]; | ||||
|     console.log("update with id = ", this.id); | ||||
|     this.getById(this.id); | ||||
|   } | ||||
|   getById(id: number) { | ||||
|     this.reportBuilderService.getSqlModelById(id).subscribe((data) => { | ||||
|         this.tdata = data; | ||||
|         console.log(this.tdata) | ||||
| 
 | ||||
|       }, | ||||
|       (err) => { | ||||
|         console.log(err); | ||||
|       } | ||||
|     ); | ||||
|   } | ||||
|   public onFileChanged(event) { | ||||
|     //Select File
 | ||||
|     console.log(event); | ||||
|     this.selectedFile = event.target.files[0]; | ||||
| 
 | ||||
|   } | ||||
|   onSubmit(){ | ||||
|     this.reportBuilderService.updateSqlModel(this.id,this.tdata).subscribe((data)=>{ | ||||
|       console.log(data); | ||||
|       if(data.status===202){ | ||||
|         this.toastr.success("Updated Succesfully"); | ||||
|       } | ||||
|     },(error: HttpHeaderResponse)=>{ | ||||
|       console.log(error); | ||||
|       if(error.status===202){ | ||||
|         this.toastr.success("Updated Successfully"); | ||||
|       } | ||||
|       if(error.status===404){ | ||||
|         this.toastr.error(" NotUpdated Successfully"); | ||||
|       } | ||||
|       if(error.status===400){ | ||||
|         this.toastr.error(" NotUpdated Successfully"); | ||||
|       } | ||||
|     }); | ||||
|     this.router.navigate(["../../query"], { relativeTo: this.route }); | ||||
| 
 | ||||
|   } | ||||
|   goback(){ | ||||
|     this.router.navigate(["../../query"], { relativeTo: this.route }); | ||||
|   } | ||||
| 
 | ||||
| } | ||||
| @ -1,4 +1,4 @@ | ||||
|  { | ||||
| { | ||||
|   "BREADCRUMB_HOME": "Home", | ||||
|   "USER_GROUP_MAINTENANCE": "User Group Maintenance", | ||||
|   "BREADCRUMB_ABOUT_US": "About Us", | ||||
| @ -17,25 +17,23 @@ | ||||
|   "IMPORT": "Import", | ||||
|   "EXPORT_XLSX": "Export as XLSX", | ||||
|   "ADD": "Add", | ||||
|    | ||||
|     "MENU_ACCESS_CONTROL": "Menu Access Control", | ||||
|     "EDIT_MODE": "Edit Mode", | ||||
|     "FOR": "For", | ||||
|     "RELOAD": "Reload", | ||||
|     "SHOW_ALL": "Show All", | ||||
|     "ONLY_MAIN_MENU": "Only Main Menu", | ||||
|     | ||||
|     "NO_DATA_AVAILABLE": "No data available", | ||||
|     "NO": "No", | ||||
|     "MENU_ITEM_NAME": "Menu Item Name", | ||||
|     "VIEW": "View", | ||||
|     "CREATE": "Create", | ||||
|     "EDIT": "Edit", | ||||
|     "DELETE": "Delete", | ||||
|     "QUERY": "Query", | ||||
|     "EXPORT": "Export", | ||||
|     "SYNC": "Sync", | ||||
|     "editMode": "Edit Mode", | ||||
|   "MENU_ACCESS_CONTROL": "Menu Access Control", | ||||
|   "EDIT_MODE": "Edit Mode", | ||||
|   "FOR": "For", | ||||
|   "RELOAD": "Reload", | ||||
|   "SHOW_ALL": "Show All", | ||||
|   "ONLY_MAIN_MENU": "Only Main Menu", | ||||
|   "NO_DATA_AVAILABLE": "No data available", | ||||
|   "NO": "No", | ||||
|   "MENU_ITEM_NAME": "Menu Item Name", | ||||
|   "VIEW": "View", | ||||
|   "CREATE": "Create", | ||||
|   "EDIT": "Edit", | ||||
|   "DELETE": "Delete", | ||||
|   "QUERY": "Query", | ||||
|   "EXPORT": "Export", | ||||
|   "SYNC": "Sync", | ||||
|   "editMode": "Edit Mode", | ||||
|   "setupCode": "Setup Code", | ||||
|   "value": "Value", | ||||
|   "schedulerTimer": "Scheduler Timer", | ||||
| @ -62,11 +60,9 @@ | ||||
|   "oidAdminUserTooltip": "Admin user for OID access", | ||||
|   "oidServerPort": "OID Server Port", | ||||
|   "oidServerPortTooltip": "Port number for the OID server", | ||||
|    | ||||
|    | ||||
|     "companyDisplayName": "Company Display Name", | ||||
|   "companyDisplayName": "Company Display Name", | ||||
|   "systemParameter": "System Parameter", | ||||
|    "userDefaultGroup": "User Default Group", | ||||
|   "userDefaultGroup": "User Default Group", | ||||
|   "defaultDepartment": "Default Department", | ||||
|   "defaultPosition": "Default Position", | ||||
|   "singleCharge": "Single Charge", | ||||
| @ -97,49 +93,45 @@ | ||||
|   "areYouSureDelete": "Are You Sure Want to delete?", | ||||
|   "updateAccessType": "Update Access Type", | ||||
|   "update": "Update", | ||||
|    | ||||
|     "SEQ_GENERATOR": "Sequence Generator", | ||||
|     "CURRENT_NO": "Current No", | ||||
|     "NAME": "Name", | ||||
|     "PREFIX": "Prefix", | ||||
|     "SEPARATOR": "Separator", | ||||
|     "SEQUENCE_SIZE": "Sequence Size", | ||||
|     "REPORT": "Report", | ||||
|     "REPORT_RUNNER": "Report Runner", | ||||
|   | ||||
|     "REPORT_NAME": "Report Name", | ||||
|     "REPORT_DESCRIPTION": "Report Description", | ||||
|     "ACTIVE": "Active", | ||||
|     "FOLDER_NAME": "Folder Name", | ||||
|     "ACTION": "Action", | ||||
|     "SET_UP": "Set Up", | ||||
|     | ||||
|     "USERS_PER_PAGE": "Users per page", | ||||
|     "OF": "of", | ||||
|     "USERS": "users", | ||||
|     "ARE_YOU_SURE": "Are you sure you want to delete?", | ||||
|     "CANCEL": "Cancel", | ||||
|     "GO_TO": "Go To", | ||||
|     "ALL_REPORTS": "All Reports", | ||||
|     "ALL_REPORT": "All Report", | ||||
|     "REPORT_BUILDER_SQL": "Report Builder (SQL)", | ||||
|     "REPORT_BUILDER_URL": "Report Builder (URL)", | ||||
|     "LOADING_MESSAGE": "Dashboard could be found. Loading..", | ||||
|     "START_FROM_SCRATCH": "Start from scratch", | ||||
|     "IMPORT_TEMPLATE": "Import from a template", | ||||
|     "IMPORT_PUBLIC_PROJECT": "Import from public project", | ||||
|     "DELETE_CONFIRMATION": "Are You Sure Want to delete?", | ||||
|      | ||||
|     "LAST_UPDATED_ON": "Last Updated On:", | ||||
|     "CREATE_NEW_REPORT": "Create New Report", | ||||
|     "ADD_MODE": "Add Mode", | ||||
|      | ||||
|     "ENTER_NAME": "Enter name", | ||||
|     "DESCRIPTION": "Description", | ||||
|     "ENTER_DESCRIPTION": "Enter Description", | ||||
|     | ||||
|     "SUBMIT": "Submit", | ||||
|     "home": "Home", | ||||
|   "SEQ_GENERATOR": "Sequence Generator", | ||||
|   "CURRENT_NO": "Current No", | ||||
|   "NAME": "Name", | ||||
|   "PREFIX": "Prefix", | ||||
|   "SEPARATOR": "Separator", | ||||
|   "SEQUENCE_SIZE": "Sequence Size", | ||||
|   "REPORT": "Report", | ||||
|   "REPORT_RUNNER": "Report Runner", | ||||
|   "REPORT_NAME": "Report Name", | ||||
|   "REPORT_DESCRIPTION": "Report Description", | ||||
|   "API_REGISTERY": "Api Registery", | ||||
|   "API_REGISTERY_DESCRIPTION": "Api Registery Description", | ||||
|   "ACTIVE": "Active", | ||||
|   "FOLDER_NAME": "Folder Name", | ||||
|   "ACTION": "Action", | ||||
|   "SET_UP": "Set Up", | ||||
|   "USERS_PER_PAGE": "Users per page", | ||||
|   "OF": "of", | ||||
|   "USERS": "users", | ||||
|   "ARE_YOU_SURE": "Are you sure you want to delete?", | ||||
|   "CANCEL": "Cancel", | ||||
|   "GO_TO": "Go To", | ||||
|   "ALL_REPORTS": "All Reports", | ||||
|   "ALL_REPORT": "All Report", | ||||
|   "REPORT_BUILDER_SQL": "Report Builder (SQL)", | ||||
|   "REPORT_BUILDER_URL": "Report Builder (URL)", | ||||
|   "LOADING_MESSAGE": "Dashboard could be found. Loading..", | ||||
|   "START_FROM_SCRATCH": "Start from scratch", | ||||
|   "IMPORT_TEMPLATE": "Import from a template", | ||||
|   "IMPORT_PUBLIC_PROJECT": "Import from public project", | ||||
|   "DELETE_CONFIRMATION": "Are You Sure Want to delete?", | ||||
|   "LAST_UPDATED_ON": "Last Updated On:", | ||||
|   "CREATE_NEW_REPORT": "Create New Report", | ||||
|   "ADD_MODE": "Add Mode", | ||||
|   "ENTER_NAME": "Enter name", | ||||
|   "DESCRIPTION": "Description", | ||||
|   "ENTER_DESCRIPTION": "Enter Description", | ||||
|   "SUBMIT": "Submit", | ||||
|   "home": "Home", | ||||
|   "dashboard": "Dashboard", | ||||
|   "all_dashboard": "All Dashboard", | ||||
|   "dashboard_builder": "Dashboard Builder", | ||||
| @ -211,10 +203,8 @@ | ||||
|   "GROUP_LEVEL": "Group Level", | ||||
|   "STATUS": "Status", | ||||
|   "UPDATED_DATE": "Updated Date", | ||||
| 
 | ||||
|   "RECORDS_PER_PAGE": "Record per page", | ||||
|   "IMPORT_FILE": "Import File", | ||||
|    | ||||
|   "UPDATE": "Update", | ||||
|   "ARE_YOU_SURE_DELETE": "Are You Sure Want to delete?", | ||||
|   "THIS_FIELD_REQUIRED": "*This field is Required", | ||||
|  | ||||
							
								
								
									
										224
									
								
								frontend/angular-clarity-master/src/assets/i18n/hi.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										224
									
								
								frontend/angular-clarity-master/src/assets/i18n/hi.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,224 @@ | ||||
| { | ||||
|   "BREADCRUMB_HOME": "मुखपृष्ठ", | ||||
|   "BREADCRUMB_ABOUT_US": "हमारे बारे में", | ||||
|   "ABOUT_TITLE": "हमारे बारे में", | ||||
|   "SETUP": "सेटअप", | ||||
|   "SETUP_TOOLS": "सेटअप टूल्स", | ||||
|   "USER_MAINTENANCE": "उपयोगकर्ता रखरखाव", | ||||
|   "REPORTS": "रिपोर्ट्स", | ||||
|   "REPORTS_DESCRIPTION": "रिपोर्ट्स विवरण", | ||||
|   "USER_GROUP_MAINTENANCE": "उपयोगकर्ता समूह रखरखाव", | ||||
|   "ABOUT_DESCRIPTION": "यदि आपके पास पहुँच है, तो नए उपयोगकर्ताओं के लिए नया प्रोजेक्ट बनाएं। अगर आपके पास पहुँच नहीं है, तो कृपया व्यवस्थापक से संपर्क करें।", | ||||
|   "HOME": "मुख्य पृष्ठ", | ||||
|   "SECURITY": "सुरक्षा", | ||||
|   "MENU_MAINTENANCE": "मेनू रखरखाव", | ||||
|   "MAIN_MENU": "मुख्य मेनू", | ||||
|   "DOWNLOAD_TEMPLATE": "टेम्प्लेट डाउनलोड करें", | ||||
|   "IMPORT": "आयात करें", | ||||
|   "EXPORT_XLSX": "XLSX के रूप में निर्यात करें", | ||||
|   "ADD": "जोड़ें", | ||||
|   "MENU_ACCESS_CONTROL": "मेनू एक्सेस कंट्रोल", | ||||
|   "EDIT_MODE": "संपादन मोड", | ||||
|   "FOR": "के लिए", | ||||
|   "RELOAD": "रिलोड करें", | ||||
|   "SHOW_ALL": "सभी दिखाएं", | ||||
|   "ONLY_MAIN_MENU": "केवल मुख्य मेनू", | ||||
|   "NO_DATA_AVAILABLE": "कोई डेटा उपलब्ध नहीं है", | ||||
|   "NO": "संख्या", | ||||
|   "MENU_ITEM_NAME": "मेनू आइटम नाम", | ||||
|   "VIEW": "देखें", | ||||
|   "CREATE": "बनाएं", | ||||
|   "EDIT": "संपादित करें", | ||||
|   "DELETE": "हटाएं", | ||||
|   "QUERY": "क्वेरी", | ||||
|   "EXPORT": "निर्यात करें", | ||||
|   "SYNC": "सिंक करें", | ||||
|   "editMode": "संपादन मोड", | ||||
|   "setupCode": "सेटअप कोड", | ||||
|   "value": "मूल्य", | ||||
|   "schedulerTimer": "समय सारणी टाइमर", | ||||
|   "schedulerTimerTooltip": "समय सारणी के लिए समय अंतराल", | ||||
|   "leaseTaxCode": "लीज़ कर कोड", | ||||
|   "taxCodeTooltip": "लीज़ के लिए कर कोड", | ||||
|   "vesselConfProcessLimit": "जहाज कॉन्फ़िगरेशन प्रक्रिया सीमा", | ||||
|   "vesselConfProcessLimitTooltip": "जहाज कॉन्फ़िगरेशन प्रक्रिया के लिए सीमा", | ||||
|   "rowToDisplay": "दिखाने के लिए पंक्तियाँ", | ||||
|   "rowToDisplayTooltip": "यूआई में दिखाने के लिए पंक्तियों की संख्या", | ||||
|   "linkToDisplay": "दिखाने के लिए लिंक", | ||||
|   "linkToDisplayTooltip": "पृष्ठ पर दिखाने के लिए URL", | ||||
|   "rowToAdd": "जोड़ने के लिए पंक्तियाँ", | ||||
|   "rowToAddTooltip": "तालिका में जोड़ने के लिए पंक्तियों की संख्या", | ||||
|   "lovRowToDisplay": "LOV पंक्तियाँ दिखाने के लिए", | ||||
|   "lovRowToDisplayTooltip": "मूल्यों की सूची दिखाने के लिए पंक्तियाँ", | ||||
|   "lovLinkToDisplay": "LOV लिंक दिखाने के लिए", | ||||
|   "lovLinkToDisplayTooltip": "LOV लिंक के लिए URL", | ||||
|   "oidServerName": "OID सर्वर का नाम", | ||||
|   "oidServerNameTooltip": "OID सर्वर का नाम", | ||||
|   "oidBase": "OID बेस", | ||||
|   "oidBaseTooltip": "OID के लिए आधार URL", | ||||
|   "oidAdminUser": "OID एडमिन यूज़र", | ||||
|   "oidAdminUserTooltip": "OID एक्सेस के लिए एडमिन यूज़र", | ||||
|   "oidServerPort": "OID सर्वर पोर्ट", | ||||
|   "oidServerPortTooltip": "OID सर्वर के लिए पोर्ट संख्या", | ||||
|   "userDefaultGroup": "उपयोगकर्ता डिफ़ॉल्ट समूह", | ||||
|   "defaultDepartment": "डिफ़ॉल्ट विभाग", | ||||
|   "defaultPosition": "डिफ़ॉल्ट स्थिति", | ||||
|   "singleCharge": "एकल शुल्क", | ||||
|   "firstDayOftheWeek": "सप्ताह का पहला दिन", | ||||
|   "hourPerShift": "प्रति शिफ्ट घंटा", | ||||
|   "cnBillingFrequency": "सीएन बिलिंग आवृत्ति", | ||||
|   "billingDepartmentCode": "बिलिंग विभाग कोड", | ||||
|   "basePriceList": "बेस मूल्य सूची", | ||||
|   "nonContainerServiceOrder": "गैर-कंटेनर सेवा आदेश", | ||||
|   "ediMaeSchedulerONOFF": "ईडीआई एमएई शेड्यूलर ऑन/ऑफ़", | ||||
|   "ediSchedulerONOFF": "ईडीआई शेड्यूलर ऑन/ऑफ़", | ||||
|   "uploadLogo": "लोगो अपलोड करें", | ||||
|   "companyDisplayName": "कंपनी डिस्प्ले नाम", | ||||
|   "systemParameter": "सिस्टम पैरामीटर", | ||||
|   "accessType": "एक्सेस प्रकार", | ||||
|   "add": "जोड़ें", | ||||
|   "modules": "मॉड्यूल्स", | ||||
|   "loading": "लोड हो रहा है ...", | ||||
|   "name": "नाम", | ||||
|   "default": "डिफ़ॉल्ट", | ||||
|   "description": "विवरण", | ||||
|   "addModules": "मॉड्यूल जोड़ें", | ||||
|   "edit": "संपादित करें", | ||||
|   "delete": "हटाएं", | ||||
|   "usersPerPage": "प्रति पृष्ठ उपयोगकर्ता", | ||||
|   "of": "का", | ||||
|   "users": "उपयोगकर्ता", | ||||
|   "addAccessType": "अक्सेस प्रकार जोड़ें", | ||||
|   "cancel": "रद्द करें", | ||||
|   "areYouSureDelete": "क्या आप निश्चित हैं कि आप हटाना चाहते हैं?", | ||||
|   "updateAccessType": "एक्सेस प्रकार अपडेट करें", | ||||
|   "update": "अद्यतन करें", | ||||
|   "SEQ_GENERATOR": "क्रम जनरेटर", | ||||
|   "CURRENT_NO": "वर्तमान संख्या", | ||||
|   "NAME": "नाम", | ||||
|   "PREFIX": "प्रिफिक्स", | ||||
|   "SEPARATOR": "विभाजक", | ||||
|   "SEQUENCE_SIZE": "सीक्वेंस आकार", | ||||
|   "REPORT": "रिपोर्ट", | ||||
|   "REPORT_RUNNER": "रिपोर्ट रनर", | ||||
|   "REPORT_NAME": "रिपोर्ट नाम", | ||||
|   "REPORT_DESCRIPTION": "रिपोर्ट विवरण", | ||||
|   "API_REGISTERY": "एपीआई रजिस्ट्री", | ||||
|   "API_REGISTERY_DESCRIPTION": "एपीआई रजिस्ट्री विवरण", | ||||
|   "ACTIVE": "सक्रिय", | ||||
|   "FOLDER_NAME": "फ़ोल्डर नाम", | ||||
|   "ACTION": "क्रिया", | ||||
|   "SET_UP": "सेट अप", | ||||
|   "GO_TO": "जाएं", | ||||
|   "USERS_PER_PAGE": "प्रति पृष्ठ उपयोगकर्ता", | ||||
|   "OF": "का", | ||||
|   "USERS": "उपयोगकर्ता", | ||||
|   "ARE_YOU_SURE": "क्या आप वाकई इसे हटाना चाहते हैं?", | ||||
|   "CANCEL": "रद्द करें", | ||||
|   "ALL_REPORTS": "सभी रिपोर्ट्स", | ||||
|   "ALL_REPORT": "सभी रिपोर्ट", | ||||
|   "REPORT_BUILDER_SQL": "रिपोर्ट बिल्डर (SQL)", | ||||
|   "REPORT_BUILDER_URL": "रिपोर्ट बिल्डर (URL)", | ||||
|   "LOADING_MESSAGE": "डैशबोर्ड पाया जा सकता है। लोड हो रहा है..", | ||||
|   "START_FROM_SCRATCH": "शुरू से शुरू करें", | ||||
|   "IMPORT_TEMPLATE": "टेम्पलेट से आयात करें", | ||||
|   "IMPORT_PUBLIC_PROJECT": "सार्वजनिक परियोजना से आयात करें", | ||||
|   "DELETE_CONFIRMATION": "क्या आप वाकई हटाना चाहते हैं?", | ||||
|   "LAST_UPDATED_ON": "अंतिम अपडेट:", | ||||
|   "CREATE_NEW_REPORT": "नई रिपोर्ट बनाएं", | ||||
|   "ADD_MODE": "जोड़ने का मोड", | ||||
|   "NAME": "नाम", | ||||
|   "ENTER_NAME": "नाम दर्ज करें", | ||||
|   "DESCRIPTION": "विवरण", | ||||
|   "ENTER_DESCRIPTION": "विवरण दर्ज करें", | ||||
|   "ACTIVE": "सक्रिय", | ||||
|   "CANCEL": "रद्द करें", | ||||
|   "SUBMIT": "जमा करें", | ||||
|   "home": "होम", | ||||
|   "dashboard": "डैशबोर्ड", | ||||
|   "all_dashboard": "सभी डैशबोर्ड", | ||||
|   "dashboard_builder": "डैशबोर्ड बिल्डर", | ||||
|   "dashboard_found": "डैशबोर्ड मिल गया। लोड हो रहा है..", | ||||
|   "loading": "लोड हो रहा है ...", | ||||
|   "last_updated": "अंतिम अद्यतन", | ||||
|   "start_from_scratch": "शुरुआत से शुरू करें", | ||||
|   "import_template": "टेम्पलेट से आयात करें", | ||||
|   "import_public_project": "सार्वजनिक परियोजना से आयात करें", | ||||
|   "delete_confirmation": "क्या आप वाकई हटाना चाहते हैं?", | ||||
|   "cancel": "रद्द करें", | ||||
|   "delete": "हटाएं", | ||||
|   "Dashboard_builder": "डैशबोर्ड बिल्डर", | ||||
|   "Go_to": "जाएं", | ||||
|   "Dashboard_Name": "डैशबोर्ड का नाम", | ||||
|   "Description": "विवरण", | ||||
|   "Security_Profile": "सुरक्षा प्रोफ़ाइल", | ||||
|   "Add_to_home": "होम पर जोड़ें", | ||||
|   "Action": "क्रिया", | ||||
|   "Delete": "हटाएं", | ||||
|   "Who_Column": "कौन कॉलम", | ||||
|   "Account_ID": "खाता आईडी", | ||||
|   "Created_At": "बनाया गया", | ||||
|   "Created_By": "बनाने वाला", | ||||
|   "Updated_At": "अपडेट किया गया", | ||||
|   "Updated_By": "अपडेट करने वाला", | ||||
|   "Start_from_scratch": "शुरू से शुरू करें", | ||||
|   "Import_from_a_template": "टेम्पलेट से आयात करें", | ||||
|   "Import_from_public_project": "सार्वजनिक प्रोजेक्ट से आयात करें", | ||||
|   "Are_you_sure_to_delete": "क्या आप सच में हटाना चाहते हैं?", | ||||
|   "Dashboard_runner": "डैशबोर्ड रनर", | ||||
|   "define_dashboard": "डैशबोर्ड परिभाषित करें", | ||||
|   "add_mode": "जोड़ने का मोड", | ||||
|   "dashboard_name_label": "डैशबोर्ड का नाम", | ||||
|   "dashboard_name_placeholder": "डैशबोर्ड का नाम दर्ज करें", | ||||
|   "security_profile_label": "सुरक्षा प्रोफाइल", | ||||
|   "security_profile_placeholder": "सुरक्षा प्रोफाइल दर्ज करें", | ||||
|   "description_label": "विवरण", | ||||
|   "description_placeholder": "विवरण दर्ज करें", | ||||
|   "add_to_dashboard_label": "डैशबोर्ड में जोड़ें", | ||||
|   "back_button": "वापस", | ||||
|   "submit_button": "सबमिट", | ||||
|   "ACTIVITIES": "गतिविधियाँ", | ||||
|   "SUGGESTION_FOR_YOU": "आपके लिए सुझाव", | ||||
|   "LOADING": "लोड हो रहा है ...", | ||||
|   "NOTIFICATION_NOT_FOUND": "सूचना मिल सकती है।", | ||||
|   "SUGGESTION_NOT_FOUND": "सुझाव मिल सकता है।", | ||||
|   "SERVICE": "सेवा", | ||||
|   "Last Updated On": "आखरी बार अपडेट किया गया", | ||||
|   "REPORT_BUILDER_2": "रिपोर्ट बिल्डर 2", | ||||
|   "REPORT_RUNNER": "रिपोर्ट रनर", | ||||
|   "ADD": "जोड़ें", | ||||
|   "SET_UP": "सेट अप करें", | ||||
|   "REPORT_NAME": "रिपोर्ट का नाम", | ||||
|   "REPORT_DESCRIPTION": "रिपोर्ट विवरण", | ||||
|   "ACTIVE": "सक्रिय", | ||||
|   "ACTION": "क्रिया", | ||||
|   "DELETE": "हटाएँ", | ||||
|   "WHO_COLUMN": "कौन कॉलम", | ||||
|   "ACCOUNT_ID": "खाता आईडी", | ||||
|   "CREATED_AT": "बनाया गया", | ||||
|   "CREATED_BY": "द्वारा बनाया गया", | ||||
|   "UPDATED_AT": "अपडेट किया गया", | ||||
|   "UPDATED_BY": "द्वारा अपडेट किया गया", | ||||
|   "DELETE_CONFIRMATION": "क्या आप वाकई डिलीट करना चाहते हैं?", | ||||
|   "USERGROUP_NO": "उपयोगकर्ता समूह संख्या", | ||||
|   "GROUP_NAME": "समूह नाम", | ||||
|   "GROUP_DESC": "विवरण", | ||||
|   "GROUP_LEVEL": "समूह स्तर", | ||||
|   "STATUS": "स्थिति", | ||||
|   "UPDATED_DATE": "अद्यतन तिथि", | ||||
|   "RECORDS_PER_PAGE": "प्रति पृष्ठ रिकॉर्ड", | ||||
|   "IMPORT_FILE": "फ़ाइल आयात करें", | ||||
|   "UPDATE": "अद्यतन करें", | ||||
|   "ARE_YOU_SURE_DELETE": "क्या आप वाकई इसे हटाना चाहते हैं?", | ||||
|   "THIS_FIELD_REQUIRED": "*यह फ़ील्ड आवश्यक है", | ||||
|   "NO": "संख्या", | ||||
|   "MENU_ITEM_NAME": "मेनू आइटम नाम", | ||||
|   "ID": "आईडी", | ||||
|   "SEQUENCE": "क्रम", | ||||
|   "MODULE_NAME": "मॉड्यूल नाम", | ||||
|   "MENU_ACTION_LINK": "मेनू क्रिया लिंक", | ||||
|   "STATUS": "स्थिति", | ||||
|   "SUB_MENU": "उप मेनू", | ||||
|   "ACTION": "क्रिया", | ||||
|   "BUILDER ITem": "" | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user