mirror of https://github.com/rancher/ui.git
69 lines
1.8 KiB
JavaScript
69 lines
1.8 KiB
JavaScript
import Component from '@ember/component';
|
|
import { alias } from '@ember/object/computed';
|
|
import ModalBase from 'shared/mixins/modal-base';
|
|
import { inject as service } from '@ember/service';
|
|
import layout from './template';
|
|
import { get, set } from '@ember/object';
|
|
import { next } from '@ember/runloop';
|
|
|
|
export default Component.extend(ModalBase, {
|
|
router: service(),
|
|
|
|
layout,
|
|
classNames: ['medium-modal', 'alert'],
|
|
|
|
branch: null,
|
|
branchesChoices: null,
|
|
errors: [],
|
|
loading: false,
|
|
|
|
model: alias('modalService.modalOpts.originalModel'),
|
|
|
|
init() {
|
|
this._super(...arguments);
|
|
|
|
set(this, 'loading', true);
|
|
get(this, 'model').followLink('branches')
|
|
.then((branches) => {
|
|
if ( this.isDestroyed || this.isDestroying ) {
|
|
return;
|
|
}
|
|
set(this, 'branchesChoices', JSON.parse(branches).map((b) => {
|
|
return {
|
|
label: b,
|
|
value: b
|
|
};
|
|
})
|
|
.sortBy('label'));
|
|
if ( get(this, 'branchesChoices.length') ) {
|
|
next(() => {
|
|
set(this, 'branch', get(this, 'branchesChoices.firstObject.value'));
|
|
});
|
|
} else {
|
|
set(this, 'loading', false);
|
|
}
|
|
})
|
|
.finally(() => {
|
|
set(this, 'loading', false);
|
|
});
|
|
},
|
|
|
|
actions: {
|
|
save(cb) {
|
|
const branch = get(this, 'branch');
|
|
|
|
get(this, 'model').doAction('run', { branch, })
|
|
.then(() => {
|
|
const pipelineId = get(this, 'model.id');
|
|
const nextRun = get(this, 'model.nextRun');
|
|
|
|
this.send('cancel');
|
|
get(this, 'router').transitionTo('authenticated.project.pipeline.pipelines.run', pipelineId, nextRun);
|
|
})
|
|
.finally(() => {
|
|
cb();
|
|
});
|
|
},
|
|
}
|
|
});
|