import { default as computed } from 'discourse-common/utils/decorators';
import showModal from 'discourse/lib/show-modal';

export default Ember.Controller.extend({
  @computed('model.id', 'model.name')
  wizardUrl(wizardId) {
    return window.location.origin + '/w/' + Ember.String.dasherize(wizardId);
  },

  @computed('model.after_time_scheduled')
  nextSessionScheduledLabel(scheduled) {
    return scheduled ? moment(scheduled).format('MMMM Do, HH:mm') :
                       I18n.t('admin.wizard.after_time_time_label');
  },

  actions: {
    save() {
      this.setProperties({
        saving: true,
        error: null
      });
      const wizard = this.get('model');
      wizard.save().then(() => {
        this.set('saving', false);
        if (this.get('newWizard')) {
          this.send("refreshAllWizards");
        } else {
          this.send("refreshWizard");
        }
      }).catch((result) => {
        this.set('saving', false);
        this.set('error', I18n.t(`admin.wizard.error.${result.error}`));
        Ember.run.later(() => this.set('error', null), 10000);
      });
    },

    remove() {
      const wizard = this.get('model');
      wizard.remove().then(() => {
        this.send("refreshAllWizards");
      });
    },

    setNextSessionScheduled() {
      let controller = showModal('next-session-scheduled', {
        model: {
          dateTime: this.get('model.after_time_scheduled'),
          update: (dateTime) => this.set('model.after_time_scheduled', dateTime)
        }
      });

      controller.setup();
    },
  }
});