John Cowen 6589cbbd0d
ui: Move to Workspaced Structure (#8994)
* ui: Add the most basic workspace root in /ui

* We already have a LICENSE file in the repository root

* Change directory path in build scripts ui-v2 -> ui

* Make yarn install flags configurable from elsewhere

* Minimal workspace root makefile

* Call the new docker specific target

* Update yarn in the docker build image

* Reconfigure the netlify target and move to the higher makefile

* Move ui-v2 -> ui/packages/consul-ui

* Change repo root to refleect new folder structure

* Temporarily don't hoist consul-api-double

* Fixup CI configuration

* Fixup lint errors

* Fixup Netlify target
2020-10-21 15:23:16 +01:00

47 lines
1.4 KiB
JavaScript

import ChildSelectorComponent from '../child-selector/index';
import { inject as service } from '@ember/service';
import { set } from '@ember/object';
import { alias } from '@ember/object/computed';
import { CallableEventSource as EventSource } from 'consul-ui/utils/dom/event-source';
export default ChildSelectorComponent.extend({
repo: service('repository/role/component'),
dom: service('dom'),
name: 'role',
type: 'role',
classNames: ['role-selector'],
state: 'role',
// You have to alias data.
// If you just set it, it loses its reference?
policy: alias('policyForm.data'),
init: function() {
this._super(...arguments);
this.policyForm = this.formContainer.form('policy');
this.source = new EventSource();
},
actions: {
reset: function(e) {
this._super(...arguments);
this.policyForm.clear({ Datacenter: this.dc });
},
dispatch: function(type, data) {
this.source.dispatchEvent({ type: type, data: data });
},
change: function() {
const event = this.dom.normalizeEvent(...arguments);
const target = event.target;
switch (target.name) {
case 'role[state]':
set(this, 'state', target.value);
if (target.value === 'policy') {
this.dom.component('.code-editor', target.nextElementSibling).didAppear();
}
break;
default:
this._super(...arguments);
}
},
},
});