All files / src/app/shared/models cd-notification.ts

100% Statements 26/26
100% Branches 8/8
100% Functions 4/4
100% Lines 20/20

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41  52x   52x     233x           273x 233x 233x 233x 320x   233x   52x   52x         103x 103x   142x 103x 103x     103x 103x 103x   52x  
import { IndividualConfig } from 'ngx-toastr';
import { NotificationType } from '../enum/notification-type.enum';
 
export class CdNotificationConfig {
  applicationClass: string;
 
  private classes = {
    Ceph: 'ceph-icon',
    Prometheus: 'prometheus-icon'
  };
 
  constructor(
    public type: NotificationType = NotificationType.info,
    public title?: string,
    public message?: string, // Use this for additional information only
    public options?: any | IndividualConfig,
    public application: string = 'Ceph'
  ) {
    this.applicationClass = this.classes[this.application];
  }
}
 
export class CdNotification extends CdNotificationConfig {
  timestamp: string;
  textClass: string;
  iconClass: string;
 
  private textClasses = ['text-danger', 'text-info', 'text-success'];
  private iconClasses = ['fa-exclamation-triangle', 'fa-info', 'fa-check'];
 
  constructor(private config: CdNotificationConfig = new CdNotificationConfig()) {
    super(config.type, config.title, config.message, config.options, config.application);
    delete this.config;
    /* string representation of the Date object so it can be directly compared
    with the timestamps parsed from localStorage */
    this.timestamp = new Date().toJSON();
    this.iconClass = this.iconClasses[this.type];
    this.textClass = this.textClasses[this.type];
  }
}