Skip to content

Commit b6c96b9

Browse files
committed
Prefill service labels when creating route
1 parent e89bb67 commit b6c96b9

File tree

4 files changed

+34
-14
lines changed

4 files changed

+34
-14
lines changed

app/scripts/controllers/createRoute.js

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,16 +76,25 @@ angular.module('openshiftConsole')
7676
name: $scope.serviceName,
7777
weight: 1
7878
};
79-
DataService.list("services", context).then(function(serviceData) {
80-
servicesByName = serviceData.by("metadata.name");
81-
$scope.services = orderByDisplayName(servicesByName);
82-
});
8379

84-
$scope.copyServiceLabels = function() {
80+
var serviceLabels;
81+
var copyServiceLabels = function() {
82+
var previousServiceLabels = serviceLabels;
8583
var serviceName = _.get($scope, 'routing.to.name');
86-
var serviceLabels = _.get(servicesByName, [serviceName, 'metadata', 'labels'], {});
84+
serviceLabels = _.get(servicesByName, [serviceName, 'metadata', 'labels'], {});
8785
var existing = keyValueEditorUtils.mapEntries(keyValueEditorUtils.compactEntries($scope.labels));
86+
8887
var updated = _.assign(existing, serviceLabels);
88+
89+
// Remove any labels added for the previous service. Do this last to
90+
// try to preserve the order of the labels. This prevents the `app`
91+
// label from moving to the bottom of the list.
92+
if (previousServiceLabels) {
93+
updated = _.omitBy(updated, function(value, name) {
94+
return previousServiceLabels[name] && !serviceLabels[name];
95+
});
96+
}
97+
8998
$scope.labels = _.map(updated, function(value, key) {
9099
return {
91100
name: key,
@@ -94,6 +103,13 @@ angular.module('openshiftConsole')
94103
});
95104
};
96105

106+
DataService.list("services", context).then(function(serviceData) {
107+
servicesByName = serviceData.by("metadata.name");
108+
$scope.services = orderByDisplayName(servicesByName);
109+
// Wait until the services load before trying to copy service labels.
110+
$scope.$watch('routing.to.name', copyServiceLabels);
111+
});
112+
97113
$scope.createRoute = function() {
98114
if ($scope.createRouteForm.$valid) {
99115
hideErrorNotifications();

app/views/create-route.html

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ <h1>Create Route</h1>
3232
can-toggle="false"
3333
help-text="Labels for this route.">
3434
</label-editor>
35-
<a href="" ng-click="copyServiceLabels()">Copy Service Labels</a>
3635
<div class="button-group gutter-top gutter-bottom">
3736
<button type="submit"
3837
class="btn btn-primary btn-lg"

dist/scripts/scripts.js

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8084,17 +8084,23 @@ n.routing.to = {
80848084
kind: "Service",
80858085
name: n.serviceName,
80868086
weight: 1
8087-
}, i.list("services", l).then(function(e) {
8088-
p = e.by("metadata.name"), n.services = g(p);
8089-
}), n.copyServiceLabels = function() {
8090-
var e = _.get(n, "routing.to.name"), t = _.get(p, [ e, "metadata", "labels" ], {}), a = u.mapEntries(u.compactEntries(n.labels)), r = _.assign(a, t);
8091-
n.labels = _.map(r, function(e, t) {
8087+
};
8088+
var f, h = function() {
8089+
var e = f, t = _.get(n, "routing.to.name");
8090+
f = _.get(p, [ t, "metadata", "labels" ], {});
8091+
var a = u.mapEntries(u.compactEntries(n.labels)), r = _.assign(a, f);
8092+
e && (r = _.omitBy(r, function(t, n) {
8093+
return e[n] && !f[n];
8094+
})), n.labels = _.map(r, function(e, t) {
80928095
return {
80938096
name: t,
80948097
value: e
80958098
};
80968099
});
8097-
}, n.createRoute = function() {
8100+
};
8101+
i.list("services", l).then(function(e) {
8102+
p = e.by("metadata.name"), n.services = g(p), n.$watch("routing.to.name", h);
8103+
}), n.createRoute = function() {
80988104
if (n.createRouteForm.$valid) {
80998105
d(), n.disableInputs = !0;
81008106
var t = n.routing.to.name, a = u.mapEntries(u.compactEntries(n.labels)), o = r.createRoute(n.routing, t, a), s = _.get(n, "routing.alternateServices", []);

dist/scripts/templates.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4759,7 +4759,6 @@ angular.module('openshiftConsoleTemplates', []).run(['$templateCache', function(
47594759
"</osc-routing>\n" +
47604760
"<label-editor labels=\"labels\" expand=\"true\" can-toggle=\"false\" help-text=\"Labels for this route.\">\n" +
47614761
"</label-editor>\n" +
4762-
"<a href=\"\" ng-click=\"copyServiceLabels()\">Copy Service Labels</a>\n" +
47634762
"<div class=\"button-group gutter-top gutter-bottom\">\n" +
47644763
"<button type=\"submit\" class=\"btn btn-primary btn-lg\" ng-click=\"createRoute()\" ng-disabled=\"createRouteForm.$invalid || disableInputs || !createRoute\" value=\"\">Create</button>\n" +
47654764
"<a class=\"btn btn-default btn-lg\" href=\"\" ng-click=\"cancel()\">Cancel</a>\n" +

0 commit comments

Comments
 (0)