blob: c3d659dac65c26d5defd92b8922865afde582aff [file] [log] [blame]
import { Component, OnInit, ViewEncapsulation } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import * as _ from 'lodash';
import { Settings } from '../../core/settings';
import { HistoryService } from '../shared/history.service';
import { History } from '../shared/history.model';
@Component({
selector: 'hi-history-list',
templateUrl: './history-list.component.html',
styleUrls: ['./history-list.component.scss'],
providers: [HistoryService],
// FIXME: have to turn off shadow dom or .current-controller won't work
encapsulation: ViewEncapsulation.None,
})
export class HistoryListComponent implements OnInit {
rows: History[];
rowHeight = Settings.tableRowHeight;
headerHeight = Settings.tableHeaderHeight;
isController: boolean;
isLoading = true;
sorts = [{ prop: 'date', dir: 'desc' }];
// to let ngx-datatable helper funcs have 'this' context
bindFunc = _.bind;
constructor(private route: ActivatedRoute, private service: HistoryService) {}
ngOnInit() {
if (this.route.parent) {
const clusterName = this.route.parent.snapshot.params['cluster_name'];
const instanceName = this.route.parent.snapshot.params['instance_name'];
const observable = instanceName
? this.service.getInstanceHistory(clusterName, instanceName)
: this.service.getControllerHistory(clusterName);
this.isController = !instanceName;
observable.subscribe(
(histories) => (this.rows = histories),
(error) => {},
() => (this.isLoading = false)
);
}
}
getControllerCellClass({ value }): any {
return {
current: value == this.rows[this.rows.length - 1].controller,
};
}
getSessionCellClass({ value }): any {
return {
current: value == this.rows[this.rows.length - 1].session,
};
}
}