').addClass('view-all configure').html('Configure'));
});
// View all action
@@ -242,15 +243,81 @@
$browser.cloudBrowser('addPanel', {
title: itemID + ' details',
+ maximizeIfSelected: true,
complete: function($newPanel) {
$newPanel.detailView(
- naas.mainNetworks[itemID].detailView
+ $.extend(true, {}, naas.mainNetworks[itemID].detailView, {
+ context: { zones: context.physicalResources }
+ })
);
}
});
return false;
});
+
+ // Provider configure event
+ $tabContent.find('li.provider .view-all.configure').click(function() {
+ var $li = $(this).closest('li');
+ var itemID = $li.attr('rel');
+ var status = $li.attr('network-status');
+ var networkProviderArgs = naas.networkProviders.types[itemID];
+ var createForm = networkProviderArgs.actions.add.createForm;
+ var action = networkProviderArgs.actions.add;
+
+ $browser.cloudBrowser('addPanel', {
+ title: itemID + ' details',
+ maximizeIfSelected: true,
+ complete: function($newPanel) {
+ if (status == 'disabled') {
+ // Create form
+ var formData = cloudStack.dialog.createForm({
+ form: createForm,
+ context: { zones: listViewArgs.context.physicalResources },
+ after: function(args) {
+ action.action($.extend(args, {
+ response: {
+ success: function(args) {
+ $('div.notifications').notifications('add', {
+ desc: action.messages.notification({}),
+ interval: 1000,
+ poll: action.notification.poll
+ });
+ $newPanel.html('').listView({
+ listView: naas.networkProviders.types[itemID]
+ });
+ }
+ }
+ }));
+ },
+ noDialog: true
+ });
+
+ var $formContainer = formData.$formContainer;
+ var $form = $formContainer.find('form');
+ var completeAction = formData.completeAction;
+
+ $newPanel.append(
+ $.merge(
+ $formContainer,
+ $('
')
+ .addClass('button submit')
+ .append($('').html('Add'))
+ .click(function() {
+ if ($form.valid()) {
+ completeAction($formContainer);
+ }
+ })
+ )
+ );
+ } else {
+ $newPanel.listView({
+ listView: naas.networkProviders.types[itemID]
+ });
+ }
+ }
+ });
+ });
});
$tabMain.tabs();
diff --git a/ui/scripts/ui/widgets/detailView.js b/ui/scripts/ui/widgets/detailView.js
index 7a5320f8855..164758407d7 100644
--- a/ui/scripts/ui/widgets/detailView.js
+++ b/ui/scripts/ui/widgets/detailView.js
@@ -65,6 +65,7 @@
var messageArgs = { name: $detailView.find('tr.name td.value').html() };
var id = args.id;
var context = $detailView.data('view-args').context;
+ var _custom = $detailView.data('_custom');
var externalLinkAction = action.action.externalLink;
if (externalLinkAction) {
@@ -99,6 +100,7 @@
action.action({
data: data,
+ _custom: _custom,
ref: options.ref,
context: $detailView.data('view-args').context,
$form: $form,
@@ -214,6 +216,7 @@
args.actions[args.actionName].action({
data: data,
+ _custom: $detailView.data('_custom'),
context: $detailView.data('view-args').context,
response: {
data: data,
@@ -617,6 +620,9 @@
context: args.context,
response: {
success: function(args) {
+ if (args._custom) {
+ $detailView.data('_custom', args._custom);
+ }
var tabData = $tabContent.data('detail-view-tab-data');
var data = args.data;
var isFirstPanel = $tabContent.index($detailView.find('div.detail-group.ui-tabs-panel')) == 0;