ui/app/components/form-access-modes/component.js

58 lines
1.2 KiB
JavaScript

import Component from '@ember/component';
import {
get, set, setProperties, computed, observer
} from '@ember/object';
import layout from './template';
export default Component.extend({
layout,
mode: null,
model: null,
accessRWO: null,
accessROX: null,
accessRWX: null,
didReceiveAttrs() {
let accessRWO = true;
let accessROX = false;
let accessRWX = false;
if ( get(this, 'mode') !== 'new' ) {
const modes = get(this, 'model.accessModes') || [];
accessRWO = modes.includes('ReadWriteOnce');
accessROX = modes.includes('ReadOnlyMany');
accessRWX = modes.includes('ReadWriteMany');
}
setProperties(this, {
accessRWO,
accessROX,
accessRWX,
});
this.modesChanged();
},
modesChanged: observer('accessRWO', 'accessROX', 'accessRWX', function() {
const modes = [];
if ( get(this, 'accessRWO') ) {
modes.push('ReadWriteOnce');
}
if ( get(this, 'accessROX') ) {
modes.push('ReadOnlyMany');
}
if ( get(this, 'accessRWX') ) {
modes.push('ReadWriteMany');
}
set(this, 'model.accessModes', modes);
}),
editing: computed('mode', function() {
return get(this, 'mode') !== 'view';
}),
});