mirror of https://github.com/rancher/ui.git
82 lines
2.2 KiB
JavaScript
82 lines
2.2 KiB
JavaScript
import Ember from 'ember';
|
|
import EditScheduling from 'ui/mixins/edit-scheduling';
|
|
|
|
export default Ember.Mixin.create(EditScheduling, {
|
|
primaryResource: Ember.computed.alias('model.service'),
|
|
labelResource: Ember.computed.alias('model.service.launchConfig'),
|
|
|
|
actions: {
|
|
addServiceLink: function() {
|
|
this.get('serviceLinksArray').pushObject(Ember.Object.create({name: '', serviceId: null}));
|
|
},
|
|
removeServiceLink: function(obj) {
|
|
this.get('serviceLinksArray').removeObject(obj);
|
|
},
|
|
},
|
|
|
|
initFields: function() {
|
|
this._super();
|
|
this.initServiceLinks();
|
|
this.initScheduling();
|
|
},
|
|
|
|
// ----------------------------------
|
|
// Services
|
|
// ----------------------------------
|
|
serviceChoices: function() {
|
|
return this.get('model.allServices').sortBy('group','name','id');
|
|
}.property('model.allServices.@each.{id,name,state,environmentId}'),
|
|
|
|
lbSafeServiceChoices: function() {
|
|
return this.get('model.allServices').filterBy('lbSafe',true).sortBy('group','name','id');
|
|
}.property('model.allServices.@each.{id,name,state,environmentId}'),
|
|
|
|
serviceLinksArray: null,
|
|
initServiceLinks: function() {
|
|
var out = [];
|
|
var links;
|
|
if ( this.get('service.id') )
|
|
{
|
|
// Edit
|
|
links = this.get('service.consumedServicesWithNames')||[];
|
|
}
|
|
else
|
|
{
|
|
// New / Clone
|
|
links = this.get('service.serviceLinks')||[];
|
|
}
|
|
|
|
links.forEach(function(obj) {
|
|
var name = obj.get('name');
|
|
var service = obj.get('service');
|
|
|
|
out.push(Ember.Object.create({
|
|
name: (name === service.get('name') ? '' : name),
|
|
obj: service,
|
|
serviceId: service.get('id'),
|
|
}));
|
|
});
|
|
|
|
this.set('serviceLinksArray', out);
|
|
},
|
|
|
|
serviceLinksDidChange: function() {
|
|
}.observes('serviceLinksArray.@each.{name,serviceId}'),
|
|
|
|
// ----------------------------------
|
|
// Save
|
|
// ----------------------------------
|
|
didSave: function() {
|
|
var service = this.get('model.service');
|
|
var ary = [];
|
|
this.get('serviceLinksArray').forEach((row) => {
|
|
if ( row.serviceId )
|
|
{
|
|
ary.push({name: row.name, serviceId: row.serviceId});
|
|
}
|
|
});
|
|
|
|
return service.doAction('setservicelinks', {serviceLinks: ary});
|
|
},
|
|
});
|