Update dialog appearance; add UI support for zone network providers

This commit is contained in:
Brian Federle 2011-11-11 10:29:27 -08:00
parent 7eb51d65d0
commit 8e12c9aa21
7 changed files with 288 additions and 71 deletions

View File

@ -2047,12 +2047,14 @@ Dialogs*/
}
.ui-dialog .ui-widget-content {
padding: 10px;
padding: 8px;
text-align: center;
display: inline-block;
}
.ui-dialog-buttonset {
width: 285px;
margin: 0;
}
.ui-dialog .ui-button {
@ -2069,10 +2071,6 @@ Dialogs*/
-webkit-border-radius: 5px;
-khtml-border-radius: 5px;
border-radius: 5px 5px 5px 5px;
/*+placement:shift 0px -35px;*/
position: relative;
left: 0px;
top: -35px;
}
.ui-dialog .ui-button:hover {
@ -2126,8 +2124,8 @@ Dialogs*/
.ui-dialog span.message {
display: block;
text-align: center;
margin: 0 0 30px;
color: #445361;
font-size: 15px;
/*+text-shadow:0px 1px 1px #FFFFFF;*/
-moz-text-shadow: 0px 1px 1px #FFFFFF;
-webkit-text-shadow: 0px 1px 1px #FFFFFF;
@ -2184,10 +2182,8 @@ Dialogs*/
.ui-dialog div.form-container {
height: 106px;
width: 100%;
overflow: hidden;
display: block;
padding-bottom: 37px;
text-align: left;
display: inline-block;
}
.ui-dialog div.form-container span.message {
@ -2198,7 +2194,7 @@ Dialogs*/
.ui-dialog div.form-container div.form-item {
display: inline-block;
height: 38px;
margin: 0 0 12px;
}
.ui-dialog div.form-container div.name {
@ -2217,9 +2213,9 @@ Dialogs*/
.ui-dialog div.form-container div.name label {
display: block;
width: 100%;
width: 119px;
text-align: right;
font-size: 14px;
font-size: 13px;
margin-top: 2px;
}
@ -2228,6 +2224,7 @@ Dialogs*/
overflow: hidden;
float: right;
margin: 0 0 0 15px;
display: inline-block;
}
.ui-dialog div.form-container div.value input {
@ -2239,6 +2236,12 @@ Dialogs*/
-webkit-border-radius: 4px;
-khtml-border-radius: 4px;
border-radius: 4px 4px 4px 4px;
border: 1px solid #AFAFAF;
/*+box-shadow:inset 0px 1px 0px #727272;*/
-moz-box-shadow: inset 0px 1px 0px #727272;
-webkit-box-shadow: inset 0px 1px 0px #727272;
-o-box-shadow: inset 0px 1px 0px #727272;
box-shadow: inset 0px 1px 0px #727272;
float: left;
}
@ -2259,6 +2262,46 @@ Dialogs*/
display: none;
}
.ui-dialog div.form-container div.multi-array {
display: inline-block;
background: #FFFFFF;
padding: 4px;
/*+border-radius:10px;*/
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
-khtml-border-radius: 10px;
border-radius: 10px 10px 10px 10px;
border: 1px solid #808080;
/*+box-shadow:inset 0px 1px 1px #929292;*/
-moz-box-shadow: inset 0px 1px 1px #929292;
-webkit-box-shadow: inset 0px 1px 1px #929292;
-o-box-shadow: inset 0px 1px 1px #929292;
box-shadow: inset 0px 1px 1px #929292;
}
.ui-dialog div.form-container div.multi-array .item {
width: 111px;
float: left;
margin: 0 0 13px;
}
.ui-dialog div.form-container div.multi-array .item .name {
font-size: 11px;
width: 61px;
float: left;
}
.ui-dialog div.form-container div.multi-array .item .value {
width: 13px;
float: left;
}
.ui-dialog div.form-container div.multi-array .item .value input {
float: left;
margin: 0;
padding: 0;
}
.ui-dialog.create-form .ui-button.ok {
margin-left: 0;
float: right;
@ -3013,8 +3056,12 @@ Dialogs*/
background-position: 0px -767px;
}
.zone-chart ul li.disabled .view-all.normal {
display: none;
.zone-chart ul li .view-all.configure {
/*+placement:anchor-bottom-right -1px 11px;*/
position: absolute;
right: -1px;
bottom: 11px;
text-indent: -2px;
}
.zone-chart ul li .view-details {
@ -3069,10 +3116,10 @@ Dialogs*/
}
.zone-chart .resources.naas ul.system-main li.main .view-all {
/*+placement:shift 43px 30px;*/
/*+placement:shift 65px 29px;*/
position: relative;
left: 43px;
top: 30px;
left: 65px;
top: 29px;
position: absolute;
text-align: left;
text-indent: -2px;
@ -3182,6 +3229,114 @@ Dialogs*/
margin-left: 92px;
}
/*** Add initial resource form*/
.panel .add-first-network-resource {
padding: 37px;
font-size: 14px;
}
.panel .add-first-network-resource .title {
font-size: 26px;
color: #3984D1;
/*+text-shadow:0px 1px 2px #BCBCBC;*/
-moz-text-shadow: 0px 1px 2px #BCBCBC;
-webkit-text-shadow: 0px 1px 2px #BCBCBC;
-o-text-shadow: 0px 1px 2px #BCBCBC;
text-shadow: 0px 1px 2px #BCBCBC;
margin: 0 0 17px;
}
.panel .add-first-network-resource .message {
display: block;
color: #545151;
margin: 0 0 30px;
}
.panel .add-first-network-resource .form-item {
width: 409px;
height: 39px;
padding: 5px;
position: relative;
}
.panel .add-first-network-resource .form-item label {
float: left;
}
.panel .add-first-network-resource .form-item label.error {
display: none;
font-size: 10px;
position: absolute;
top: 30px;
left: 137px;
}
.panel .add-first-network-resource .form-item input {
float: right;
/*+border-radius:6px;*/
-moz-border-radius: 6px;
-webkit-border-radius: 6px;
-khtml-border-radius: 6px;
border-radius: 6px 6px 6px 6px;
font-size: 16px;
border: 1px solid #B7B7B7;
}
.panel .add-first-network-resource .form-item input[type=text] {
width: 276px;
}
.panel .add-first-network-resource .button {
padding: 11px 23px 11px 21px;
cursor: pointer;
background: url(../images/bg-gradients.png) repeat-x 0px -221px;
margin: 29px 0 0;
/*+border-radius:10px;*/
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
-khtml-border-radius: 10px;
border-radius: 10px 10px 10px 10px;
border: 1px solid #858585;
color: #FFFFFF;
clear: both;
/*[empty]font-size:;*/
}
.panel .add-first-network-resource .multi-array {
background: #FFFFFF;
border: 1px solid #DCDCDC;
display: inline-block;
float: left;
padding: 12px;
clear: both;
width: 383px;
margin: 3px 0 0;
/*+border-radius:7px;*/
-moz-border-radius: 7px;
-webkit-border-radius: 7px;
-khtml-border-radius: 7px;
border-radius: 7px 7px 7px 7px;
}
.panel .add-first-network-resource .multi-array .item {
max-width: 155px;
float: left;
margin: 6px 0 0 24px;
}
.panel .add-first-network-resource .multi-array .item .name {
float: left;
}
.panel .add-first-network-resource .multi-array .item .value {
float: right;
margin: 0 0 0 13px;
}
.panel .add-first-network-resource .multi-array .item .value input {
margin: 0;
}
/*Form validation*/
input.error {
background: #FEE5E5;
@ -3456,7 +3611,7 @@ label.error {
border: 1px solid #E2DDDD;
clear: both;
height: 72% !important;
width: 94%;
width: 95%;
margin: auto;
overflow: auto;
height: 591px;
@ -3468,6 +3623,10 @@ label.error {
background: #FFFFFF;
}
.multi-wizard .content.tab-view div.ui-tabs-panel.ui-tabs-hide {
display: none;
}
.multi-wizard.instance-wizard .select-iso .content .select .hypervisor {
float: left;
display: block;
@ -4274,7 +4433,7 @@ div.detail-group td.view-all div.view-all div.end {
div.panel.ui-dialog div.list-view div.fixed-header {
top: 33px;
left: 22px;
left: 20px;
width: 759px;
height: 49px;
background-color: #EAECEF;
@ -4658,6 +4817,9 @@ div.panel.ui-dialog div.list-view div.fixed-header {
top: 2px;
}
.recurring-snapshots .schedule .forms > div {
}
.recurring-snapshots .schedule .forms form {
font-size: 12px;
color: #4F6171;
@ -4907,6 +5069,10 @@ div.panel.ui-dialog div.list-view div.fixed-header {
top: 0px;
}
.recurring-snapshots .ui-tabs div.ui-tabs-panel.ui-tabs-hide {
display: none;
}
/*Network detail chat*/
.network-chart {
width: 100%;
@ -5713,6 +5879,10 @@ div.panel.ui-dialog div.list-view div.fixed-header {
height: 185px;
}
.new-project .review .ui-tabs .ui-widget-content.ui-tabs-hide {
display: none;
}
.new-project .review .ui-tabs li {
}

View File

@ -28,11 +28,11 @@
$(function() {
var $container = $('#cloudStack3-container');
// Login
cloudStack.uiCustom.login({
$container: $container,
// Use this for checking the session, to bypass login screen
bypassLoginCheck: function(args) {
var disabledLogin = document.location.href.split('?')[1] == 'login=disabled';
@ -66,13 +66,31 @@
return args.response.error();
},
// Show cloudStack main UI widget
complete: function(args) {
$container.cloudStack($.extend(cloudStack, {
context: {
users: [args.user]
var context = {
users: [args.user]
};
var cloudStackArgs = $.extend(cloudStack, {
context: context
});
// Check to invoke install wizard
cloudStack.installWizard.check({
context: context,
response: {
success: function(args) {
if (args.doInstall) {
cloudStack.uiCustom.installWizard({
$container: $container,
context: context
});
} else {
// Show cloudStack main UI
$container.cloudStack(cloudStackArgs);
}
}
}
}));
});
}
});
});

View File

@ -46,22 +46,21 @@
}
],
dataProvider: function(args) {
args.response.success({ _custom: {
physicalNetwork: {
ip: '192.168.1.1'
}
}, data: testData.data.networks[0] });
args.response.success({
data: testData.data.networks[0]
});
}
},
ipAddresses: {
title: 'IP Addresses',
custom: function(args) {
return $('<div></div>').multiEdit({
context: args.context,
noSelect: true,
fields: {
'gateway': { edit: true, label: 'Gateway' },
'netmask': { edit: true, label: 'Netmask' },
'vlanid': { edit: true, label: 'VLAN' },
'vlanid': { edit: true, label: 'VLAN', isOptional: true },
'startip': { edit: true, label: 'Start IP' },
'endip': { edit: true, label: 'End IP' },
'add-rule': { label: 'Add', addButton: true }
@ -97,7 +96,13 @@
dataProvider: function(args) {
setTimeout(function() {
args.response.success({
data: []
data: [
{
gateway: '10.223.110.223',
netmask: '255.255.255.0',
vlanid: '1480'
}
]
});
}, 100);
}
@ -286,7 +291,7 @@
return {
virtualRouter: 'enabled',
netscaler: 'disabled',
f5: 'shutdown',
f5: 'enabled',
srx: 'enabled',
securityGroups: 'enabled'
};
@ -332,7 +337,7 @@
state: 'Enabled'
}
]
});
});
}, 500);
}
},
@ -392,19 +397,9 @@
name: 'Router0001S',
ipaddress: '192.168.1.1',
state: 'Enabled'
},
{
name: 'Router0001B',
ipaddress: '192.168.1.155',
state: 'Enabled'
},
{
name: 'Router0002',
ipaddress: '192.168.1.13',
state: 'Enabled'
}
]
});
});
}, 500);
}
},

View File

@ -262,11 +262,12 @@
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;
var action = networkProviderArgs.actions ? networkProviderArgs.actions.add : null;
var createForm = action ? networkProviderArgs.actions.add.createForm : null;
var itemName = networkProviderArgs.label;
$browser.cloudBrowser('addPanel', {
title: itemID + ' details',
title: itemName + ' details',
maximizeIfSelected: true,
complete: function($newPanel) {
if (status == 'disabled') {
@ -278,13 +279,17 @@
action.action($.extend(args, {
response: {
success: function(args) {
$newPanel.find('form').prepend($('<div>').addClass('loading-overlay'));
$('div.notifications').notifications('add', {
desc: action.messages.notification({}),
interval: 1000,
poll: action.notification.poll
});
$newPanel.html('').listView({
listView: naas.networkProviders.types[itemID]
poll: action.notification.poll,
complete: function(args) {
refreshChart();
$newPanel.html('').listView({
listView: naas.networkProviders.types[itemID]
});
}
});
}
}
@ -293,22 +298,25 @@
noDialog: true
});
var $formContainer = formData.$formContainer;
var $formContainer = formData.$formContainer.addClass('add-first-network-resource');
var $form = $formContainer.find('form');
var completeAction = formData.completeAction;
$newPanel.append(
$.merge(
$formContainer,
$('<div>')
.addClass('button submit')
.append($('<span>').html('Add'))
.click(function() {
if ($form.valid()) {
completeAction($formContainer);
}
})
)
$formContainer
.prepend(
$('<div>').addClass('title').html('Add new ' + itemName + ' device')
)
.append(
$('<div>')
.addClass('button submit')
.append($('<span>').html('Add'))
.click(function() {
if ($form.valid()) {
completeAction($formContainer);
}
})
)
);
} else {
$newPanel.listView({
@ -327,10 +335,13 @@
}
});
$refresh.click(function() {
var refreshChart = function() {
$charts.children().remove();
loadNetworkData();
};
$refresh.click(function() {
refreshChart();
return false;
});
};

View File

@ -142,9 +142,29 @@
selectFn(selectArgs);
}
} else if (this.isBoolean) {
$input = $('<input>').attr({ name: key, type: 'checkbox' }).appendTo($value);
if (this.isChecked) {
$input.attr('checked', 'checked');
if (this.multiArray) {
$input = $('<div>')
.addClass('multi-array').addClass(key).appendTo($value);
$.each(this.multiArray, function(itemKey, itemValue) {
$input.append(
$('<div>').addClass('item')
.append(
$.merge(
$('<div>').addClass('name').html(itemValue.label),
$('<div>').addClass('value').append(
$('<input>').attr({ name: itemKey, type: 'checkbox' }).appendTo($value)
)
)
)
);
});
} else {
$input = $('<input>').attr({ name: key, type: 'checkbox' }).appendTo($value);
if (this.isChecked) {
$input.attr('checked', 'checked');
}
}
} else {
$input = $('<input>').attr({

View File

@ -381,7 +381,7 @@
name: this,
type: 'text'
})
.addClass(!field.isOptional ? 'required': null)
.addClass(!field.isOptional ? 'required' : null)
.attr('disabled', field.isDisabled ? 'disabled' : false)
.appendTo(
$('<div>').addClass('range-item').appendTo($range)
@ -393,7 +393,7 @@
name: fieldName,
type: field.isPassword ? 'password' : 'text'
})
.addClass(!field.isOptional ? 'required': null)
.addClass(!field.isOptional ? 'required' : null)
.attr('disabled', field.isDisabled ? 'disabled' : false)
.appendTo($td);
}

View File

@ -58,6 +58,7 @@
.append(
$('<div>').addClass('remove')
);
var additionalComplete = args.complete;
// Get information for specified section path
$item.data('notification-section', args.section);
@ -77,6 +78,8 @@
notifications.cornerAlert({ message: $item.html() });
notifications.activeTasks.pop(pollTimer);
$item.removeClass('pending');
if (additionalComplete) additionalComplete();
},
incomplete: function(args) {},
error: function(args) {