penambahan table device
This commit is contained in:
parent
14ad53025f
commit
dbc89d326f
|
@ -8,61 +8,158 @@
|
|||
<section id="add-row">
|
||||
<div class="row">
|
||||
<div class="col-12" *blockUI="'addRows'; message: 'Loading'">
|
||||
<m-card [options]="options" (reloadFunction)="reloadAddRows($event)">
|
||||
<m-card
|
||||
[options]="options"
|
||||
(reloadFunction)="reloadAddRows($event)"
|
||||
>
|
||||
<ng-container mCardBody>
|
||||
<!-- <p class="card-text">New rows can be added to a DataTable very easily using the
|
||||
(addFieldValue()) function.
|
||||
</p> -->
|
||||
<button id="addRow" class="btn btn-secondary my-1 mb-2" (click)="addFieldValue()"><i class="feather ft-plus"></i>
|
||||
Add new row</button>
|
||||
<button
|
||||
id="addRow"
|
||||
class="btn btn-secondary my-1 mb-2"
|
||||
(click)="addFieldValue()"
|
||||
>
|
||||
<i class="feather ft-plus"></i> Add new row
|
||||
</button>
|
||||
<div class="table table-striped table-bordered add-rows">
|
||||
<ngx-datatable class="bootstrap" [sortType]="'multi'" [headerHeight]="50" [limit]="7"
|
||||
[footerHeight]="40" [rowHeight]="40" [rows]="rows" [columnMode]="'force'"
|
||||
[loadingIndicator]="loadingIndicator" fxFlex="auto" [perfectScrollbar]="config">
|
||||
<ngx-datatable-column name="ID" [flexGrow]="1" [minWidth]="20">
|
||||
<ng-template ngx-datatable-cell-template let-rowIndex="rowIndex" *ngfor let element of rows>
|
||||
<b>{{element.id}}</b>
|
||||
<ngx-datatable
|
||||
class="bootstrap"
|
||||
[sortType]="'multi'"
|
||||
[headerHeight]="50"
|
||||
[limit]="7"
|
||||
[footerHeight]="40"
|
||||
[rowHeight]="40"
|
||||
[rows]="rows"
|
||||
[columnMode]="'force'"
|
||||
[loadingIndicator]="loadingIndicator"
|
||||
fxFlex="auto"
|
||||
[perfectScrollbar]="config"
|
||||
>
|
||||
<ngx-datatable-column
|
||||
name="ID"
|
||||
[flexGrow]="1"
|
||||
[minWidth]="20"
|
||||
>
|
||||
<ng-template
|
||||
ngx-datatable-cell-template
|
||||
let-rowIndex="rowIndex"
|
||||
*ngfor
|
||||
let
|
||||
element
|
||||
of
|
||||
rows
|
||||
>
|
||||
<b>{{ element.id }}</b>
|
||||
</ng-template>
|
||||
</ngx-datatable-column>
|
||||
<ngx-datatable-column name="Name" [flexGrow]="1" [minWidth]="70">
|
||||
<ng-template ngx-datatable-cell-template let-rowIndex="rowIndex" *ngfor let element of rows>
|
||||
<ngx-datatable-column
|
||||
name="Name"
|
||||
[flexGrow]="1"
|
||||
[minWidth]="70"
|
||||
>
|
||||
<ng-template
|
||||
ngx-datatable-cell-template
|
||||
let-rowIndex="rowIndex"
|
||||
*ngfor
|
||||
let
|
||||
element
|
||||
of
|
||||
rows
|
||||
>
|
||||
<span>
|
||||
{{element.name}}
|
||||
{{ element.name }}
|
||||
</span>
|
||||
</ng-template>
|
||||
</ngx-datatable-column>
|
||||
<ngx-datatable-column name="Position" [flexGrow]="1" [minWidth]="90">
|
||||
<ng-template ngx-datatable-cell-template let-rowIndex="rowIndex" let-row="row" *ngfor let element
|
||||
of rows>
|
||||
<ngx-datatable-column
|
||||
name="Position"
|
||||
[flexGrow]="1"
|
||||
[minWidth]="90"
|
||||
>
|
||||
<ng-template
|
||||
ngx-datatable-cell-template
|
||||
let-rowIndex="rowIndex"
|
||||
let-row="row"
|
||||
*ngfor
|
||||
let
|
||||
element
|
||||
of
|
||||
rows
|
||||
>
|
||||
<span>
|
||||
{{element.position}}
|
||||
{{ element.position }}
|
||||
</span>
|
||||
</ng-template>
|
||||
</ngx-datatable-column>
|
||||
|
||||
<ngx-datatable-column name="Office" [flexGrow]="1" [minWidth]="90">
|
||||
<ng-template ngx-datatable-cell-template *ngfor let element of rows>
|
||||
{{element.office}}
|
||||
<ngx-datatable-column
|
||||
name="Office"
|
||||
[flexGrow]="1"
|
||||
[minWidth]="90"
|
||||
>
|
||||
<ng-template
|
||||
ngx-datatable-cell-template
|
||||
*ngfor
|
||||
let
|
||||
element
|
||||
of
|
||||
rows
|
||||
>
|
||||
{{ element.office }}
|
||||
</ng-template>
|
||||
</ngx-datatable-column>
|
||||
|
||||
<ngx-datatable-column name="Age" [flexGrow]="1" [minWidth]="30">
|
||||
<ng-template ngx-datatable-cell-template *ngfor let element of rows>
|
||||
{{element.age}}
|
||||
<ngx-datatable-column
|
||||
name="Age"
|
||||
[flexGrow]="1"
|
||||
[minWidth]="30"
|
||||
>
|
||||
<ng-template
|
||||
ngx-datatable-cell-template
|
||||
*ngfor
|
||||
let
|
||||
element
|
||||
of
|
||||
rows
|
||||
>
|
||||
{{ element.age }}
|
||||
</ng-template>
|
||||
</ngx-datatable-column>
|
||||
<ngx-datatable-column name="Salary" [flexGrow]="1" [minWidth]="90">
|
||||
<ng-template ngx-datatable-cell-template *ngfor let element of rows>
|
||||
{{element.salary}}
|
||||
<ngx-datatable-column
|
||||
name="Salary"
|
||||
[flexGrow]="1"
|
||||
[minWidth]="90"
|
||||
>
|
||||
<ng-template
|
||||
ngx-datatable-cell-template
|
||||
*ngfor
|
||||
let
|
||||
element
|
||||
of
|
||||
rows
|
||||
>
|
||||
{{ element.salary }}
|
||||
</ng-template>
|
||||
</ngx-datatable-column>
|
||||
<ngx-datatable-column name="Startdate" [flexGrow]="1" [minWidth]="90">
|
||||
<ng-template ngx-datatable-cell-template *ngfor let element of rows>
|
||||
{{element.startdate}}
|
||||
<ngx-datatable-column
|
||||
name="Startdate"
|
||||
[flexGrow]="1"
|
||||
[minWidth]="90"
|
||||
>
|
||||
<ng-template
|
||||
ngx-datatable-cell-template
|
||||
*ngfor
|
||||
let
|
||||
element
|
||||
of
|
||||
rows
|
||||
>
|
||||
{{ element.startdate }}
|
||||
</ng-template>
|
||||
</ngx-datatable-column>
|
||||
</ngx-datatable>
|
||||
|
||||
</div>
|
||||
</ng-container>
|
||||
</m-card>
|
||||
|
@ -71,4 +168,4 @@
|
|||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,28 +1,35 @@
|
|||
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||
import { NgBlockUI, BlockUI } from 'ng-block-ui';
|
||||
import { PerfectScrollbarDirective, PerfectScrollbarComponent, PerfectScrollbarConfigInterface } from 'ngx-perfect-scrollbar';
|
||||
import { TableApiService } from 'src/app/_services/table-api.service';
|
||||
import { Component, OnInit, ViewChild } from "@angular/core";
|
||||
import { log } from "console";
|
||||
import { NgBlockUI, BlockUI } from "ng-block-ui";
|
||||
import {
|
||||
PerfectScrollbarDirective,
|
||||
PerfectScrollbarComponent,
|
||||
PerfectScrollbarConfigInterface,
|
||||
} from "ngx-perfect-scrollbar";
|
||||
import { TableApiService } from "src/app/_services/table-api.service";
|
||||
|
||||
@Component({
|
||||
selector: 'app-device',
|
||||
templateUrl: './device.component.html',
|
||||
styleUrls: ['./device.component.css']
|
||||
selector: "app-device",
|
||||
templateUrl: "./device.component.html",
|
||||
styleUrls: ["./device.component.css"],
|
||||
})
|
||||
export class DeviceComponent implements OnInit{
|
||||
export class DeviceComponent implements OnInit {
|
||||
data: any;
|
||||
|
||||
@BlockUI('addRows') blockUIAddRows: NgBlockUI;
|
||||
@BlockUI('rowSelection') blockUIRowSelection: NgBlockUI;
|
||||
@BlockUI("addRows") blockUIAddRows: NgBlockUI;
|
||||
@BlockUI("rowSelection") blockUIRowSelection: NgBlockUI;
|
||||
|
||||
public config: PerfectScrollbarConfigInterface = { wheelPropagation: true };
|
||||
@ViewChild(PerfectScrollbarComponent) componentRef?: PerfectScrollbarComponent;
|
||||
@ViewChild(PerfectScrollbarDirective, { static: true }) directiveRef?: PerfectScrollbarDirective;
|
||||
@ViewChild(PerfectScrollbarComponent)
|
||||
componentRef?: PerfectScrollbarComponent;
|
||||
@ViewChild(PerfectScrollbarDirective, { static: true })
|
||||
directiveRef?: PerfectScrollbarDirective;
|
||||
|
||||
options = {
|
||||
close: true,
|
||||
expand: true,
|
||||
minimize: true,
|
||||
reload: true
|
||||
reload: true,
|
||||
};
|
||||
temp = [];
|
||||
selected = [];
|
||||
|
@ -33,171 +40,49 @@ export class DeviceComponent implements OnInit{
|
|||
row: any;
|
||||
public breadcrumb: any;
|
||||
|
||||
constructor(private tableApiservice: TableApiService) { }
|
||||
constructor(private tableApiservice: TableApiService) {}
|
||||
|
||||
ngOnInit() {
|
||||
this.breadcrumb = {
|
||||
'mainlabel': 'Device List',
|
||||
'links': [
|
||||
mainlabel: "Device List",
|
||||
links: [
|
||||
{
|
||||
'name': 'Home',
|
||||
'isLink': false,
|
||||
'link': '/dashboard/sales'
|
||||
name: "Home",
|
||||
isLink: false,
|
||||
link: "/dashboard/sales",
|
||||
},
|
||||
{
|
||||
'name': 'Device',
|
||||
'isLink': false
|
||||
}
|
||||
]
|
||||
name: "Device",
|
||||
isLink: false,
|
||||
},
|
||||
],
|
||||
};
|
||||
this.tableApiservice.getTableApiData().subscribe(Response => {
|
||||
this.tableApiservice.getTableApiData().subscribe((Response) => {
|
||||
console.log(Response);
|
||||
|
||||
this.data = Response;
|
||||
this.getTabledata();
|
||||
});
|
||||
}
|
||||
|
||||
getTabledata() {
|
||||
this.rows = this.data.rows;
|
||||
this.row = this.data.row;
|
||||
}
|
||||
updateFiltername(event) {
|
||||
const val = event.target.value.toLowerCase();
|
||||
|
||||
// filter our data
|
||||
const temp = this.rows.filter(function (d) {
|
||||
return d.name.toLowerCase().indexOf(val) !== -1 || !val;
|
||||
});
|
||||
|
||||
|
||||
this.rows = temp;
|
||||
|
||||
}
|
||||
updateFilterposition(event) {
|
||||
const val = event.target.value.toLowerCase();
|
||||
|
||||
// filter our data
|
||||
const temp = this.rows.filter(function (d) {
|
||||
return d.position.toLowerCase().indexOf(val) !== -1 || !val;
|
||||
});
|
||||
|
||||
|
||||
this.rows = temp;
|
||||
|
||||
}
|
||||
updateFilteroffice(event) {
|
||||
const val = event.target.value.toLowerCase();
|
||||
|
||||
// filter our data
|
||||
const temp = this.rows.filter(function (d) {
|
||||
return d.office.toLowerCase().indexOf(val) !== -1 || !val;
|
||||
});
|
||||
|
||||
|
||||
this.rows = temp;
|
||||
|
||||
}
|
||||
|
||||
updateFilterage(event) {
|
||||
const val = event.target.value.toLowerCase();
|
||||
|
||||
// filter our data
|
||||
const temp = this.rows.filter(function (d) {
|
||||
return d.age.toLowerCase().indexOf(val) !== -1 || !val;
|
||||
});
|
||||
|
||||
|
||||
this.rows = temp;
|
||||
|
||||
}
|
||||
updateFiltersalary(event) {
|
||||
const val = event.target.value.toLowerCase();
|
||||
|
||||
// filter our data
|
||||
const temp = this.rows.filter(function (d) {
|
||||
return d.salary.toLowerCase().indexOf(val) !== -1 || !val;
|
||||
});
|
||||
|
||||
|
||||
this.rows = temp;
|
||||
|
||||
}
|
||||
updateFilterstartdate(event) {
|
||||
const val = event.target.value.toLowerCase();
|
||||
|
||||
// filter our data
|
||||
const temp = this.rows.filter(function (d) {
|
||||
return d.startdate.toLowerCase().indexOf(val) !== -1 || !val;
|
||||
});
|
||||
|
||||
|
||||
this.rows = temp;
|
||||
|
||||
}
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/member-ordering
|
||||
private newAttribute = { 'id': 15, name: 'Mark', position: 'Otto', office: '@mdo', age: '31', salary: '12000', startdate: '16/05/2017' };
|
||||
private newAttribute = {
|
||||
id: 15,
|
||||
name: "Mark",
|
||||
position: "Otto",
|
||||
office: "@mdo",
|
||||
age: "31",
|
||||
salary: "12000",
|
||||
startdate: "16/05/2017",
|
||||
};
|
||||
|
||||
addFieldValue() {
|
||||
this.rows.push(this.newAttribute);
|
||||
this.rows = [...this.rows];
|
||||
}
|
||||
deleteFieldValue(index) {
|
||||
this.rows.splice(index, 1);
|
||||
}
|
||||
deleteRow(id) {
|
||||
let i = 0;
|
||||
for (const row of this.rows) {
|
||||
if (row.id === id) {
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
const temp = [...this.rows];
|
||||
temp.splice(i, 1);
|
||||
this.rows = temp;
|
||||
}
|
||||
updateValue(event, cell, rowIndex) {
|
||||
|
||||
this.editing[rowIndex + '-' + cell] = false;
|
||||
this.row[rowIndex][cell] = event.target.value;
|
||||
const temp = [...this.row];
|
||||
this.row = temp;
|
||||
}
|
||||
|
||||
reloadAddRows() {
|
||||
this.blockUIAddRows.start('Loading..');
|
||||
|
||||
setTimeout(() => {
|
||||
this.blockUIAddRows.stop();
|
||||
}, 2500);
|
||||
}
|
||||
onSelect({ selected }) {
|
||||
this.selected.splice(0, this.selected.length);
|
||||
this.selected.push(...selected);
|
||||
}
|
||||
reloadRowSelection() {
|
||||
this.blockUIRowSelection.start('Loading..');
|
||||
|
||||
setTimeout(() => {
|
||||
this.blockUIRowSelection.stop();
|
||||
}, 2500);
|
||||
}
|
||||
deleteCheckedRow() {
|
||||
let index = 0;
|
||||
const removedIndex = [];
|
||||
const temp = [...this.rows];
|
||||
for (const row of temp) {
|
||||
for (const selectedRow of this.selected) {
|
||||
if (row.id === selectedRow.id) {
|
||||
removedIndex.push(index);
|
||||
}
|
||||
}
|
||||
index++;
|
||||
}
|
||||
|
||||
for (let i = removedIndex.length - 1; i >= 0; i--) {
|
||||
temp.splice(removedIndex[i], 1);
|
||||
}
|
||||
this.rows = temp;
|
||||
this.selected = [];
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue