Skip to content

Commit 235c861

Browse files
marie-jantleblanc
authored andcommitted
fix(pci.projects.failover-ips): display message on ipfo order (#796)
ref: MANAGER-2741
1 parent bc9adac commit 235c861

File tree

9 files changed

+60
-61
lines changed

9 files changed

+60
-61
lines changed

packages/manager/modules/pci/src/projects/project/failover-ips/failover-ips.component.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,6 @@ export default {
77
bindings: {
88
projectId: '<',
99
failoverIps: '<',
10+
instances: '<',
1011
},
1112
};

packages/manager/modules/pci/src/projects/project/failover-ips/failover-ips.html

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ <h1 data-translate="pci_projects_project_failoverip_title"></h1>
88
<oui-action-menu-item state="pci.projects.project.failover-ips.imports">
99
<span data-translate="pci_projects_project_failoverip_import"></span>
1010
</oui-action-menu-item>
11-
<oui-action-menu-item state="pci.projects.project.failover-ips.order">
11+
<oui-action-menu-item
12+
state="pci.projects.project.failover-ips.order"
13+
disabled="$ctrl.instances.length === 0">
1214
<span data-translate="pci_projects_project_failoverip_order"></span>
1315
</oui-action-menu-item>
1416
</oui-action-menu>

packages/manager/modules/pci/src/projects/project/failover-ips/failover-ips.routing.js

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
import map from 'lodash/map';
1+
import filter from 'lodash/filter';
22
import find from 'lodash/find';
3+
import map from 'lodash/map';
34

45
export default /* @ngInject */ ($stateProvider) => {
56
$stateProvider
@@ -61,6 +62,21 @@ export default /* @ngInject */ ($stateProvider) => {
6162

6263
return promise;
6364
},
65+
66+
instances: /* @ngInject */ (
67+
OvhApiCloudProject,
68+
projectId,
69+
) => OvhApiCloudProject
70+
.Instance()
71+
.v6()
72+
.query({
73+
serviceName: projectId,
74+
})
75+
.$promise
76+
.then(instances => filter(
77+
instances,
78+
({ ipAddresses }) => find(ipAddresses, { type: 'public' }),
79+
)),
6480
},
6581
});
6682
};

packages/manager/modules/pci/src/projects/project/failover-ips/onboarding/onboarding.component.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,6 @@ export default {
77
bindings: {
88
addFailoverIp: '<',
99
buyFailoverIp: '<',
10+
instances: '<',
1011
},
1112
};

packages/manager/modules/pci/src/projects/project/failover-ips/onboarding/onboarding.controller.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@ export default class PciFailoverIpsOnboardingController {
55
/* @ngInject */
66
constructor(
77
$translate,
8+
CucCloudMessage,
89
) {
910
this.$translate = $translate;
11+
this.CucCloudMessage = CucCloudMessage;
1012
}
1113

1214
$onInit() {
@@ -22,5 +24,20 @@ export default class PciFailoverIpsOnboardingController {
2224
]),
2325
[],
2426
);
27+
this.loadMessages();
28+
}
29+
30+
loadMessages() {
31+
this.CucCloudMessage.unSubscribe('pci.projects.project.failover-ips.onboarding');
32+
this.messageHandler = this.CucCloudMessage.subscribe(
33+
'pci.projects.project.failover-ips.onboarding',
34+
{
35+
onMessage: () => this.refreshMessages(),
36+
},
37+
);
38+
}
39+
40+
refreshMessages() {
41+
this.messages = this.messageHandler.getMessages();
2542
}
2643
}

packages/manager/modules/pci/src/projects/project/failover-ips/onboarding/onboarding.html

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
<cui-message-container data-messages="$ctrl.messages"></cui-message-container>
12
<pci-project-empty guides="$ctrl.guides">
23
<h1 data-translate="pci_projects_project_failoverip_title"></h1>
34
<p data-translate="pci_projects_project_failoverip_onboarding_content1"></p>
@@ -15,7 +16,8 @@ <h1 data-translate="pci_projects_project_failoverip_title"></h1>
1516
<oui-button
1617
class="ml-2"
1718
data-variant="secondary"
18-
data-on-click="$ctrl.buyFailoverIp()">
19+
data-on-click="$ctrl.buyFailoverIp()"
20+
data-disabled="$ctrl.instances.length === 0">
1921
<span data-translate="pci_projects_project_failoverip_onboarding_action_buy"></span>
2022
</oui-button>
2123
</div>

packages/manager/modules/pci/src/projects/project/failover-ips/onboarding/onboarding.routing.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,22 @@ export default /* @ngInject */ ($stateProvider) => {
1515
buyFailoverIp: /* @ngInject */ ($state, projectId) => () => $state.go('pci.projects.project.failover-ips.onboarding.order', {
1616
projectId,
1717
}),
18+
goToFailoverIpsOnboarding: /* @ngInject */($state, CucCloudMessage, projectId) => (message = false, type = 'success') => {
19+
const reload = message && type === 'success';
20+
21+
const promise = $state.go('pci.projects.project.failover-ips.onboarding', {
22+
projectId,
23+
},
24+
{
25+
reload,
26+
});
27+
28+
if (message) {
29+
promise.then(() => CucCloudMessage[type](message, 'pci.projects.project.failover-ips.onboarding'));
30+
}
31+
32+
return promise;
33+
},
1834
},
1935
translations: {
2036
value: ['.'],

packages/manager/modules/pci/src/projects/project/failover-ips/onboarding/order/order.routing.js

Lines changed: 2 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import filter from 'lodash/filter';
2-
import find from 'lodash/find';
32
import map from 'lodash/map';
43

54
export default /* @ngInject */ ($stateProvider, coreConfigProvider) => {
@@ -26,22 +25,7 @@ export default /* @ngInject */ ($stateProvider, coreConfigProvider) => {
2625
id,
2726
}).$promise))),
2827

29-
instances: /* @ngInject */ (
30-
OvhApiCloudProject,
31-
projectId,
32-
) => OvhApiCloudProject
33-
.Instance()
34-
.v6()
35-
.query({
36-
serviceName: projectId,
37-
})
38-
.$promise
39-
.then(instances => filter(
40-
instances,
41-
({ ipAddresses }) => find(ipAddresses, { type: 'public' }),
42-
)),
43-
44-
goBack: /* @ngInject */ goToFailoverIps => goToFailoverIps,
28+
goBack: /* @ngInject */ goToFailoverIpsOnboarding => goToFailoverIpsOnboarding,
4529
},
4630

4731
});
@@ -64,19 +48,7 @@ export default /* @ngInject */ ($stateProvider, coreConfigProvider) => {
6448
}).$promise
6549
.then(({ plans }) => filter(plans, offer => /failover/.test(offer.planCode) && /USA/.test(offer.invoiceName))),
6650

67-
68-
instances: /* @ngInject */ (
69-
OvhApiCloudProject,
70-
projectId,
71-
) => OvhApiCloudProject
72-
.Instance()
73-
.v6()
74-
.query({
75-
serviceName: projectId,
76-
})
77-
.$promise,
78-
79-
goBack: /* @ngInject */ goToFailoverIps => goToFailoverIps,
51+
goBack: /* @ngInject */ goToFailoverIpsOnboarding => goToFailoverIpsOnboarding,
8052
},
8153

8254
});

packages/manager/modules/pci/src/projects/project/failover-ips/order/order.routing.js

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import filter from 'lodash/filter';
2-
import find from 'lodash/find';
32
import map from 'lodash/map';
43

54
export default /* @ngInject */ ($stateProvider, coreConfigProvider) => {
@@ -26,21 +25,6 @@ export default /* @ngInject */ ($stateProvider, coreConfigProvider) => {
2625
id,
2726
}).$promise))),
2827

29-
instances: /* @ngInject */ (
30-
OvhApiCloudProject,
31-
projectId,
32-
) => OvhApiCloudProject
33-
.Instance()
34-
.v6()
35-
.query({
36-
serviceName: projectId,
37-
})
38-
.$promise
39-
.then(instances => filter(
40-
instances,
41-
({ ipAddresses }) => find(ipAddresses, { type: 'public' }),
42-
)),
43-
4428
goBack: /* @ngInject */ goToFailoverIps => goToFailoverIps,
4529
},
4630

@@ -64,18 +48,6 @@ export default /* @ngInject */ ($stateProvider, coreConfigProvider) => {
6448
}).$promise
6549
.then(({ plans }) => filter(plans, offer => /failover/.test(offer.planCode) && /USA/.test(offer.invoiceName))),
6650

67-
68-
instances: /* @ngInject */ (
69-
OvhApiCloudProject,
70-
projectId,
71-
) => OvhApiCloudProject
72-
.Instance()
73-
.v6()
74-
.query({
75-
serviceName: projectId,
76-
})
77-
.$promise,
78-
7951
goBack: /* @ngInject */ goToFailoverIps => goToFailoverIps,
8052
},
8153

0 commit comments

Comments
 (0)