text: import Component from '@ember/component';
  import { reads, alias } from '@ember/object/computed';
  import { get, set } from '@ember/object'
  import NewOrEdit from 'ui/mixins/new-or-edit';
  import { inject as service } from '@ember/service'
  import AlertRule from 'alert/mixins/alert-rule';
  
  export default Component.extend(NewOrEdit, AlertRule, {
    router:            service(),
    intl:              service(),
    globalStore:       service(),
    scope:             service(),
  
    showAdvanced:      false,
    errors:            null,
    pods:              null,
    workloads:         null,
  
    pageScope:  reads('scope.currentPageScope'),
    newAlert:   alias('resourceMap.newAlert'),
    metrics:    alias('resourceMap.metrics'),
    alertGroup: alias('resourceMap.alertGroup'),
    alertRule:  alias('resourceMap.alertRule'),
    mode:       alias('resourceMap.mode'),
    level:      alias('resourceMap.level'),
  
    actions: {
      save(cb) {
        set(this, 'errors', null);
        const ps = get(this, 'pageScope');
        let toSaveAlert;
        const alertRule = get(this, 'alertRule')
        const alertGroup = get(this, 'alertGroup')
  
        if (ps === 'cluster') {
          toSaveAlert = this.beforeSaveClusterAlert(alertRule, alertGroup);
        } else {
          toSaveAlert = this.beforeSaveProjectAlert(alertRule, alertGroup);
        }
        if (get(this, 'errors') && get(this, 'errors').length > 0) {
          cb();
  
          return;
        }
  
        toSaveAlert = this.willSaveMetricRule(toSaveAlert)
  
        set(this, 'primaryResource', toSaveAlert);
        this._super(cb);
      },
  
      cancel() {
        const ps = get(this, 'pageScope');
        const router = get(this, 'router');
  
        if (ps === 'cluster') {
          router.transitionTo('authenticated.cluster.alert.index');
        } else {
          router.transitionTo('authenticated.project.alert.index');
        }
      },
    },
  
    doneSaving() {
      this.send('cancel');
    },
  
  });
  