ui/lib/pipeline/addon/components/input-registry/component.js

58 lines
1.3 KiB
JavaScript

import Component from '@ember/component';
import { observer } from '@ember/object';
import layout from './template';
import { inject as service } from '@ember/service';
import { set, get } from '@ember/object';
import C from 'shared/utils/pipeline-constants';
export default Component.extend({
scope: service(),
layout,
// Inputs
config: null,
registries: null,
// Internal
invalidRegistry: false,
registryChoices: null,
linkToRegistry: null,
init() {
this._super(...arguments);
this.initRegistries();
set(this, 'linkToRegistry', `/p/${ get(this, 'scope.currentProject.id') }/registries/add`);
},
registriesDidChange: observer('registries.[]', function() {
this.initRegistries();
}),
initRegistries() {
const out = [];
get(this, 'registries').find((item) => {
Object.keys(get(item, 'registries')).forEach((registry) => {
if ( C.DEFAULT_REGISTRY === registry ) {
out.unshift({
label: 'Docker Hub',
value: registry,
});
} else {
out.push({
label: registry,
value: registry,
});
}
});
});
set(this, 'registryChoices', out);
if ( !get(this, 'config.registry') && out.length ) {
set(this, 'config.registry', get(this, 'registryChoices.firstObject.value'));
}
},
});