ui/lib/pipeline/addon/components/repository-row/component.js

48 lines
1.3 KiB
JavaScript

import Component from '@ember/component';
import { inject as service } from '@ember/service';
import { set, get } from '@ember/object';
import { alias } from '@ember/object/computed';
export default Component.extend({
growl: service(),
intl: service(),
router: service(),
tagName: 'TR',
classNames: 'main-row',
toggling: false,
row: null,
sourceCodeCredentialId: null,
pipeline: alias('model.pipelineConfig'),
actions: {
disable() {
set(this, 'toggling', true);
get(this, 'row.pipeline').send('delete')
},
enable() {
set(this, 'toggling', true);
const pipeline = get(this, 'store').createRecord({ type: 'pipeline', });
const sourceCodeCredentialId = get(this, 'row.sourceCodeCredentialId');
if ( sourceCodeCredentialId ) {
set(pipeline, 'sourceCodeCredentialId', sourceCodeCredentialId);
}
set(pipeline, 'repositoryUrl', get(this, 'row.url'));
set(pipeline, 'triggerWebhookPr', false);
set(pipeline, 'triggerWebhookPush', !!sourceCodeCredentialId);
set(pipeline, 'triggerWebhookTag', false);
pipeline.save().catch((err) => {
get(this, 'growl').fromError(err.message);
})
.finally(() => {
set(this, 'toggling', false);
})
},
}
});