@fleetbase/fleetops-engine
Version:
Fleet & Transport Management Extension for Fleetbase
47 lines (42 loc) • 1.75 kB
JavaScript
import Service, { inject as service } from '@ember/service';
import { action } from '@ember/object';
import getModelName from '@fleetbase/ember-core/utils/get-model-name';
export default class ResourceMetadataService extends Service {
modalsManager;
notifications;
intl;
view(resource, options = {}) {
this.modalsManager.show('modals/view-metadata', {
title: `${this.intl.t('resource.' + getModelName(resource))} ${this.intl.t('common.metadata')}`,
acceptButtonText: this.intl.t('common.done'),
hideDeclineButton: true,
metadata: resource.meta,
...options,
});
}
edit(resource, options = {}) {
this.modalsManager.show('modals/edit-metadata', {
title: `${this.intl.t('common.edit')} ${this.intl.t('resource.' + getModelName(resource))} ${this.intl.t('common.metadata')}`,
acceptButtonText: this.intl.t('common.save-changes'),
acceptButtonIcon: 'save',
actionsWrapperClass: 'px-3',
metadata: resource.meta,
onChange: (meta) => {
resource.set('meta', meta);
},
confirm: async (modal) => {
modal.startLoading();
try {
await resource.save();
this.notifications.success(this.intl.t('common.field-saved', { field: this.intl.t('common.metadata') }));
modal.done();
} catch (error) {
this.notifications.serverError(error);
} finally {
modal.stopLoading();
}
},
...options,
});
}
}