penambahan page monitoring building dan master category

This commit is contained in:
Fuzi_fauzia 2024-04-23 10:49:24 +07:00
parent 5187f4e29f
commit fcdafc8aea
10 changed files with 611 additions and 353 deletions

View File

@ -1,29 +1,66 @@
<footer id="footer" class="footer footer-static footer-light navbar-border navbar-shadow" *ngIf="showFooter"> <footer
<p class="clearfix blue-grey lighten-2 text-sm-center mb-0 px-2"><span id="footer"
class="float-md-left d-block d-md-inline-block">Copyright &copy; 2022 <a [routerLink]="" class="footer footer-static footer-light navbar-border navbar-shadow"
class="text-bold-800 grey darken-2" href="https://themeforest.net/user/pixinvent/portfolio?ref=pixinvent" *ngIf="showFooter"
target="_blank">PIXINVENT </a></span><span *ngIf="!hideMadeWithLove" >
class="float-md-right d-block d-md-inline-block d-none d-lg-block">Hand-crafted & Made with <i <p class="clearfix blue-grey lighten-2 text-sm-center mb-0 px-2">
class="feather ft-heart pink"></i> <span class="float-md-left d-block d-md-inline-block"
<span id="scroll-top"></span></span></p> >Copyright &copy; 2024
<a
[routerLink]=""
class="text-bold-800 grey darken-2"
href="https://allbestsistem.com/"
target="_blank"
>Allbest Solusi Sistem
</a></span
>
</p>
</footer> </footer>
<footer id="footer" class="footer fixed-bottom footer-light navbar-border navbar-shadow" *ngIf="fixedFooter"> <footer
<p class="clearfix blue-grey lighten-2 text-sm-center mb-0 px-2"><span id="footer"
class="float-md-left d-block d-md-inline-block">Copyright &copy; 2022 <a [routerLink]="" class="footer fixed-bottom footer-light navbar-border navbar-shadow"
class="text-bold-800 grey darken-2" href="https://themeforest.net/user/pixinvent/portfolio?ref=pixinvent" *ngIf="fixedFooter"
target="_blank">PIXINVENT </a></span><span *ngIf="!hideMadeWithLove" >
class="float-md-right d-block d-md-inline-block d-none d-lg-block">Hand-crafted & Made with <i <p class="clearfix blue-grey lighten-2 text-sm-center mb-0 px-2">
class="feather ft-heart pink"></i> <span class="float-md-left d-block d-md-inline-block"
<span id="scroll-top"></span></span></p> >Copyright &copy; 2022
<a
[routerLink]=""
class="text-bold-800 grey darken-2"
href="https://themeforest.net/user/pixinvent/portfolio?ref=pixinvent"
target="_blank"
>PIXINVENT
</a></span
><span
*ngIf="!hideMadeWithLove"
class="float-md-right d-block d-md-inline-block d-none d-lg-block"
>Hand-crafted & Made with <i class="feather ft-heart pink"></i>
<span id="scroll-top"></span
></span>
</p>
</footer> </footer>
<footer id="footer" class="footer fixed-bottom footer-dark navbar-border navbar-shadow" *ngIf="darkFooter"> <footer
<p class="clearfix blue-grey lighten-2 text-sm-center mb-0 px-2"><span id="footer"
class="float-md-left d-block d-md-inline-block">Copyright &copy; 2022 <a [routerLink]="" class="footer fixed-bottom footer-dark navbar-border navbar-shadow"
class="text-bold-800 grey darken-2" href="https://themeforest.net/user/pixinvent/portfolio?ref=pixinvent" *ngIf="darkFooter"
target="_blank">PIXINVENT </a></span><span *ngIf="!hideMadeWithLove" >
class="float-md-right d-block d-md-inline-block d-none d-lg-block">Hand-crafted & Made with <i <p class="clearfix blue-grey lighten-2 text-sm-center mb-0 px-2">
class="feather ft-heart pink"></i> <span class="float-md-left d-block d-md-inline-block"
<span id="scroll-top"></span></span></p> >Copyright &copy; 2022
<a
[routerLink]=""
class="text-bold-800 grey darken-2"
href="https://themeforest.net/user/pixinvent/portfolio?ref=pixinvent"
target="_blank"
>PIXINVENT
</a></span
><span
*ngIf="!hideMadeWithLove"
class="float-md-right d-block d-md-inline-block d-none d-lg-block"
>Hand-crafted & Made with <i class="feather ft-heart pink"></i>
<span id="scroll-top"></span
></span>
</p>
</footer> </footer>

View File

@ -38,7 +38,7 @@
<div class="card-dashboard"> <div class="card-dashboard">
<ngx-datatable <ngx-datatable
class="bootstrap table-bordered" class="bootstrap table-bordered"
[limit]="7" [limit]="10"
[rows]="filteredRows" [rows]="filteredRows"
[columnMode]="'force'" [columnMode]="'force'"
[headerHeight]="50" [headerHeight]="50"
@ -65,7 +65,7 @@
[minWidth]="90" [minWidth]="90"
> >
<ng-template ngx-datatable-header-template> <ng-template ngx-datatable-header-template>
<span>Device Name</span> <span>Estimasi Cost Name</span>
</ng-template> </ng-template>
<ng-template <ng-template
let-value="value" let-value="value"

View File

@ -38,7 +38,7 @@
<div class="card-dashboard"> <div class="card-dashboard">
<ngx-datatable <ngx-datatable
class="bootstrap table-bordered" class="bootstrap table-bordered"
[limit]="7" [limit]="10"
[rows]="filteredRows" [rows]="filteredRows"
[columnMode]="'force'" [columnMode]="'force'"
[headerHeight]="50" [headerHeight]="50"

View File

@ -0,0 +1,190 @@
:host ::ng-deep .ngx-datatable.bootstrap .datatable-header .datatable-header-cell .datatable-header-cell-label {
font-family: inherit;
font-size: medium;
font-weight: bold;
color: #6B6F82;
}
:host ::ng-deep .ngx-datatable .datatable-row-center, .ngx-datatable .datatable-row-group, .ngx-datatable .datatable-row-right {
position: relative;
height: 50px !important;
}
:host ::ng-deep .datatable-icon-right:before {
font-family: 'icofont';
font-style: normal;
}
:host ::ng-deep .datatable-icon-skip:before {
font-family: 'icofont';
font-style: normal;
}
:host ::ng-deep .datatable-icon-left:before {
font-family: 'icofont';
font-style: normal;
}
:host ::ng-deep .datatable-icon-left:before {
content: "\2039";
font-size: x-large;
}
:host ::ng-deep .datatable-icon-prev:before {
content: "\00AB";
font-size: x-large;
}
:host ::ng-deep .datatable-icon-right:before {
content: "\203A";
font-size: x-large;
}
:host ::ng-deep .datatable-icon-skip:before {
content: "\00BB";
font-size: x-large;
}
:host ::ng-deep .ngx-datatable.bootstrap .datatable-footer .datatable-pager .datatable-icon-left,
.ngx-datatable.bootstrap .datatable-footer .datatable-pager .datatable-icon-right,
.ngx-datatable.bootstrap .datatable-footer .datatable-pager .datatable-icon-prev {
font-size: 16px;
line-height: 22px;
padding: 0px 09px;
background-color: #d4d2e7;
}
:host ::ng-deep .ngx-datatable.bootstrap .datatable-footer .datatable-pager .datatable-icon-right,
.ngx-datatable.bootstrap .datatable-footer .datatable-pager .datatable-icon-right {
font-size: 16px;
line-height: 22px;
padding: 0px 09px;
background-color: #d4d2e7;
}
:host ::ng-deep .ngx-datatable.bootstrap .datatable-footer .datatable-pager .datatable-icon-skip {
font-size: 16px;
line-height: 22px;
padding: 0px 09px;
background-color: #d4d2e7;
}
:host ::ng-deep .ngx-datatable.bootstrap .datatable-footer .datatable-pager .datatable-icon-prev {
font-size: 16px;
line-height: 22px;
padding: 0px 09px;
background-color: #d4d2e7;
}
:host ::ng-deep .datatable-footer .datatable-pager ul li:not(.disabled).active a,
.ngx-datatable.bootstrap[_ngcontent-c11] .datatable-footer[_ngcontent-c11] .datatable-pager[_ngcontent-c11] ul[_ngcontent-c11] li[_ngcontent-c11]:not(.disabled):hover a[_ngcontent-c11] {
background-color: #d4d2e7;
font-weight: bold;
font-size: larger;
}
:host ::ng-deep .ngx-datatable.bootstrap .datatable-footer .datatable-pager a {
height: 32px;
min-width: 34px;
line-height: 22px;
padding: 0;
border-radius: 3px;
margin: 0 3px;
text-align: center;
vertical-align: top;
padding-top: 3px;
text-decoration: none;
vertical-align: bottom;
color: #7c8091;
}
:host ::ng-deep .ngx-datatable.bootstrap .datatable-footer .datatable-pager .datatable-icon-left,
.ngx-datatable.bootstrap[_ngcontent-c11] .datatable-footer[_ngcontent-c11] .datatable-pager[_ngcontent-c11] .datatable-icon-right[_ngcontent-c11],
.ngx-datatable.bootstrap[_ngcontent-c11] .datatable-footer[_ngcontent-c11] .datatable-pager[_ngcontent-c11] .datatable-icon-prev[_ngcontent-c11] {
font-size: 14px;
line-height: 9px;
padding: 0px 08px;
background-color: #ffffff;
}
:host ::ng-deep .ngx-datatable.bootstrap .datatable-footer .datatable-pager .datatable-icon-left,
.ngx-datatable.bootstrap[_ngcontent-c11] .datatable-footer[_ngcontent-c11] .datatable-pager[_ngcontent-c11] .datatable-icon-right[_ngcontent-c11],
.ngx-datatable.bootstrap[_ngcontent-c11] .datatable-footer[_ngcontent-c11] .datatable-pager[_ngcontent-c11] .datatable-icon-prev[_ngcontent-c11] {
font-size: 0px;
line-height: 22px;
padding: 0px 09px;
background-color: #ffffff;
}
:host ::ng-deep .ngx-datatable.bootstrap .datatable-footer .datatable-pager .datatable-icon-right,
.ngx-datatable.bootstrap[_ngcontent-c11] .datatable-footer[_ngcontent-c11] .datatable-pager[_ngcontent-c11] .datatable-icon-right[_ngcontent-c11],
.ngx-datatable.bootstrap[_ngcontent-c11] .datatable-footer[_ngcontent-c11] .datatable-pager[_ngcontent-c11] .datatable-icon-prev[_ngcontent-c11] {
font-size: 0px;
line-height: 22px;
padding: 0px 09px;
background-color: #ffffff;
}
:host ::ng-deep .ngx-datatable.bootstrap .datatable-footer .datatable-pager .datatable-icon-skip,
.ngx-datatable.bootstrap[_ngcontent-c11] .datatable-footer[_ngcontent-c11] .datatable-pager[_ngcontent-c11] .datatable-icon-right[_ngcontent-c11],
.ngx-datatable.bootstrap[_ngcontent-c11] .datatable-footer[_ngcontent-c11] .datatable-pager[_ngcontent-c11] .datatable-icon-prev[_ngcontent-c11] {
font-size: 0px;
line-height: 22px;
padding: 0px 09px;
background-color: #ffffff;
}
:host ::ng-deep .ngx-datatable.bootstrap .datatable-footer .datatable-pager .datatable-icon-prev,
.ngx-datatable.bootstrap[_ngcontent-c11] .datatable-footer[_ngcontent-c11] .datatable-pager[_ngcontent-c11] .datatable-icon-right[_ngcontent-c11],
.ngx-datatable.bootstrap[_ngcontent-c11] .datatable-footer[_ngcontent-c11] .datatable-pager[_ngcontent-c11] .datatable-icon-prev[_ngcontent-c11] {
font-size: 0px;
line-height: 22px;
padding: 0px 09px;
background-color: #ffffff;
}
:host ::ng-deep .ngx-datatable.bootstrap .datatable-footer .datatable-pager ul li:not(.disabled):hover a {
background-color: #545454;
font-weight: bold;
color: white;
}
:host ::ng-deep .ngx-datatable.bootstrap .datatable-footer .datatable-pager ul li:not(.disabled).active a,
.ngx-datatable.bootstrap .datatable-footer .datatable-pager ul li:not(.disabled):hover a {
background-color: #545454;
font-weight: bold;
color: white;
}
:host ::ng-deep .ngx-datatable.bootstrap .datatable-footer {
background: #727e8e;
color: #ededed;
margin-top: -1px;
overflow: inherit;
}
:host ::ng-deep .ngx-datatable.bootstrap .datatable-header {
font-weight: bold;
height: unset !important;
overflow: inherit
}
:host ::ng-deep .ngx-datatable .datatable-footer .datatable-pager {
flex: 0 0 0%;
}
:host ::ng-deep .ngx-datatable .datatable-footer .datatable-pager .pager {
display: flex;
}
:host ::ng-deep .block-ui-wrapper {
background: rgba(255, 249, 249, 0.5) !important;
}
:host ::ng-deep .ngx-datatable .datatable-footer .selected-count .datatable-pager {
flex: 0 0 0%;
}
:host ::ng-deep .ngx-datatable {
display: -webkit-box;
}

View File

@ -1 +1,131 @@
<p>master-category works!</p> <div class="app-content content">
<div class="content-wrapper">
<div class="content-header row mb-1">
<app-breadcrumb class="col-12" [breadcrumb]="breadcrumb"></app-breadcrumb>
</div>
<div class="content-body">
<section id="configuration">
<div class="row">
<div
class="col-12"
*blockUI="'zeroConfiguration'; message: 'Loading'"
>
<m-card>
<ng-container mCardHeaderTitle>
Master Category Table
</ng-container>
<ng-container mCardBody>
<div class="row mb-2">
<div class="col-md-6">
<input
type="text"
class="form-control"
placeholder="Search..."
[(ngModel)]="searchTerm"
(input)="filterRows()"
(touchstart)="onTouchStart($event)"
/>
</div>
<div class="col-md-6 text-right">
<button
class="btn btn-secondary"
>
<i class="feather ft-plus"></i>&nbsp; Add new master
</button>
</div>
</div>
<div class="card-dashboard">
<ngx-datatable
class="bootstrap table-bordered"
[limit]="10"
[rows]="filteredRows"
[columnMode]="'force'"
[headerHeight]="50"
[footerHeight]="50"
[rowHeight]="50"
fxFlex="auto"
[scrollbarH]="true"
>
<ngx-datatable-column
name="#"
[flexGrow]="1"
[minWidth]="10"
>
<ng-template
ngx-datatable-cell-template
let-rowIndex="rowIndex"
>
{{ rowIndex + 1 }}
</ng-template>
</ngx-datatable-column>
<ngx-datatable-column
name="Name"
[flexGrow]="1"
[minWidth]="90"
>
<ng-template ngx-datatable-header-template>
<span>Category Name</span>
</ng-template>
<ng-template
let-value="value"
ngx-datatable-cell-template
>
{{ value }}
</ng-template>
</ngx-datatable-column>
<ngx-datatable-column
name="Salary"
[flexGrow]="1"
[minWidth]="90"
>
<ng-template ngx-datatable-header-template>
<span>Status</span>
</ng-template>
<ng-template
ngx-datatable-cell-template
let-value="value"
>
{{ value }}
</ng-template>
</ngx-datatable-column>
<ngx-datatable-column
name="Actions"
[flexGrow]="1"
[minWidth]="150"
>
<ng-template
ngx-datatable-cell-template
let-rowIndex="rowIndex"
let-row="row"
>
<button
class="btn btn-sm btn-info mr-1"
>
<i class="ficon feather ft-eye"></i>
</button>
<button
class="btn btn-sm btn-warning mr-1"
>
<i class="ficon feather ft-edit"></i>
</button>
<button
class="btn btn-sm btn-danger"
>
<i class="ficon feather ft-trash-2"></i>
</button>
</ng-template>
</ngx-datatable-column>
</ngx-datatable>
</div>
</ng-container>
</m-card>
</div>
</div>
</section>
</div>
</div>
</div>

View File

@ -1,10 +1,87 @@
import { Component } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
import { BlockUI, NgBlockUI } from 'ng-block-ui';
import { TableApiService } from 'src/app/_services/table-api.service';
@Component({ @Component({
selector: 'app-master-category', selector: 'app-master-category',
templateUrl: './master-category.component.html', templateUrl: './master-category.component.html',
styleUrls: ['./master-category.component.css'] styleUrls: ['./master-category.component.css']
}) })
export class MasterCategoryComponent { export class MasterCategoryComponent implements OnInit{
data: any;
filteredRows: any[];
searchTerm: string = "";
rows: any = [];
public breadcrumb: any;
@BlockUI("zeroConfiguration") blockUIZeroConfiguration: NgBlockUI;
constructor(
private tableApiservice: TableApiService,
private modalService: NgbModal,
private router: Router
) {}
ngOnInit() {
this.breadcrumb = {
mainlabel: "Master Category",
links: [
{
name: "Home",
isLink: false,
},
{
name: "Master Category",
isLink: false,
},
],
};
this.fetchData();
}
fetchData() {
this.tableApiservice.getTableInitialisationData().subscribe((response) => {
this.data = response;
this.filteredRows = this.data.rows;
});
}
filterRows() {
if (!this.searchTerm) {
this.filteredRows = [...this.data.rows];
} else {
this.filteredRows = this.data.rows.filter((row) =>
this.rowContainsSearchTerm(row)
);
}
}
rowContainsSearchTerm(row: any): boolean {
const searchTermLC = this.searchTerm.toLowerCase();
return Object.values(row).some(
(value) =>
value !== null &&
value.toString().toLowerCase().includes(searchTermLC)
);
}
viewRow(row) {
console.log("View row:", row);
this.router.navigate(["/device/view", row.name]);
}
editRow(row) {
console.log("Edit row:", row);
this.router.navigate(["/device/edit", row.name]);
}
deleteRow(row) {
console.log("Delete row:", row);
}
onTouchStart(event: Event) {
event.preventDefault(); // Add this if necessary
}
} }

View File

@ -16,6 +16,7 @@ import { PerfectScrollbarModule } from 'ngx-perfect-scrollbar';
import { BlockTemplateComponent } from 'src/app/_layout/blockui/block-template.component'; import { BlockTemplateComponent } from 'src/app/_layout/blockui/block-template.component';
import { CardModule } from '../../partials/general/card/card.module'; import { CardModule } from '../../partials/general/card/card.module';
import { MatchHeightModule } from '../../partials/general/match-height/match-height.module'; import { MatchHeightModule } from '../../partials/general/match-height/match-height.module';
import { BreadcrumbModule } from 'src/app/_layout/breadcrumb/breadcrumb.module';
@ -35,6 +36,7 @@ import { MatchHeightModule } from '../../partials/general/match-height/match-hei
MatchHeightModule, MatchHeightModule,
NgxDatatableModule, NgxDatatableModule,
PerfectScrollbarModule, PerfectScrollbarModule,
BreadcrumbModule,
NgbModule, NgbModule,
BlockUIModule.forRoot({ BlockUIModule.forRoot({
template: BlockTemplateComponent template: BlockTemplateComponent

View File

@ -1,140 +1,8 @@
:host ::ng-deep .Likes .ct-series-a .ct-point { :host ::ng-deep .gap_fl_btn {
stroke: #28d094; margin: 0 0.3rem;
} }
:host ::ng-deep .Likes .ct-line {
fill: none;
stroke-width: 2px;
}
:host ::ng-deep .Likes .ct-point{
stroke-width: 0px;
}
:host ::ng-deep .Likes .ct-series-a .ct-line {
stroke: #28d094;
}
:host ::ng-deep .Likes .ct-series-a .ct-area {
fill: #28d094;
}
:host ::ng-deep .Comments .ct-series-a .ct-point {
stroke: #FF9149;
}
:host ::ng-deep .Comments .ct-line {
fill: none;
stroke-width: 2px;
}
:host ::ng-deep .Comments .ct-point{
stroke-width: 0px;
}
:host ::ng-deep .Comments .ct-series-a .ct-line {
stroke: #FF9149;
}
:host ::ng-deep .Comments .ct-series-a .ct-area {
fill: #FF9149;
}
:host ::ng-deep .Views .ct-series-a .ct-point {
stroke: #FF4961;
}
:host ::ng-deep .Views .ct-line {
fill: none;
stroke-width: 2px;
}
:host ::ng-deep .Views .ct-point{
stroke-width: 0px;
}
:host ::ng-deep .Views .ct-series-a .ct-line {
stroke: #FF4961;
}
:host ::ng-deep .Views .ct-series-a .ct-area {
fill: #FF4961;
}
:host ::ng-deep .sp-line-total-cost .ct-series-a .ct-point{
stroke: #ff9149;
}
:host ::ng-deep .sp-line-total-cost .ct-series-a .ct-line{
stroke: #ff9149;
:host ::ng-deep .block-ui-wrapper {
background: rgba(255, 249, 249, 0.5) !important;
} }
:host ::ng-deep .sp-line-total-cost .ct-series-a .ct-area{
fill: #ff9149;
fill-opacity: 1;
}
:host ::ng-deep .sp-line-total-cost .ct-point{
stroke-width: 0px;
}
:host ::ng-deep .sp-line-total-cost svg {
margin-left: 13px;
}
:host ::ng-deep .sp-line-total-sales .ct-series-a .ct-point{
stroke: #28d094;
}
:host ::ng-deep .sp-line-total-sales .ct-series-a .ct-line{
stroke: #28d094;
}
:host ::ng-deep .sp-line-total-sales .ct-series-a .ct-area{
fill: #28d094;
fill-opacity: 1;
}
:host ::ng-deep .sp-line-total-sales .ct-point{
stroke-width: 0px;
}
:host ::ng-deep .sp-line-total-sales svg {
margin-left: 13px;
}
:host ::ng-deep .sp-line-total-revenue .ct-series-a .ct-point{
stroke: #ff4961;
}
:host ::ng-deep .sp-line-total-revenue .ct-series-a .ct-line{
stroke: #ff4961;
}
:host ::ng-deep .sp-line-total-revenue .ct-series-a .ct-area{
fill: #ff4961;
fill-opacity: 1;
}
:host ::ng-deep .sp-line-total-revenue .ct-point{
stroke-width: 0px;
}
:host ::ng-deep .sp-line-total-revenue svg {
margin-left: 13px;
}
:host ::ng-deep .ct-bar {
fill: none;
stroke-width: 2px;
}
:host ::ng-deep .sp-bar-total-cost .ct-series-a .ct-bar{
stroke: #ff9148;
}
:host ::ng-deep .sp-bar-total-sales .ct-series-a .ct-bar{
stroke: #28d094;
}
:host ::ng-deep .sp-bar-total-revenue .ct-series-a .ct-bar{
stroke: #ff4961;
}
:host ::ng-deep .sp-bar-total-cost {
margin-bottom: -90px;
}
:host ::ng-deep .sp-bar-total-sales{
margin-bottom: -90px;
}
:host ::ng-deep .sp-bar-total-revenue{
margin-bottom: -90px;
}
:host ::ng-deep .feedbacks .ct-series-a .ct-slice-donut {
stroke: #28d094;
stroke-width: 10px !important;
}
:host ::ng-deep .Subscribers .ct-series-a .ct-slice-donut {
stroke: #ff9149;
stroke-width: 10px !important;
}
:host ::ng-deep .Users .ct-series-a .ct-slice-donut {
stroke: #ff4961;
stroke-width: 10px !important;
}
:host ::ng-deep .ct-series-b .ct-slice-donut {
stroke: #eeeeee;
stroke-width: 12px !important;
}
:host ::ng-deep .text-muted {
position: absolute;
}

View File

@ -6,181 +6,130 @@
<div class="content-body"> <div class="content-body">
<section id="social-cards"> <section id="social-cards">
<div class="row mt-2"> <div class="row mt-2">
<div class="col-xl-4 col-md-6 col-12"> <div class="col-xl-4 col-md-6 col-12" *ngFor="let data of dataArray">
<div class="card"> <div class="card">
<div class="card-content"> <div class="card-content">
<div class="card-body text-center"> <div class="card-body text-center">
<div class="card-header mb-2"> <div class="card-header mb-2">
<span class="success">New Feedbacks</span> <div class="row">
<h3 class="display-4 blue-grey darken-1">2,487</h3> <div class="col-12 text-center">
<h4
class="text-muted mb-1 font-weight-bold"
style="font-family: Montserrat, sans-serif"
>
Building Name
</h4>
<h3
class="text-muted mb-0"
style="font-family: Montserrat, sans-serif"
>
{{data.build_name}}
</h3>
</div>
</div>
<hr style="border-top: 3px solid #100a0a" />
</div> </div>
<div class="card-content"> <div class="card-content">
<i
class="knob-center-icon icon-note knob hide-value responsive angle-offset"
style="
width: 79px;
height: 50px;
position: absolute;
vertical-align: middle;
margin-top: 70px;
margin-left: -30px;
border: 0px;
background: none;
font: bold 30px Arial;
text-align: center;
color: rgb(225, 225, 225);
padding: 0px;
font-size: 50px;
"
></i>
<x-chartist <x-chartist
*ngIf="feedbacksdonutChart" *ngIf="data"
class="feedbacks" [data]="data.donut"
[data]="feedbacksdonutChart.data" [type]="donutChart1.type"
[type]="feedbacksdonutChart.type" [options]="donutChart1.options"
[options]="feedbacksdonutChart.options" [events]="donutChart1.events"
[responsiveOptions]="
feedbacksdonutChart.responsiveOptions
"
[events]="feedbacksdonutChart.events"
> >
</x-chartist> </x-chartist>
<ul class="list-inline clearfix mt-2">
<li <div
class="border-right-blue-grey border-right-lighten-2 pr-1" class="text-center"
>
<h1 class="blue-grey darken-1 text-bold-400">95%</h1>
<span class="success"
><i class="la la-caret-up"></i> Positive</span
>
</li>
<li>
<h1 class="blue-grey darken-1 text-bold-400">5%</h1>
<span class="danger darken-2"
><i class="la la-caret-down"></i> Negative</span
>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="col-xl-4 col-md-6 col-12">
<div class="card">
<div class="card-content">
<div class="card-body text-center">
<div class="card-header mb-2">
<span class="success">New Feedbacks</span>
<h3 class="display-4 blue-grey darken-1">2,487</h3>
</div>
<div class="card-content">
<i
class="knob-center-icon icon-note knob hide-value responsive angle-offset"
style=" style="
width: 79px;
height: 50px;
position: absolute; position: absolute;
vertical-align: middle; top: 50%;
margin-top: 70px; left: 50%;
margin-left: -30px; transform: translate(-50%, -50%);
border: 0px;
background: none;
font: bold 30px Arial;
text-align: center;
color: rgb(225, 225, 225);
padding: 0px;
font-size: 50px;
" "
></i>
<x-chartist
*ngIf="feedbacksdonutChart"
class="feedbacks"
[data]="feedbacksdonutChart.data"
[type]="feedbacksdonutChart.type"
[options]="feedbacksdonutChart.options"
[responsiveOptions]="
feedbacksdonutChart.responsiveOptions
"
[events]="feedbacksdonutChart.events"
> >
</x-chartist> <h3
<ul class="list-inline clearfix mt-2"> class="display-4 blue-grey darken-1"
<li style="font-size: 2em"
class="border-right-blue-grey border-right-lighten-2 pr-1"
> >
<h1 class="blue-grey darken-1 text-bold-400">95%</h1> {{data.total}} kWh
<span class="success" </h3>
><i class="la la-caret-up"></i> Positive</span </div>
<div class="card-body" style="padding-top: 0">
<div class="row mb-3">
<div class="col Started">
<span class="mb-1 text-muted cardtext d-block"
>23% - Lighning</span
> >
</li> <div>
<li> <ngb-progressbar
<h1 class="blue-grey darken-1 text-bold-400">5%</h1> height="7px"
<span class="danger darken-2" type="success"
><i class="la la-caret-down"></i> Negative</span [value]="23"
></ngb-progressbar>
</div>
</div>
<div class="col Progress">
<span class="mb-1 text-muted cardtext d-block"
>14% - In Progress</span
> >
</li> <div>
</ul> <ngb-progressbar
height="7px"
type="danger"
[value]="14"
></ngb-progressbar>
</div>
</div>
</div>
<div class="row mb-3">
<div class="col Remaining">
<span class="mb-1 text-muted cardtext d-block"
>35% - Remaining</span
>
<div>
<ngb-progressbar
height="7px"
type="warning"
[value]="35"
></ngb-progressbar>
</div>
</div>
<div class="col Done">
<span class="mb-1 text-muted cardtext d-block"
>28% - Started</span
>
<div>
<ngb-progressbar
height="7px"
type="primary"
[value]="28"
></ngb-progressbar>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="form-group text-center">
<button
type="button"
class="btn btn-float btn-square btn-outline-secondary"
>
<i class="feather ft-layers"></i>
</button>
<button
type="button"
class="gap_fl_btn btn btn-float btn-square btn-float-lg btn-outline-primary"
>
<i class="la la-building"></i>
</button>
<button
type="button"
class="btn btn-float btn-square btn-outline-secondary"
>
<i class="feather ft-log-in"></i>
</button>
</div> </div>
<div class="col-xl-4 col-md-6 col-12">
<div class="card">
<div class="card-content">
<div class="card-body text-center">
<div class="card-header mb-2">
<span class="success">New Feedbacks</span>
<h3 class="display-4 blue-grey darken-1">2,487</h3>
</div>
<div class="card-content">
<i
class="knob-center-icon icon-note knob hide-value responsive angle-offset"
style="
width: 79px;
height: 50px;
position: absolute;
vertical-align: middle;
margin-top: 70px;
margin-left: -30px;
border: 0px;
background: none;
font: bold 30px Arial;
text-align: center;
color: rgb(225, 225, 225);
padding: 0px;
font-size: 50px;
"
></i>
<x-chartist
*ngIf="feedbacksdonutChart"
class="feedbacks"
[data]="feedbacksdonutChart.data"
[type]="feedbacksdonutChart.type"
[options]="feedbacksdonutChart.options"
[responsiveOptions]="
feedbacksdonutChart.responsiveOptions
"
[events]="feedbacksdonutChart.events"
>
</x-chartist>
<ul class="list-inline clearfix mt-2">
<li
class="border-right-blue-grey border-right-lighten-2 pr-1"
>
<h1 class="blue-grey darken-1 text-bold-400">95%</h1>
<span class="success"
><i class="la la-caret-up"></i> Positive</span
>
</li>
<li>
<h1 class="blue-grey darken-1 text-bold-400">5%</h1>
<span class="danger darken-2"
><i class="la la-caret-down"></i> Negative</span
>
</li>
</ul>
</div> </div>
</div> </div>
</div> </div>
@ -188,7 +137,6 @@
</div> </div>
</div> </div>
</section> </section>
<!-- // Social cards section end -->
</div> </div>
</div> </div>
</div> </div>

View File

@ -10,49 +10,55 @@ export class BuildingComponent {
Data: any; Data: any;
public breadcrumb: any; public breadcrumb: any;
feedbacksdonutChart: any; feedbacksdonutChart: any;
donutChart1: any;
dataArray = [
{
id: 1,
build_name: "PT Allbest Solusi Sistem",
total: "2345",
donut: {
series: [20, 80],
labels: [],
},
},
{
id: 2,
build_name: "PT Informa Media Pratama",
total: "342",
donut: {
series: [40, 60],
labels: [],
},
},
];
constructor(private chartApiservice: ChartApiService) {} constructor(private chartApiservice: ChartApiService) {}
ngOnInit() { ngOnInit() {
this.breadcrumb = { this.breadcrumb = {
mainlabel: "Advance Social Cards", mainlabel: "Dashboard",
links: [ links: [
{ {
name: "Home", name: "Dashboard",
isLink: true,
link: "/dashboard/sales",
},
{
name: "Advance Cards",
isLink: true,
link: "#",
},
{
name: "Social",
isLink: false, isLink: false,
link: "#",
}, },
], ],
}; };
this.chartApiservice.getStatisticsData().subscribe((Response) => {
this.Data = Response;
this.getlineArea();
});
}
getlineArea() { this.donutChart1 = {
const ChartData = this.Data;
this.feedbacksdonutChart = {
type: "Pie", type: "Pie",
data: ChartData["feedbacksdonutChart"],
options: { options: {
showLabel: false,
chartPadding: 0,
fullwidth: true, fullwidth: true,
height: "200px", height: "250px",
donut: true, donut: true,
startAngle: 0, donutWidth: 60,
startAngle: 270,
total: 200,
showLabel: false,
}, },
}; };
} }
} }