Ghost/ghost/admin/app/controllers/settings/product.js

44 lines
1.1 KiB
JavaScript
Raw Normal View History

import Controller from '@ember/controller';
import {action} from '@ember/object';
import {inject as service} from '@ember/service';
import {task} from 'ember-concurrency-decorators';
import {tracked} from '@glimmer/tracking';
export default class ProductController extends Controller {
@service settings;
@tracked showLeaveSettingsModal = false;
@tracked showPriceModal = false;
leaveRoute(transition) {
if (this.settings.get('hasDirtyAttributes')) {
transition.abort();
this.leaveSettingsTransition = transition;
this.showLeaveSettingsModal = true;
}
}
@action
async confirmLeave() {
this.settings.rollbackAttributes();
this.showLeaveSettingsModal = false;
this.leaveSettingsTransition.retry();
}
@action
cancelLeave() {
this.showLeaveSettingsModal = false;
this.leaveSettingsTransition = null;
}
@action
closePriceModal() {
this.showPriceModal = false;
}
@task({drop: true})
*saveTask() {
return yield this.settings.save();
}
}