report
This commit is contained in:
parent
f7c801e835
commit
656f29018b
@ -26,7 +26,7 @@ export class ReportbuildqueryComponent implements OnInit {
|
|||||||
rows: any[];
|
rows: any[];
|
||||||
loading = false;
|
loading = false;
|
||||||
tableList: TableList[];
|
tableList: TableList[];
|
||||||
databaselist;
|
databaselist = [];
|
||||||
collist;
|
collist;
|
||||||
search: any;
|
search: any;
|
||||||
selectedtable: any[];
|
selectedtable: any[];
|
||||||
@ -116,7 +116,12 @@ export class ReportbuildqueryComponent implements OnInit {
|
|||||||
listoddatabase() {
|
listoddatabase() {
|
||||||
this.reportBuilderService.getdatabse().subscribe((data) => {
|
this.reportBuilderService.getdatabse().subscribe((data) => {
|
||||||
this.databaselist = data;
|
this.databaselist = data;
|
||||||
console.log(this.databaselist)
|
console.log('database list ', this.databaselist)
|
||||||
|
|
||||||
|
if (this.databaselist.length == 0) {
|
||||||
|
this.errorco = "No data Available";
|
||||||
|
|
||||||
|
}
|
||||||
}, (error) => {
|
}, (error) => {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
if (error) {
|
if (error) {
|
||||||
@ -192,13 +197,10 @@ this.rowdata= [this.rows];
|
|||||||
var j;
|
var j;
|
||||||
var cart = [];
|
var cart = [];
|
||||||
|
|
||||||
for(var i = 0; i < data.length; i++)
|
for (var i = 0; i < data.length; i++) {
|
||||||
{
|
|
||||||
var columnsIn = data[i];
|
var columnsIn = data[i];
|
||||||
if(i==1)
|
if (i == 1) {
|
||||||
{
|
for (var key in columnsIn) {
|
||||||
for(var key in columnsIn)
|
|
||||||
{
|
|
||||||
j = { prop: key, name: key };
|
j = { prop: key, name: key };
|
||||||
cart.push(j)
|
cart.push(j)
|
||||||
|
|
||||||
@ -464,8 +466,10 @@ this.selectedquery=val;
|
|||||||
this.query = false;
|
this.query = false;
|
||||||
}
|
}
|
||||||
opencopym() {
|
opencopym() {
|
||||||
this.router.navigate(["../queryadd"], { relativeTo: this.route });
|
// this.router.navigate(['cns-portal', 'reportbuild','reportQuery', this.id, 'queryadd']);
|
||||||
|
this.router.navigate(['queryadd'], { relativeTo: this.route });
|
||||||
}
|
}
|
||||||
|
|
||||||
onCreate() {
|
onCreate() {
|
||||||
console.log(this.addForm.value);
|
console.log(this.addForm.value);
|
||||||
this.reportBuilderService.createdb(this.addForm.value).subscribe((data) => {
|
this.reportBuilderService.createdb(this.addForm.value).subscribe((data) => {
|
||||||
|
|||||||
@ -20,7 +20,8 @@
|
|||||||
<div class="clr-row">
|
<div class="clr-row">
|
||||||
|
|
||||||
<div class="clr-col-md-3" style="width: 300px ;" *ngFor="let item of sub;">
|
<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" (click)="goToUserMaintenance(item)"
|
||||||
|
style="border-left: none; border-right: none; border-top: none;">
|
||||||
|
|
||||||
|
|
||||||
<div class="card-header" style="padding-bottom: 0px;">
|
<div class="card-header" style="padding-bottom: 0px;">
|
||||||
@ -29,7 +30,9 @@
|
|||||||
<clr-icon shape="cog"></clr-icon>
|
<clr-icon shape="cog"></clr-icon>
|
||||||
</div>
|
</div>
|
||||||
<div class="clr-col-2">
|
<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'}" >
|
<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>
|
||||||
</div> <br>
|
</div> <br>
|
||||||
<div class="clr-row">
|
<div class="clr-row">
|
||||||
@ -39,7 +42,8 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="clr-row">
|
<div class="clr-row">
|
||||||
<div class="clr-col-12"> <div class="card-title1" id="word" >
|
<div class="clr-col-12">
|
||||||
|
<div class="card-title1" id="word">
|
||||||
<b style="font-size: 15px;" class="p2" [title]="">{{item.menuItemDesc}}</b>
|
<b style="font-size: 15px;" class="p2" [title]="">{{item.menuItemDesc}}</b>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -65,7 +69,8 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="clr-row">
|
<div class="clr-row">
|
||||||
<div class="clr-col-12"> <div class="card-title1" id="word" >
|
<div class="clr-col-12">
|
||||||
|
<div class="card-title1" id="word">
|
||||||
<b style="font-size: 15px;" class="p2" [title]="">{{ 'REPORTS_DESCRIPTION' | translate }}</b>
|
<b style="font-size: 15px;" class="p2" [title]="">{{ 'REPORTS_DESCRIPTION' | translate }}</b>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -76,4 +81,35 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- 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>
|
</div>
|
||||||
@ -73,6 +73,10 @@ export class SetupiconComponent implements OnInit{
|
|||||||
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;
|
// mc;
|
||||||
// me;
|
// me;
|
||||||
|
|||||||
@ -1,4 +1,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
import { SequencegenaratorComponent } from './fnd/sequencegenarator/sequencegenarator.component';
|
import { SequencegenaratorComponent } from './fnd/sequencegenarator/sequencegenarator.component';
|
||||||
import { Component, NgModule } from '@angular/core';
|
import { Component, NgModule } from '@angular/core';
|
||||||
import { Routes, RouterModule } from '@angular/router';
|
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 { MappingruleallComponent } from './datamanagement/mappingrule/mappingruleall/mappingruleall.component';
|
||||||
import { MappingruleaddComponent } from './datamanagement/mappingrule/mappingruleadd/mappingruleadd.component';
|
import { MappingruleaddComponent } from './datamanagement/mappingrule/mappingruleadd/mappingruleadd.component';
|
||||||
import { MappingruleeditComponent } from './datamanagement/mappingrule/mappingruleedit/mappingruleedit.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: 'all', component: ReportbuildallComponent },
|
||||||
{ path: 'add', component: ReportbuildaddComponent },
|
{ path: 'add', component: ReportbuildaddComponent },
|
||||||
{ path: 'edit/:id', component: ReportbuildeditComponent },
|
{ 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,
|
path: 'reportbuild2', component: ReportBuild2Component,
|
||||||
@ -242,8 +259,6 @@ const routes: Routes = [
|
|||||||
|
|
||||||
// buildercomponents
|
// buildercomponents
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{ path: '**', component: PageNotFoundComponent },
|
{ 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 { CommonModule } from '@angular/common';
|
||||||
|
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
|
||||||
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
||||||
import { ClarityModule } from '@clr/angular';
|
import { ClarityModule } from '@clr/angular';
|
||||||
|
|
||||||
import { MainRoutingModule } from './main-routing.module';
|
|
||||||
import { MainPageComponent } from '../main/fnd/main-page/main-page.component';
|
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 { PageNotFoundComponent } from './page-not-found/page-not-found.component';
|
||||||
// import { AboutComponent } from '../main/admin/about/about.component';
|
// import { AboutComponent } from '../main/admin/about/about.component';
|
||||||
// import { LayoutComponent } from './layout/layout.component';
|
// import { LayoutComponent } from './layout/layout.component';
|
||||||
import { UserComponent } from '../main/admin/user/user.component';
|
|
||||||
import { HelperModule } from 'src/app/pipes/helpers.module';
|
import { HelperModule } from 'src/app/pipes/helpers.module';
|
||||||
import { PasswordResetComponent } from '../main/admin/password-reset/password-reset.component';
|
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 { AllMenuGroupComponent } from '../main/admin/menu-group/all/all-menu-group.component';
|
||||||
import { EditMenuGroupComponent } from '../main/admin/menu-group/edit/edit-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 { 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 { 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 { 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 { ReadonlyMenurComponent } from '../main/admin/menu-register/readonly-menur/readonly-menur.component';
|
||||||
import { ProfileSettingComponent } from '../main/admin/profile-setting/profile-setting.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 { UsermaintanceaddComponent } from '../main/admin/usermaintanceadd/usermaintanceadd.component';
|
||||||
import { UsermaintanceeditComponent } from '../main/admin/usermaintanceedit/usermaintanceedit.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 { 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 { 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 { UserRegistrationComponent } from '../main/admin/user-registration/user-registration.component';
|
||||||
|
|
||||||
import { QRCodeModule } from 'angularx-qrcode';
|
import { QRCodeModule } from 'angularx-qrcode';
|
||||||
import { ImageCropperModule } from 'ngx-image-cropper';
|
|
||||||
import { SubmenuComponent } from './admin/submenu/submenu.component';
|
|
||||||
import { TagInputModule } from 'ngx-chips';
|
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 { 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 { SessionloggerComponent } from './admin/sessionlogger/sessionlogger.component';
|
||||||
|
import { SubmenuComponent } from './admin/submenu/submenu.component';
|
||||||
|
|
||||||
import { WireframeService } from 'src/app/services/builder/wireframe.service';
|
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 { 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 { ReportbuildeditComponent } from './builder/report-build/reportbuildedit/reportbuildedit.component';
|
||||||
import { ReportbuildqueryComponent } from './builder/report-build/reportbuildquery/reportbuildquery.component';
|
import { ReportbuildqueryComponent } from './builder/report-build/reportbuildquery/reportbuildquery.component';
|
||||||
import { ReportBuild2Component } from './builder/report-build2/report-build2.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 { 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 { 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 { EditformnewdashComponent } from './builder/dashboardnew/editformnewdash/editformnewdash.component';
|
||||||
import { EditnewdashComponent } from './builder/dashboardnew/editnewdash/editnewdash.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 { ScheduleComponent } from './builder/dashboardnew/schedule/schedule.component';
|
||||||
import { SetupiconComponent } from './builder/setupicon/setupicon.component';
|
|
||||||
import { AddextensionComponent } from './fnd/extension/addextension/addextension.component';
|
import { AddextensionComponent } from './fnd/extension/addextension/addextension.component';
|
||||||
import { AllextensionComponent } from './fnd/extension/allextension/allextension.component';
|
import { AllextensionComponent } from './fnd/extension/allextension/allextension.component';
|
||||||
import { EditextensionComponent } from './fnd/extension/editextension/editextension.component';
|
import { EditextensionComponent } from './fnd/extension/editextension/editextension.component';
|
||||||
import { ExtensionComponent } from './fnd/extension/extension.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 { 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 { DoughnutRunnerComponent } from './builder/dashboardrunner/dashrunnerline/doughnut-runner/doughnut-runner.component';
|
||||||
import { GridRunnerComponent } from './builder/dashboardrunner/dashrunnerline/grid-runner/grid-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 { PieRunnerComponent } from './builder/dashboardrunner/dashrunnerline/pie-runner/pie-runner.component';
|
||||||
import { PolarRunnerComponent } from './builder/dashboardrunner/dashrunnerline/polar-runner/polar-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 { RadarRunnerComponent } from './builder/dashboardrunner/dashrunnerline/radar-runner/radar-runner.component';
|
||||||
import { ScatterRunnerComponent } from './builder/dashboardrunner/dashrunnerline/scatter-runner/scatter-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 { 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 { 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 { DatamanagementComponent } from './datamanagement/datamanagement/datamanagement.component';
|
||||||
import { DatamananementworkflowComponent } from './datamanagement/datamananementworkflow/datamananementworkflow.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 { MappingruleComponent } from './datamanagement/mappingrule/mappingrule.component';
|
||||||
import { MappingruleallComponent } from './datamanagement/mappingrule/mappingruleall/mappingruleall.component';
|
|
||||||
import { MappingruleaddComponent } from './datamanagement/mappingrule/mappingruleadd/mappingruleadd.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 { 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({
|
@NgModule({
|
||||||
declarations: [
|
declarations: [
|
||||||
@ -134,7 +118,7 @@ import { MappingruleeditComponent } from './datamanagement/mappingrule/mappingru
|
|||||||
DashboardnewComponent, EditformnewdashComponent, EditnewdashComponent, ScheduleComponent,
|
DashboardnewComponent, EditformnewdashComponent, EditnewdashComponent, ScheduleComponent,
|
||||||
DoughnutChartComponent, LineChartComponent, RadarChartComponent, BarChartComponent, BubbleChartComponent, DynamicChartComponent, ScatterChartComponent, PolarChartComponent, PieChartComponent, FinancialChartComponent, ToDoChartComponent, GridViewComponent,
|
DoughnutChartComponent, LineChartComponent, RadarChartComponent, BarChartComponent, BubbleChartComponent, DynamicChartComponent, ScatterChartComponent, PolarChartComponent, PieChartComponent, FinancialChartComponent, ToDoChartComponent, GridViewComponent,
|
||||||
DashrunnerlineComponent, BarRunnerComponent, LineRunnerComponent, DoughnutRunnerComponent, GridRunnerComponent, PieRunnerComponent, PolarRunnerComponent, RadarRunnerComponent, ScatterRunnerComponent, TodoRunnerComponent, BubbleRunnerComponent,
|
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,
|
ExtensionComponent,
|
||||||
AllextensionComponent,
|
AllextensionComponent,
|
||||||
AddextensionComponent, EditextensionComponent, ApiregisteryComponent,
|
AddextensionComponent, EditextensionComponent, ApiregisteryComponent,
|
||||||
@ -145,8 +129,6 @@ import { MappingruleeditComponent } from './datamanagement/mappingrule/mappingru
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
],
|
],
|
||||||
imports: [
|
imports: [
|
||||||
QRCodeModule,
|
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 });
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -17,14 +17,12 @@
|
|||||||
"IMPORT": "Import",
|
"IMPORT": "Import",
|
||||||
"EXPORT_XLSX": "Export as XLSX",
|
"EXPORT_XLSX": "Export as XLSX",
|
||||||
"ADD": "Add",
|
"ADD": "Add",
|
||||||
|
|
||||||
"MENU_ACCESS_CONTROL": "Menu Access Control",
|
"MENU_ACCESS_CONTROL": "Menu Access Control",
|
||||||
"EDIT_MODE": "Edit Mode",
|
"EDIT_MODE": "Edit Mode",
|
||||||
"FOR": "For",
|
"FOR": "For",
|
||||||
"RELOAD": "Reload",
|
"RELOAD": "Reload",
|
||||||
"SHOW_ALL": "Show All",
|
"SHOW_ALL": "Show All",
|
||||||
"ONLY_MAIN_MENU": "Only Main Menu",
|
"ONLY_MAIN_MENU": "Only Main Menu",
|
||||||
|
|
||||||
"NO_DATA_AVAILABLE": "No data available",
|
"NO_DATA_AVAILABLE": "No data available",
|
||||||
"NO": "No",
|
"NO": "No",
|
||||||
"MENU_ITEM_NAME": "Menu Item Name",
|
"MENU_ITEM_NAME": "Menu Item Name",
|
||||||
@ -62,8 +60,6 @@
|
|||||||
"oidAdminUserTooltip": "Admin user for OID access",
|
"oidAdminUserTooltip": "Admin user for OID access",
|
||||||
"oidServerPort": "OID Server Port",
|
"oidServerPort": "OID Server Port",
|
||||||
"oidServerPortTooltip": "Port number for the OID server",
|
"oidServerPortTooltip": "Port number for the OID server",
|
||||||
|
|
||||||
|
|
||||||
"companyDisplayName": "Company Display Name",
|
"companyDisplayName": "Company Display Name",
|
||||||
"systemParameter": "System Parameter",
|
"systemParameter": "System Parameter",
|
||||||
"userDefaultGroup": "User Default Group",
|
"userDefaultGroup": "User Default Group",
|
||||||
@ -97,7 +93,6 @@
|
|||||||
"areYouSureDelete": "Are You Sure Want to delete?",
|
"areYouSureDelete": "Are You Sure Want to delete?",
|
||||||
"updateAccessType": "Update Access Type",
|
"updateAccessType": "Update Access Type",
|
||||||
"update": "Update",
|
"update": "Update",
|
||||||
|
|
||||||
"SEQ_GENERATOR": "Sequence Generator",
|
"SEQ_GENERATOR": "Sequence Generator",
|
||||||
"CURRENT_NO": "Current No",
|
"CURRENT_NO": "Current No",
|
||||||
"NAME": "Name",
|
"NAME": "Name",
|
||||||
@ -106,14 +101,14 @@
|
|||||||
"SEQUENCE_SIZE": "Sequence Size",
|
"SEQUENCE_SIZE": "Sequence Size",
|
||||||
"REPORT": "Report",
|
"REPORT": "Report",
|
||||||
"REPORT_RUNNER": "Report Runner",
|
"REPORT_RUNNER": "Report Runner",
|
||||||
|
|
||||||
"REPORT_NAME": "Report Name",
|
"REPORT_NAME": "Report Name",
|
||||||
"REPORT_DESCRIPTION": "Report Description",
|
"REPORT_DESCRIPTION": "Report Description",
|
||||||
|
"API_REGISTERY": "Api Registery",
|
||||||
|
"API_REGISTERY_DESCRIPTION": "Api Registery Description",
|
||||||
"ACTIVE": "Active",
|
"ACTIVE": "Active",
|
||||||
"FOLDER_NAME": "Folder Name",
|
"FOLDER_NAME": "Folder Name",
|
||||||
"ACTION": "Action",
|
"ACTION": "Action",
|
||||||
"SET_UP": "Set Up",
|
"SET_UP": "Set Up",
|
||||||
|
|
||||||
"USERS_PER_PAGE": "Users per page",
|
"USERS_PER_PAGE": "Users per page",
|
||||||
"OF": "of",
|
"OF": "of",
|
||||||
"USERS": "users",
|
"USERS": "users",
|
||||||
@ -129,15 +124,12 @@
|
|||||||
"IMPORT_TEMPLATE": "Import from a template",
|
"IMPORT_TEMPLATE": "Import from a template",
|
||||||
"IMPORT_PUBLIC_PROJECT": "Import from public project",
|
"IMPORT_PUBLIC_PROJECT": "Import from public project",
|
||||||
"DELETE_CONFIRMATION": "Are You Sure Want to delete?",
|
"DELETE_CONFIRMATION": "Are You Sure Want to delete?",
|
||||||
|
|
||||||
"LAST_UPDATED_ON": "Last Updated On:",
|
"LAST_UPDATED_ON": "Last Updated On:",
|
||||||
"CREATE_NEW_REPORT": "Create New Report",
|
"CREATE_NEW_REPORT": "Create New Report",
|
||||||
"ADD_MODE": "Add Mode",
|
"ADD_MODE": "Add Mode",
|
||||||
|
|
||||||
"ENTER_NAME": "Enter name",
|
"ENTER_NAME": "Enter name",
|
||||||
"DESCRIPTION": "Description",
|
"DESCRIPTION": "Description",
|
||||||
"ENTER_DESCRIPTION": "Enter Description",
|
"ENTER_DESCRIPTION": "Enter Description",
|
||||||
|
|
||||||
"SUBMIT": "Submit",
|
"SUBMIT": "Submit",
|
||||||
"home": "Home",
|
"home": "Home",
|
||||||
"dashboard": "Dashboard",
|
"dashboard": "Dashboard",
|
||||||
@ -211,10 +203,8 @@
|
|||||||
"GROUP_LEVEL": "Group Level",
|
"GROUP_LEVEL": "Group Level",
|
||||||
"STATUS": "Status",
|
"STATUS": "Status",
|
||||||
"UPDATED_DATE": "Updated Date",
|
"UPDATED_DATE": "Updated Date",
|
||||||
|
|
||||||
"RECORDS_PER_PAGE": "Record per page",
|
"RECORDS_PER_PAGE": "Record per page",
|
||||||
"IMPORT_FILE": "Import File",
|
"IMPORT_FILE": "Import File",
|
||||||
|
|
||||||
"UPDATE": "Update",
|
"UPDATE": "Update",
|
||||||
"ARE_YOU_SURE_DELETE": "Are You Sure Want to delete?",
|
"ARE_YOU_SURE_DELETE": "Are You Sure Want to delete?",
|
||||||
"THIS_FIELD_REQUIRED": "*This field is Required",
|
"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