ui/lib/shared/addon/components/form-access-modes/component.js

54 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();
},
editing: computed('mode', function() {
return get(this, 'mode') !== 'view';
}),
modesChanged: observer('accessRWO','accessROX','accessRWM', 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);
}),
});