Ghost/ghost/admin/app/controllers/collection.js

44 lines
1.1 KiB
JavaScript
Raw Normal View History

import Controller from '@ember/controller';
import DeleteCollectionModal from '../components/collections/delete-collection-modal';
import {action} from '@ember/object';
import {inject as service} from '@ember/service';
import {task} from 'ember-concurrency';
export default class CollectionController extends Controller {
@service modals;
@service notifications;
@service router;
get collection() {
return this.model;
}
@action
confirmDeleteCollection() {
return this.modals.open(DeleteCollectionModal, {
collection: this.model
});
}
@task({drop: true})
*saveTask() {
let {collection} = this;
try {
if (collection.get('errors').length !== 0) {
return;
}
yield collection.save();
// replace 'new' route with 'collection' route
this.replaceRoute('collection', collection);
return collection;
} catch (error) {
if (error) {
this.notifications.showAPIError(error, {key: 'collection.save'});
}
}
}
}