Skip to content

Commit 52a4962

Browse files
committed
If no tiers are present, show add tier dialog on load
1 parent f3cc57f commit 52a4962

1 file changed

Lines changed: 70 additions & 71 deletions

File tree

ui/modules/vpc/vpc.js

Lines changed: 70 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,53 @@
1515
// specific language governing permissions and limitations
1616
// under the License.
1717
(function($, cloudStack) {
18+
var addTierDialog = function(args) {
19+
var $placeholder = args.$placeholder;
20+
var context = args.context;
21+
var addAction = cloudStack.vpc.tiers.actions.add;
22+
23+
cloudStack.dialog.createForm({
24+
context: context,
25+
form: addAction.createForm,
26+
after: function(args) {
27+
var $loading = $('<div>').addClass('loading-overlay')
28+
.prependTo($placeholder);
29+
30+
addAction.action({
31+
context: context,
32+
data: args.data,
33+
response: {
34+
success: function(args) {
35+
cloudStack.ui.notifications.add(
36+
// Notification
37+
{
38+
desc: addAction.label
39+
},
40+
41+
// Success
42+
function(args) {
43+
$loading.remove();
44+
$placeholder.closest('.vpc-network-chart').trigger('reload');
45+
},
46+
47+
{},
48+
49+
// Error
50+
function(args) {
51+
$loading.remove();
52+
}
53+
);
54+
},
55+
error: function(errorMsg) {
56+
cloudStack.dialog.notice({ message: _s(errorMsg) });
57+
$loading.remove();
58+
}
59+
}
60+
});
61+
}
62+
});
63+
};
64+
1865
var elems = {
1966
tier: function(args) {
2067
var tier = args.tier;
@@ -74,10 +121,10 @@
74121
},
75122
dashboardItems: args.dashboardItems
76123
}).addClass('router');
77-
124+
78125
$router.find('.info, .detail-link').remove();
79126
$router.find('.header').prepend($('<span></span>').addClass('icon').html('&nbsp;'));
80-
127+
81128
return $router;
82129
},
83130

@@ -87,66 +134,12 @@
87134

88135
$placeholder.append($('<span>').append('Create network'));
89136
$placeholder.click(function() {
90-
var addAction = cloudStack.vpc.tiers.actions.add;
91-
var form = cloudStack.dialog.createForm({
137+
addTierDialog({
92138
context: context,
93-
form: addAction.createForm,
94-
after: function(args) {
95-
var $loading = $('<div>').addClass('loading-overlay')
96-
.prependTo($placeholder);
97-
98-
addAction.action({
99-
context: context,
100-
data: args.data,
101-
response: {
102-
success: function(args) {
103-
var tier = args.data;
104-
105-
cloudStack.ui.notifications.add(
106-
// Notification
107-
{
108-
desc: addAction.label
109-
},
110-
111-
// Success
112-
function(args) {
113-
$loading.remove();
114-
$placeholder.closest('.vpc-network-chart').trigger('reload');
115-
116-
// addNewTier({
117-
// ipAddresses: ipAddresses,
118-
// $browser: $browser,
119-
// tierDetailView: tierDetailView,
120-
// context: $.extend(true, {}, context, {
121-
// networks: [tier]
122-
// }),
123-
// tier: tier,
124-
// acl: acl,
125-
// $tiers: $tiers,
126-
// actions: actions,
127-
// actionPreFilter: actionPreFilter,
128-
// vmListView: vmListView
129-
// });
130-
},
131-
132-
{},
133-
134-
// Error
135-
function(args) {
136-
$loading.remove();
137-
}
138-
);
139-
},
140-
error: function(errorMsg) {
141-
cloudStack.dialog.notice({ message: _s(errorMsg) });
142-
$loading.remove();
143-
}
144-
}
145-
});
146-
}
139+
$placeholder: $placeholder
147140
});
148141
});
149-
142+
150143
return $placeholder;
151144
},
152145

@@ -170,7 +163,7 @@
170163
} else {
171164
$total.find('span').html(dashboardItem.total ? dashboardItem.total : 0);
172165
}
173-
166+
174167
$dashboardItem.append($total, $name);
175168
$dashboardItem.appendTo($dashboard);
176169

@@ -214,7 +207,7 @@
214207
var vpcChart = function(args) {
215208
var context = args.context;
216209
var vpcItem = context.vpc[0];
217-
210+
218211
var chart = function(args) {
219212
args = args ? args : {};
220213

@@ -232,41 +225,47 @@
232225
response: {
233226
success: function(data) {
234227
var tiers = data.tiers;
228+
var $placeholder = elems.tierPlaceholder({
229+
context: context
230+
});
235231

236232
$(tiers).map(function(index, tier) {
237233
var $tier = elems.tier({
238234
context: context,
239235
tier: tier,
240236
dashboardItems: tier._dashboardItems
241237
});
242-
243238
$tier.appendTo($tiers);
244239
});
245240

246241
// Add placeholder tier
247-
$tiers.append(elems.tierPlaceholder({
248-
context: context
249-
}));
250-
242+
$tiers.append($placeholder);
251243
$loading.remove();
252-
244+
245+
if (!tiers.length) {
246+
addTierDialog({
247+
context: context,
248+
$placeholder: $placeholder
249+
});
250+
}
251+
253252
if (args.complete) {
254253
args.complete($chart);
255254
}
256-
255+
257256
// Router
258-
$router = elems.router({
257+
elems.router({
259258
context: context,
260259
dashboardItems: data.routerDashboard
261260
}).appendTo($chart);
262261
}
263-
}
262+
}
264263
});
265264

266265
$chart.bind('reload', function() {
267266
chart({
268267
complete: function($newChart) {
269-
$chart.replaceWith($newChart);
268+
$chart.replaceWith($newChart);
270269
}
271270
});
272271
});

0 commit comments

Comments
 (0)