blob: eee1ff7b2af2ce1a70ed863c129f2387b9d654aa [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) {
let clusterName = this.route.parent.snapshot.params['cluster_name'];
let instanceName = this.route.parent.snapshot.params['instance_name'];
let 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
};
}
}