From 1cd1152dd0ac6e8638e4d6bdb5c28be7365fdb44 Mon Sep 17 00:00:00 2001 From: Jessica Wang Date: Wed, 22 Feb 2012 10:54:02 -0800 Subject: [PATCH 01/69] bug 13923: volume page - make download volume action available on volumes whose hypervisor is OVM. --- ui/scripts/storage.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/scripts/storage.js b/ui/scripts/storage.js index bb6b6c63855..ac31cc0417a 100644 --- a/ui/scripts/storage.js +++ b/ui/scripts/storage.js @@ -1163,7 +1163,7 @@ allowedActions.push("recurringSnapshot"); } if(jsonObj.state != "Allocated") { - if(jsonObj.hypervisor != "Ovm" && jsonObj.vmstate == "Stopped") { + if(jsonObj.vmstate == "Stopped") { allowedActions.push("downloadVolume"); } } From cebbce42a71536c366f807e797eb283cb9f2dd0c Mon Sep 17 00:00:00 2001 From: Brian Federle Date: Wed, 22 Feb 2012 11:04:42 -0800 Subject: [PATCH 02/69] Make default language English, if no cookie set --- ui/scripts/ui-custom/login.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ui/scripts/ui-custom/login.js b/ui/scripts/ui-custom/login.js index 800b7bb2961..77130af3b8d 100644 --- a/ui/scripts/ui-custom/login.js +++ b/ui/scripts/ui-custom/login.js @@ -89,6 +89,12 @@ $.cookie('lang', $(this).val()); document.location.reload(); }); + + // Set default language + if (!$.cookie('lang')) { + $.cookie('lang', 'en'); + } + $languageSelect.val($.cookie('lang')); }; })(jQuery, cloudStack); From 4f35fb71108207372fb393ef70fafb610d892f05 Mon Sep 17 00:00:00 2001 From: Brian Federle Date: Wed, 22 Feb 2012 11:05:13 -0800 Subject: [PATCH 03/69] Get EULA specific to selected language --- ui/scripts/cloudStack.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/scripts/cloudStack.js b/ui/scripts/cloudStack.js index 4d1f1f97e4e..c0dfc431d92 100644 --- a/ui/scripts/cloudStack.js +++ b/ui/scripts/cloudStack.js @@ -313,7 +313,7 @@ // EULA check $.ajax({ - url: 'eula.html', + url: 'eula.' + $.cookie('lang') + '.html', dataType: 'html', success: function(html) { cloudStack.uiCustom.login($.extend(loginArgs, { eula: html, hasLogo: true })); From 8b6a39cdfec77841da9f8444a8045f432785e053 Mon Sep 17 00:00:00 2001 From: Jessica Wang Date: Wed, 22 Feb 2012 11:19:44 -0800 Subject: [PATCH 04/69] bug 13924: IP Address page - Static NAT IP always support "Firewall - Port Range" regardless whether network offerings includes Firewall service or not. --- ui/scripts/ui-custom/ipRules.js | 44 ++++++--------------------------- 1 file changed, 8 insertions(+), 36 deletions(-) diff --git a/ui/scripts/ui-custom/ipRules.js b/ui/scripts/ui-custom/ipRules.js index bb8c000308e..68d95dce908 100644 --- a/ui/scripts/ui-custom/ipRules.js +++ b/ui/scripts/ui-custom/ipRules.js @@ -42,7 +42,7 @@ return true; }; - var staticNATChart = function(args, includingFirewall) { + var staticNATChart = function(args) { var $chart = $('#template').find('.network-chart.static-nat').clone(); var $vmName = $chart.find('li.static-nat-enabled .vmname'); var $browser = $('#browser .container'); @@ -91,15 +91,10 @@ } } }); - - if(includingFirewall == true) { - $chart.find('li.firewall .view-details').click(function() { - makeMultiEditPanel($(this), { title: _l('label.nat.port.range')}); - }); - } - else { - $chart.find('li.firewall').hide(); - } + + $chart.find('li.firewall .view-details').click(function() { + makeMultiEditPanel($(this), { title: _l('label.nat.port.range')}); + }); return $chart; }; @@ -114,13 +109,8 @@ // 1. choose between staticNAT chart and non-staticNAT chart 2. filter disabled tabs if (preFilter.length) { - if($.inArray('nonStaticNATChart', preFilter) != -1) { //choose static NAT chart - if($.inArray('firewall', preFilter) == -1) { - return staticNATChart(args, true); //static NAT including Firewall - } - else { - return staticNATChart(args, false); //static NAT excluding Firewall - } + if($.inArray('nonStaticNATChart', preFilter) != -1) { //choose static NAT chart + return staticNATChart(args); } else { //choose non-static NAT chart $(preFilter).each(function() { @@ -130,25 +120,7 @@ return $(this).hasClass(id); }).addClass('disabled'); }); - } - - /* - if (preFilter.length == 3) { // 'firewall', 'portForwarding', 'loadBalancing' - return staticNATChart(args, true); //static NAT including Firewall - } - else if (preFilter.length == 4) { // 'firewall', 'portForwarding', 'loadBalancing', 'staticnatFirewall' - return staticNATChart(args, false); //static NAT excluding Firewall - } - else { - $(preFilter).each(function() { - var id = this; - - var $li = $chart.find('li').filter(function() { - return $(this).hasClass(id); - }).addClass('disabled'); - }); - } - */ + } } $chart.find('.view-details').click(function() { From ad4347764a46efc49dec679fdf170741e3999032 Mon Sep 17 00:00:00 2001 From: Jessica Wang Date: Wed, 22 Feb 2012 11:34:49 -0800 Subject: [PATCH 05/69] system page - physical network - fix a bug that after physical network tags field is updated, add guest network dialog was still using obsolete physical network data. --- ui/scripts/system.js | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/ui/scripts/system.js b/ui/scripts/system.js index a2c82dcd5b6..f356c5c3d41 100644 --- a/ui/scripts/system.js +++ b/ui/scripts/system.js @@ -1045,10 +1045,21 @@ networkOfferingId: { label: 'label.network.offering', dependsOn: 'scope', - select: function(args) { + select: function(args) { + $.ajax({ + url: createURL('listPhysicalNetworks'), + data: { + zoneid: selectedZoneObj.id + }, + async: false, + success: function(json) { + physicalNetworkObjs = json.listphysicalnetworksresponse.physicalnetwork; + } + }); + var apiCmd = "listNetworkOfferings&state=Enabled&zoneid=" + selectedZoneObj.id; - var array1 = []; - + var array1 = []; + if(physicalNetworkObjs.length > 1) { //multiple physical networks var guestTrafficTypeTotal = 0; for(var i = 0; i < physicalNetworkObjs.length; i++) { From 99b0fbbdcbe970701797d70fb4275f1d09973f2c Mon Sep 17 00:00:00 2001 From: Alena Prokharchyk Date: Wed, 22 Feb 2012 11:02:28 -0800 Subject: [PATCH 06/69] bug 13925: don't allow to delete the network when there are vms in Error state (these vms has to be cleaned up by expunge process first) status 13925: resolved fixed Reviewed-by: Sheng Yang --- server/src/com/cloud/network/NetworkManagerImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java index 9d4cd3d61b3..80e3820cc4b 100755 --- a/server/src/com/cloud/network/NetworkManagerImpl.java +++ b/server/src/com/cloud/network/NetworkManagerImpl.java @@ -2924,7 +2924,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag List userVms = _userVmDao.listByNetworkIdAndStates(networkId); for (UserVmVO vm : userVms) { - if (!(vm.getState() == VirtualMachine.State.Error || (vm.getState() == VirtualMachine.State.Expunging && vm.getRemoved() != null))) { + if (!(vm.getState() == VirtualMachine.State.Expunging && vm.getRemoved() != null)) { s_logger.warn("Can't delete the network, not all user vms are expunged. Vm " + vm + " is in " + vm.getState() + " state"); return false; } From 84b18473e7dc0fa536384a48593c9d9a7eb217e3 Mon Sep 17 00:00:00 2001 From: Brian Federle Date: Wed, 22 Feb 2012 12:04:13 -0800 Subject: [PATCH 07/69] bug 13922 -Fix enable static NAT never completing if detail view was not visible -- caused by JS error in widget -If detail view isn't visible anymore, don't show post-enable/disable NAT dialog which refreshes list view --- ui/scripts/network.js | 10 ++++++++-- ui/scripts/sharedFunctions.js | 4 ++-- ui/scripts/ui/widgets/detailView.js | 17 ++++++++++++----- 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/ui/scripts/network.js b/ui/scripts/network.js index bfe582f5b10..9c9bf2e6e91 100644 --- a/ui/scripts/network.js +++ b/ui/scripts/network.js @@ -1225,7 +1225,9 @@ } }); - ipChangeNotice(); + if (args._custom.$detailView.is(':visible')) { + ipChangeNotice(); + } } } }, @@ -1254,7 +1256,11 @@ return ['enableStaticNAT']; }; }, - onComplete: ipChangeNotice + onComplete: function(args, _custom) { + if (_custom.$detailView.is(':visible')) { + ipChangeNotice(); + } + } } }); }, diff --git a/ui/scripts/sharedFunctions.js b/ui/scripts/sharedFunctions.js index fefad46eb95..d054befb246 100644 --- a/ui/scripts/sharedFunctions.js +++ b/ui/scripts/sharedFunctions.js @@ -41,7 +41,7 @@ var pollAsyncJobResult = function(args) { return; //Job has not completed } else { - if (result.jobstatus == 1) { // Succeeded + if (result.jobstatus == 1) { // Succeeded if(args._custom.getUpdatedItem != null && args._custom.getActionFilter != null) { args.complete({ data: args._custom.getUpdatedItem(json), @@ -64,7 +64,7 @@ var pollAsyncJobResult = function(args) { } if (args._custom.onComplete) { - args._custom.onComplete(json); + args._custom.onComplete(json, args._custom); } } else if (result.jobstatus == 2) { // Failed diff --git a/ui/scripts/ui/widgets/detailView.js b/ui/scripts/ui/widgets/detailView.js index cbddc2b3e83..149a18bcaf6 100644 --- a/ui/scripts/ui/widgets/detailView.js +++ b/ui/scripts/ui/widgets/detailView.js @@ -82,9 +82,11 @@ if (customAction && !noAdd) { customAction({ context: context, + $detailView: $detailView, complete: function(args) { // Set loading appearance var $loading = $('
').addClass('loading-overlay'); + $detailView.prepend($loading); args = args ? args : {}; @@ -92,20 +94,23 @@ var $item = args.$item; notification.desc = messages.notification(args.messageArgs); - notification._custom = args._custom; + notification._custom = $.extend(args._custom ? args._custom : {}, { + $detailView: $detailView + }); cloudStack.ui.notifications.add( notification, // Success function(args) { - $loading.remove(); + if (!$detailView.is(':visible')) return; + + $loading.remove(); + replaceListViewItem($detailView, args.data); if (!noRefresh) { updateTabContent(args.data); } - - replaceListViewItem($detailView, args.data); }, {}, @@ -131,7 +136,9 @@ response: { success: function(args) { args = args ? args : {}; - notification._custom = args._custom; + notification._custom = $.extend(args._custom ? args._custom : {}, { + $detailView: $detailView + }); if (additional && additional.success) additional.success(args); From f182e1ba4718a1982acfa56177d091667fb42261 Mon Sep 17 00:00:00 2001 From: Brian Federle Date: Wed, 22 Feb 2012 12:08:52 -0800 Subject: [PATCH 08/69] Recurring snapshot UI: fix tab wrapping --- ui/css/cloudstack3.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/css/cloudstack3.css b/ui/css/cloudstack3.css index 3418c30da3d..85e66a92884 100644 --- a/ui/css/cloudstack3.css +++ b/ui/css/cloudstack3.css @@ -6796,7 +6796,7 @@ div.panel.ui-dialog div.list-view div.fixed-header { .recurring-snapshots .ui-tabs ul li a { width: 76px; text-indent: 28px; - margin: 0 32px 0 0; + margin: 0 14px 0 0; padding: 8px 0 5px; background: url(../images/sprites.png) no-repeat -521px -540px; border: none; From 822889fa4cca340486dcef6a02bc534b27bb969a Mon Sep 17 00:00:00 2001 From: Jessica Wang Date: Wed, 22 Feb 2012 12:11:05 -0800 Subject: [PATCH 09/69] system page - update embedded object of args.context.physicalNetworks[0] after a physical network is updated. --- ui/scripts/system.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ui/scripts/system.js b/ui/scripts/system.js index f356c5c3d41..bf726b7dbc0 100644 --- a/ui/scripts/system.js +++ b/ui/scripts/system.js @@ -1049,11 +1049,11 @@ $.ajax({ url: createURL('listPhysicalNetworks'), data: { - zoneid: selectedZoneObj.id + id: args.context.physicalNetworks[0].id }, async: false, - success: function(json) { - physicalNetworkObjs = json.listphysicalnetworksresponse.physicalnetwork; + success: function(json) { + args.context.physicalNetworks[0] = json.listphysicalnetworksresponse.physicalnetwork[0]; } }); @@ -1080,7 +1080,7 @@ } }); } - + if(guestTrafficTypeTotal > 1) { if(args.context.physicalNetworks[0].tags != null && args.context.physicalNetworks[0].tags.length > 0) { array1.push("&tags=" + args.context.physicalNetworks[0].tags); From db435eb32402fdc1dfa8176be1ca44288afb6f45 Mon Sep 17 00:00:00 2001 From: Brian Federle Date: Wed, 22 Feb 2012 12:14:09 -0800 Subject: [PATCH 10/69] Domain/tree view UI fix Render details only after panel is fully transitioned in, to prevent lag from server calls while animation is happening. --- ui/scripts/ui/widgets/treeView.js | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/ui/scripts/ui/widgets/treeView.js b/ui/scripts/ui/widgets/treeView.js index 5966304ce12..0845ce1f03b 100644 --- a/ui/scripts/ui/widgets/treeView.js +++ b/ui/scripts/ui/widgets/treeView.js @@ -93,17 +93,18 @@ if ($target.is('li .name')) { $treeView.find('li .name').removeClass('selected'); $target.addClass('selected'); - var $panel = $browser.cloudBrowser('addPanel', { + $browser.cloudBrowser('addPanel', { title: $target.html(), data: '', - parent: $treeView.closest('div.panel') + parent: $treeView.closest('div.panel'), + complete: function($panel) { + $panel.detailView($.extend(treeViewArgs.detailView, { + id: $li.data('tree-view-item-id'), + $browser: $browser, + context: { domains: [ $li.data('tree-view-item-obj') ] } + })); + } }); - - $panel.detailView($.extend(treeViewArgs.detailView, { - id: $li.data('tree-view-item-id'), - $browser: $browser, - context: { domains: [ $li.data('tree-view-item-obj') ] } - })); } return true; From a1a368f9a24a82e2c07fd882375b03479ff04aeb Mon Sep 17 00:00:00 2001 From: Brian Federle Date: Wed, 22 Feb 2012 12:22:26 -0800 Subject: [PATCH 11/69] Dashboard UI fix For the user dashboard, have events 'view all' button go to the Events list view, as Alerts can only be viewed by admins. --- ui/scripts/ui-custom/dashboard.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ui/scripts/ui-custom/dashboard.js b/ui/scripts/ui-custom/dashboard.js index db4ffeec7da..9c5b19ccf41 100644 --- a/ui/scripts/ui-custom/dashboard.js +++ b/ui/scripts/ui-custom/dashboard.js @@ -144,13 +144,15 @@ if ($(this).hasClass('network')) $('#navigation li.network').click(); else { $browser.cloudBrowser('addPanel', { - title: 'Alerts', + title: $dashboard.hasClass('admin') ? 'Alerts' : 'Events', maximizeIfSelected: true, complete: function($newPanel) { $newPanel.listView({ $browser: $browser, context: cloudStack.context, - listView: cloudStack.sections.events.sections.alerts.listView + listView: $dashboard.hasClass('admin') ? + cloudStack.sections.events.sections.alerts.listView : + cloudStack.sections.events.sections.events.listView // Users cannot see events }); } }); From e450313cb528daa1f13e7b49f5288e0426d284b0 Mon Sep 17 00:00:00 2001 From: Jessica Wang Date: Wed, 22 Feb 2012 13:59:49 -0800 Subject: [PATCH 12/69] bug 13813: Network Service Providers should be hidden when Guest traffic type is hidden. Network Service Providers should be shown when Guest traffic type is shown. --- ui/scripts/system.js | 2 +- ui/scripts/ui-custom/zoneChart.js | 18 +++++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/ui/scripts/system.js b/ui/scripts/system.js index bf726b7dbc0..77285aa090f 100644 --- a/ui/scripts/system.js +++ b/ui/scripts/system.js @@ -1063,7 +1063,7 @@ if(physicalNetworkObjs.length > 1) { //multiple physical networks var guestTrafficTypeTotal = 0; for(var i = 0; i < physicalNetworkObjs.length; i++) { - if(guestTrafficTypeTotal > 1) + if(guestTrafficTypeTotal > 1) //as long as guestTrafficTypeTotal > 1, break for loop, don't need to continue to count. It doesn't matter whether guestTrafficTypeTotal is 2 or 3 or 4 or 5 or more. We only care whether guestTrafficTypeTotal is greater than 1. break; $.ajax({ url: createURL("listTrafficTypes&physicalnetworkid=" + physicalNetworkObjs[i].id), diff --git a/ui/scripts/ui-custom/zoneChart.js b/ui/scripts/ui-custom/zoneChart.js index c6c331f30a6..70e0da1f3c9 100644 --- a/ui/scripts/ui-custom/zoneChart.js +++ b/ui/scripts/ui-custom/zoneChart.js @@ -216,6 +216,7 @@ 'providers': { label: 'Network Service Providers', ignoreChart: true, + dependsOn: 'guest', configure: { action: actions.providerListView(targetContext) } @@ -227,8 +228,18 @@ }); // Make traffic type elems - $.each(trafficTypes, function(id, trafficType) { - if ($.inArray(id, validTrafficTypes) == -1 && !trafficType.ignoreChart) return true; + $.each(trafficTypes, function(id, trafficType) { + if ($.inArray(id, validTrafficTypes) == -1) { //if it is not a valid traffic type + if(trafficType.dependsOn != null && trafficType.dependsOn.length > 0) { //if it has dependsOn + if($.inArray(trafficType.dependsOn, validTrafficTypes) == -1) { //if its dependsOn is not a valid traffic type, either + return true; //skip this item + } + //else, if its dependsOn is a valid traffic type, continue to Make list item (e.g. providers.dependsOn is 'guest') + } + else { + return true; //if it doesn't have dependsOn, skip this item + } + } // Make list item var $li = $('
  • ').addClass(id); @@ -244,7 +255,8 @@ $li.appendTo($trafficTypes); // Make chart - if (trafficType.ignoreChart) return true; + if (trafficType.ignoreChart) + return true; var $targetChartItem = $('
    ').addClass('network-chart-item').addClass(id); $targetChartItem.appendTo($networkChart); From 8bdf7ae6a7661c9656d2843d226b245a3659d4f3 Mon Sep 17 00:00:00 2001 From: frank Date: Wed, 22 Feb 2012 11:04:57 -0800 Subject: [PATCH 13/69] move all license html to build/license reviewed-by: brian Conflicts: build/eula.en.html build/eula.html build/license/eula.en.html build/license/eula.ja.html --- build/{eula.html => license/eula.en.html} | 0 build/license/eula.ja.html | 1 + 2 files changed, 1 insertion(+) rename build/{eula.html => license/eula.en.html} (100%) create mode 100755 build/license/eula.ja.html diff --git a/build/eula.html b/build/license/eula.en.html similarity index 100% rename from build/eula.html rename to build/license/eula.en.html diff --git a/build/license/eula.ja.html b/build/license/eula.ja.html new file mode 100755 index 00000000000..75b4631414b --- /dev/null +++ b/build/license/eula.ja.html @@ -0,0 +1 @@ +

    CITRIX® ライセンス契約書

    この文書は、ライセンスを許諾されるユーザー (以下「お客様」といいます) と Citrix Systems, Inc、、Citrix Systems International GmbH、または Citrix Systems Asia Pacific Pty Ltd. との間で締結される法的に有効な契約 (以下「本契約」といいます) です。お客様がこの製品または Feature Release (以下、総称して「本製品」といいます) またはテクニカル サポート (以下「サポート」といいます) の引渡しを受ける具体的場所によって、本契約に基づく提供主体が決定されます (該当する法人を、以下「CITRIX」といいます)。アメリカ合衆国デラウェア州法人である Citrix Systems, Inc. は、北米、中米、および南米の各諸国ならびに日本において、本製品のライセンス許諾を提供し、北米、中米、および南米の各諸国において、サポートを提供しています。Citrix Systems, Inc. が全株式を保有するスイス連邦共和国法人である Citrix Systems International GmbH は、ヨーロッパ、中東、およびアフリカにおいて、本製品のライセンス許諾およびサポートを提供し、アジアおよび太平洋沿岸の各諸国 (日本を除く) において、本製品のライセンス許諾を提供しています。Citrix Systems Asia Pacific Pty Ltd. は、アジアおよび太平洋沿岸の各諸国 (日本を除く) において、サポートを提供しています。シトリックス・システムズ・ジャパン株式会社は、日本において、サポートを提供しています。本製品をインストールおよび/または使用することにより、お客様は本契約条項に同意されたものとします。本契約条項に同意いただけない場合、本製品をインストールおよび/または使用しないでください。

    1. ライセンスの許諾。本製品は Citrix が所有権を有するソフトウェア プログラムであり、本契約に基づいてオブジェクト コード形式で配布されます。本製品のライセンスは、CPU ソケット モデルに基づいて許諾されます。ライセンス モデルで定義される、ソフトウェアを使用可能にするライセンス (以下「ライセンス」といいます) によって、本製品がアクティブ化されます。

    CPU ソケット モデル条件では、「CPU ソケット」は、CPU を搭載するか否かにかかわらず、本製品を実行するサーバー上の個々の CPU ソケットを指します。

    ほかの CITRIX 製品または本製品の別のエディションのライセンスを使って、本製品の許可される使用範囲を拡大することはできません。ライセンスは製品のバージョンごとに許諾されます。ライセンスのバージョンは、アクセスされる本製品と同じか新しいものである必要があります。CITRIX は、お客様に対し、本製品および付属文書 (以下、総称して「本ソフトウェア」といいます) について、次のとおり全世界での非独占的な権利を許諾します。

    a. ライセンス。お客様は、合計して最大でお客様が購入されたライセンスに対応する数の CPU ソケットを搭載する複数のサーバー (以下「実稼働サーバー」といいます) に、本ソフトウェアをインストールすることができます。さらに、お客様は、実稼働サーバーで実行する本ソフトウェアをサポートするために、必要に応じて管理用サーバーに本ソフトウェアの管理部分をインストールすることができます。お客様は、内部ユーザーまたは第三者にクラウド サービスを提供するために、本ソフトウェアを使用することができます。実稼働環境と障害復旧環境の両方にインストールされている各ライセンスは、常に、いずれか一方の環境でのみ使用することができます。ただし、障害復旧環境の定期的なテストを行う場合に限り、当該ライセンスを両方の環境で同時に使用することができます。お客様は、本ソフトウェアの Web ユーザー インターフェイスのみをカスタマイズする権利を有します。

    b. 永続的ライセンス。本ソフトウェアが「永続的ライセンス ソフトウェア」である場合は、本ソフトウェアは永続的に使用許諾され、サブスクリプション (下記第 2 条に定義します) による特典を受け取る権利が含まれるものとします。

    c. 年間ライセンス。本ソフトウェアが「年間ライセンス ソフトウェア」である場合は、お客様のライセンスは 1 年間有効で、この期間中アップデートを受け取る権利が含まれます。ただし、サブスクリプション (下記第 2 条に定義します) に基づくものではありません。本契約においてアップデートとは、本ソフトウェア専用に一般に公開されたリリース版を意味するものとします。年間ライセンスの有効期間を延長するには、お客様は、現在のライセンスが失効する前に、新しいライセンスを購入しインストールしていただく必要があります。新しいライセンスを購入しインストールしていただけない場合は、年間ライセンス ソフトウェアを、ライセンスの有効期間失効後は使用いただけません。年間ライセンス ソフトウェアは、ライセンスの有効期間が失効した時点で自動的に無効となります。

    d. パートナー デモ用ソフトウェア。本ソフトウェアに「Partner Demo (パートナー デモ用)」と記されている場合は、本契約の規定のいかんにかかわらず、お客様が現在 CITRIX 正規ディストリビューターまたは正規販売代理店である場合に限り、お客様の顧客の支援を目的として、デモンストレーション、テストまたは評価のためにのみ、本ソフトウェアを使用することができます。パートナー デモ用ソフトウェアは、お客様の顧客トレーニングを目的として使用することはできません。パートナー デモ用ソフトウェアは、ソフトウェア パッケージに記された期日に自動的に機能を停止します。

    e. 評価用ソフトウェア。本ソフトウェアに「Evaluation (評価用)」と記されている場合は、本契約の規定のいかんにかかわらず、お客様自身の内部デモンストレーション、テストまたは評価のためにのみ、本ソフトウェアを使用することができます。評価用ソフトウェアは、ソフトウェア パッケージに記された期日に自動的に機能を停止します。

    f. 保存用の複製。お客様は、バックアップのみを目的として、機械可読形態の本ソフトウェアの複製物を 1 部作成することができます。ただし、所有権に関するすべての表示を当該複製物に複写することを条件とします。

    2. サブスクリプション権。永続的ライセンス ソフトウェアの初回サブスクリプション (以下「サブスクリプション」といいます) はサポートを含み、電子メールによるお客様に対するユーザー ライセンスの引渡日より開始します。サブスクリプションは、その後 1 年間存続しますが、毎年更新をご購入いただく必要があります (「サブスクリプション期間」)。最初のまたは更新されたサブスクリプション期間中、CITRIX は随時、アップデートを一般に公開する場合があります。サブスクリプション期間内にアップデートが公開された場合、CITRIX はお客様に対し、対象となるライセンスのアップデートを提供するものとします。お客様に引き渡される一切のアップデートは、本契約条項に基づく本ソフトウェアとみなされます。ただし、適用法令により許容される限度において、本ソフトウェアに適用される限定担保責任条項の対象外とします。本ソフトウェアに対する Subscription Advantage は、www.citrix.com に掲載される Citrix Product Lifecycle Support Policy (Citrix 製品ライフサイクル サポート ポリシー) に従って本ソフトウェアが提供されなくなるまでご購入いただけます。

    お客様は、CITRIX が、本ソフトウェアの一部を使用し、本ソフトウェアの機能の一部または全部を実行できる、新規のもしくは異なるコンピューター プログラムまたは本ソフトウェアの別エディションを開発し販売できることを了承するものとします。本契約は、そのような新規もしくは異なるコンピューター プログラムまたはエディションに関する権利をお客様に許諾するものではありません。お客様は、CITRIX は、本契約によってアップデートを公開する義務を負わないことも了承するものとします。アップデートの引渡条件は、CITRIX の工場渡し条件 (Ex Works CITRIX) とします (2000 年インコタームズ準拠)。

    3. サポート。サポートは、インシデント、テクニカル サポート コンタクト、対応時間、地理的な対応地域、テクニカル リレーションシップ マネジメント サービス、およびインフラストラクチャ評価オプションからなるさまざまな組み合わせにより販売されます。利用権の内容は、お客様が購入する商品により決定されます。「インシデント」とは、サポートを必要とする単一の問題およびその解決に必要とされる合理的な努力とします。最終的な解決策を見いだすためには、複数回の通話およびオフラインでの調査が必要となる可能性があります。インシデントの重大度によって、本ソフトウェアに対する対応レベルが決定されます。未使用のインシデントおよびそのほかの利用権は、各年間サポート期間の終了日に失効します。本ソフトウェアに対するサポートは、www.citrix.com に掲載される Citrix Product Lifecycle Support Policy (Citrix 製品ライフサイクル サポート ポリシー) に従って本ソフトウェアが提供されなくなるまでご購入いただけます。サポートは、CITRIX からお客様の所在地へ、リモートで提供されます。お客様の所在地への訪問が相互に合意された場合は、CITRIX は、お客様の出張規定に従って、妥当な旅費および滞在費をお客様に請求するものとします。CITRIX によるサポートの実施は、お客様に次の義務を履行いただくことを前提とします。(i) 主な管理担当者としてカスタマー サポート マネージャー (Customer Support Manager: 以下「CSM」といいます) を 1 名指名いただきます。(ii) ネームド コンタクト (CSM を含む) として、できれば CITRIX 認定資格を有する方を複数名指名いただきます。各ネームド コンタクト (CSM を除く) には、サポート担当者に連絡するための個別のサービス ID が提供されます。(iii) CITRIX の指示に従い、問題の特定および解決のための合理的な作業を行うことに同意いただきます。お客様には、このような要求に協力することに同意いただきます。(iv) ソフトウェアおよびデータの保全性および安全性を不正アクセスから保護するために必要な手続きを導入すること、および致命的なエラーにより消失または変更されたあらゆるファイルを再構築することに責任を負っていただきます。(v) お客様の所在地においてすべての機器、電話回線、通信インターフェイスおよびそのほかのハードウェアを調達、設置および保守すること、本ソフトウェアを操作するために、お客様の設備へのアクセスを CITRIX に必要に応じて提供すること、ならびに本契約により要求されるサービスを CITRIX が実施することを許可することに責任を負っていただきます。(vi) 現在入手可能および適用可能なすべての Hotfix、Hotfix ロールアップ パック、サービス パック等を、本ソフトウェアに時宜に即して適用いただきます。CITRIX は、次を原因とする問題に関連して、一切のサポート提供を要求されないものとします。(i) 本ソフトウェアに悪影響を与える、本ソフトウェア、オペレーティング システム、または環境に対するお客様または第三者による改変または追加。(ii) 異常または欠陥に対処しない、本ソフトウェアに対する CITRIX による改変または追加。(ii) CITRIX によって発行され、本製品に同封されている製品付属文書に定義されていない機能。(iii) 文書に定義されているプロセッサおよび周辺機器以外のプロセッサおよび周辺機器での本ソフトウェアの使用。(iv) 製造終了した本ソフトウェア。(v) 当事者によるコンサルティング成果物。「異常」とは、文書に定義されている機能に実質的に適合しない、本ソフトウェアにおける不具合のこととします。「欠陥」とは、文書に記載されている仕様に適合しない、本ソフトウェアにおける不具合のこととします。お客様の重大な問題に対して CITRIX が通常のサポート方法では十分な解決策を提供できない場合は、CITRIX はその製品開発チームに Private fix を作成させる場合があります。Private fix はお客様固有の状況に対処するために設計されるもので、CITRIX の書面による同意なしに、お客様の組織外で配布することはできません。CITRIX は、すべての Private fix に対するすべての権利、権原および利益を留保します。一切の Hotfix または Private fix は、本契約条項に基づく本ソフトウェアではなく、適用法令により許容される限度において、本ソフトウェアに適用される限定担保責任条項または知的財産権侵害補償条項の対象外とします。インフラストラクチャ評価またはそのほかのコンサルティング サービスについて、すべてのレポート、既存の著作物およびその二次的著作物、ならびに評価の実施にあたり作成、着想、創作、発見、発明または実用化される、インストール スクリプトその他成果物および開発成果にかかるすべての知的財産権は、CITRIX が単独かつ完全に有し続けるものとします。なお、お客様には、お客様の内部使用を目的に、この知的財産権に対する全世界での、非独占的な権利が許諾されます。

    4. その他の権利、制限および義務。下記制限特約をすることが適用法令によって明示的に禁止されている限度を除き、お客様は、本ソフトウェアを譲渡、レンタル、タイムシェアリング、権利を許諾、およびリースすることはできません。お客様が本ソフトウェア以外の CITRIX ソフトウェアの CITRIX ライセンスと置き換えるために本ソフトウェアのライセンスを購入された場合で、この置換えが当該購入についての取引条件であるときは、お客様は、新しいライセンスおよび本ソフトウェアをインストールした後は、置き換えられた以前の CITRIX ライセンスを破棄し、いかなる複製物も保有しないことに合意するものとします。お客様は、ライセンスの追跡調査を目的として、当該置換対象ライセンスおよび置き換え後の対応ライセンスのシリアル番号を販売代理店または、請求ある場合、CITRIX に直接提供するものとします。本契約において明示的に許可される場合または下記制限特約をすることが適用法令によって明示的に禁止されている限度を除き、お客様は、本ソフトウェアを改変、翻訳、リバース エンジニア、逆コンパイル、逆アセンブル、本ソフトウェアに基づいた二次的著作物の作成、または複製物の作成をすることはできません。お客様は、本ソフトウェアから所有権に関する通知、ラベル、表示の一切を除去することはできません。お客様は、適用法令により許容される限度において、CITRIX が、事前通知をもって、お客様の通常営業時間内に本契約の遵守状況を調査することに同意いただくものとします。上記にかかわらず、本契約は、本ソフトウェアに含まれるかまたは共に提供される無償のオープン ソース コード、その関連文書および資料に対して、当該の無償のオープン ソース コード、その関連文書および資料を対象に適用される無償のオープン ソース ライセンスに基づいて、追加のまたは異なる権利をお客様が行使することを阻止または制限するものではありません。

    明示的に許諾されていない本ソフトウェアのすべての権利は、CITRIX あるいはその製品供給者が留保します。

    適用される強行法規 (たとえば、コンピューター プログラムの法的保護に関する EC 指令 91/250 に準拠した内国制定法) により、お客様が、CITRIX の同意を要せず、本ソフトウェアに係るある一定の情報を取得する権利を有する場合、お客様は、制定法上の当該権利を行使される前に先ず、CITRIX に対し書面でもって利用目的を明確にして当該情報を請求いただくものとします。CITRIX が、その単独の判断で当該情報の一部または全部の提供を拒否した場合に限り、お客様は、制定法上の当該権利を行使するものとします。

    5. 侵害行為に対する補償。本ソフトウェア (オープン ソース ソフトウェアを除く) が第三者の特許または著作権を侵害するという申し立て (以下「侵害申立」といいます) に基づいて、お客様に対し提起される賠償請求、訴訟、または訴訟手続について、お客様が侵害申立についての通知を受けまたは発見したことを、CITRIX が当該の通知の遅れにより損害を受けないように速やかに CITRIX に書面で通知することを条件に、CITRIX は、当該の賠償請求、訴訟、または訴訟手続について、お客様の損失を補償し、また、CITRIX の選択により、訴訟追行または私的解決をするものとします。本第 5 条において「オープン ソース ソフトウェア」とは、オープン ソース ライセンス モデル (GNU General Public License、BSD、または Open Source Initiative により承認されるライセンスと同様のもの) に基づいて CITRIX により頒布されるソフトウェアを指します。CITRIX は、一切の侵害申立の訴訟追行または私的解決について単独の追行権限を有し、お客様は、侵害申立に対する攻撃・防禦について合理的な支援を提供するものとします。侵害申立の通知を受けて、または CITRIX が当該侵害申立の妥当性が高いと信じる場合、CITRIX は、その単独の費用と選択において、次の行為を行うことができます。(i) 侵害申立を受けた本ソフトウェアの使用を続行する権利をお客様のために獲得する、(ii) 本ソフトウェアを侵害しないものへ交換または変更する、または、(iii) 本ソフトウェアの返品を承認し、必要に応じて、お客様に返金する。以下の場合には、CITRIX は、あらゆる侵害申立または権利侵害の主張に対して、一切の責任を負いません。(i) 侵害申立により、本ソフトウェアの使用を停止すべきであると認識した後も、お客様が本ソフトウェアを使用した場合、(ii) お客様により、またはお客様の指示により本ソフトウェアが変更された場合、または (iii) 侵害申立が、本ソフトウェア単独の使用により避けられた場合に、CITRIX 製品でないプログラム、データ、ハードウェア、またはその他のものと、本ソフトウェアを組み合わせて使用した場合。上記内容は、あらゆる権利侵害主張に対するお客様の唯一の救済方法とします。

    6. 限定担保責任および免責。CITRIX は、本ソフトウェアの引渡日から 90 日間、CITRIX によって発行され、本製品に同封されている製品付属文書どおりに本ソフトウェアが実質的に動作することを保証します。本限定担保責任条項に基づく CITRIX およびその製品供給者の全責任ならびにお客様の唯一の救済方法は、CITRIX 単独の選択および適用法令に従って、媒体または本ソフトウェアの交換、または購入金額の払戻と本契約の解約に限られます。ただし、お客様が本ソフトウェアを CITRIX またはその正規代理店に返品することが条件となります。本限定担保責任は、お客様による本ソフトウェアの一切の変更または関連問題についてはその対象といたしません。CITRIX は、専門職業的手法をもってお客様により要求されるサポートを提供しますが、お客様により提起されるすべての質問または問題が、一定の時間内に解決されることを保証するものではありません。コンサルティング サービスについて、本限定担保責任条項に基づく CITRIX およびその製品供給者の全責任ならびにお客様の唯一の救済方法は、サービスの再実施に限られます。

    適用法令により許容される限度において、および本ソフトウェアに対する上記限定担保責任を除き、CITRIX およびその製品供給者は、明示、黙示、法令上その他いかなる担保責任または契約上の保証もお客様に付与するものではありません。また、CITRIX およびその製品供給者は、本ソフトウェア、アップデート、Subscription Advantage、およびサポートについて、品質、可用性、信頼性、安全性、またはコンピューター ウィルス、不具合、もしくは異常のないことに関わる一切の契約上の保証責任および、権原、平穏享有、平穏占有、商品性、第三者の権利を侵害しないこと、または特定目的への適合性を含む、一切の黙示の担保責任を否認します。本ソフトウェアは、その故障を直接の原因として人の生命、身体、財産または環境に係る深刻な被害をもたらすような装置との組合せによる使用または販売を目的として、設計、製造、または意図されたものではありません。お客様は、意図する結果を得るための本ソフトウェアおよびハードウェアの選択、ならびに、本ソフトウェアおよびハードウェアのインストール、使用、およびそれにより得られた結果について一切の責任を負うものとします。

    7. 所有権。本ソフトウェアに係る権原および所有権は、お客様に譲渡されるものではありません。その改作物、変更物、翻訳、二次的著作物、および複製物を含め、本ソフトウェアに係るすべての知的財産権に係る一切の権原および所有権は、CITRIX および/またはそのライセンサーが保有し、留保します。お客様は、本ソフトウェアを使用するための限定的なライセンスを取得するものとします。

    8. 輸出規制。お客様は、適切な政府の許可を得ずに、いかなる形態でも本ソフトウェアを輸出、再輸出または輸入しないことに合意します。お客様は、いかなる場合でも、アメリカ合衆国の禁輸対象国、アメリカ合衆国により取引の禁止を指定されている個人もしくは団体、またはアメリカ合衆国により特別に指定された同国人に対し、本ソフトウェアを輸出してはならないことを了解します。

    9. 責任の限定。適用法令により許容される限度において、CITRIX もしくは、その関連会社、製品供給者、または正規ディストリビューターが、データまたは個人情報の喪失、収益の減損、機会または利益の逸失、回復費用、本ソフトウェアまたはサポートの使用により生じた損失、サードパーティ製ソフトウェアもしくはハードウェアの使用によって生じた損害、または、本契約に関連する、本ソフトウェアまたはサポート、関連資料、もしくは付属文書の使用によって生じた、またはお客様による本ソフトウェアの輸出、再輸出、もしくは輸入によって生じた、その他の特別、付随的、二次的、もしくは間接的な損害に対し、損害発生の態様またはその請求原因のいかんにかかわらず、一切責任を負わないものとします。この責任の限定は、CITRIX、その関連会社、製品供給者、または正規ディストリビューターが、当該損害の発生可能性を事前に通知されていた場合といえども、なお適用されるものとします。適用法令により許容される限度において、いかなる場合においても、CITRIX、その関連会社、製品供給者、または正規ディストリビューターの責任額は、問題となっている特定のソフトウェア、サブスクリプション (サポート付きのサブスクリプションを含む)、またはサポートを購入するためにお客様にお支払いいただいた金額を超えないものとします。お客様は、本ソフトウェアのライセンス料またはサポート料が、上記の危険負担を反映したものであることを了承するものとします。法域によっては、付随的または二次的損害に対する責任の限定または排除が認められていないことがあり、上記の責任の限定または排除がお客様に適用されない場合があります。本契約において「CITRIX の関連会社」とは、その 50% 以上の議決権を Citrix Systems, Inc. が直接または間接的に所有する法人をいいます。関連会社、製品供給者、および正規代理店は、本契約による利益を享受する第三受益者となります。

    10. 解約。本契約は、本契約に基づき解約されない限り有効に存続するものとします。お客様は、本ソフトウェアをコンピューターから削除し、本ソフトウェアのすべての複製物を破棄し、解約するライセンスのシリアル番号を書面で CITRIX に通知することにより、いつでも本契約を解約することができます。CITRIX は、お客様の本契約に対する違反により、いつでも本契約を解約することができます。本ソフトウェアまたは付属文書の無許諾複製その他本契約に基づくライセンスの許諾条件に違反した場合、本契約は自動的に終了し、CITRIX はその他の一切の法的救済手段を講じることができるものとします。お客様は、本契約に対する重大な違反は、金銭損害賠償のみでは不十分な、回復不能な損害を CITRIX にもたらすこと、および、適用法令により許容される限度において、CITRIX が、保証金の支払いを要せず、差止命令による救済もしくは衡平法上の救済を受ける権利を有することに合意し、了承します。本契約の終了と同時に、本契約に基づいて許諾されたライセンスは終了するものとし、お客様は、直ちに本ソフトウェア、付属文書、およびすべてのバックアップ コピーを破棄しなければなりません。

    11. お客様がアメリカ合衆国政府機関である場合。お客様がアメリカ合衆国政府機関である場合は、連邦調達規則第 12.212 条 (48 CFR 12.212 (1995 年 10 月)) ならびに国防連邦調達規則補遺第 227.7202-1 条および第 227.7202-3 条 (48 CFR 227.7202-1、227.7202-3 (1995 年 6 月)) に基づき、お客様は、本ソフトウェアが「商用コンピューター ソフトウェア」であり続けること、および、本契約により、本ソフトウェアのアメリカ合衆国政府またはその機関による使用、複製、および開示は、この標準的な商用ライセンス契約に定めるすべての条項、条件、制約、および制限に従うものとすることを了承するものとします。理由の如何を問わず、第 12.212 条、第 227.7202-1 条、または第 227.7202-3 条が適用法令とみなされない場合は、お客様は、アメリカ合衆国政府機関による本ソフトウェアの使用、複製、および開示の権利は、規定どおりに、48 CFR 第 52.227-19 条 (c) (1) および (2) 項 (1987 年 6 月)、または DFARS 第 252.227-7014 条 (a) (14) 項 (1995 年 6 月) に定義される「制限付き権利」に限定されることを了承するものとします。製造者は、Citrix Systems, Inc., 851 West Cypress Creek Road, Fort Lauderdale, Florida, 33309, United States of America です。

    12. 正規ディストリビューターおよび正規販売代理店。CITRIX 正規ディストリビューターおよび販売代理店には、本契約を変更する権限、および CITRIX を拘束する一切の表明、約束、保証を行う権限はありません。

    13. 準拠法および裁判籍の選択。提供者が Citrix Systems, Inc. の場合、本契約は、国際物品売買契約に関する国連条約の適用を排除し、かつ、抵触法の原則に関わりなく、アメリカ合衆国フロリダ州法に準拠するものとします。また、本契約に起因するいかなる紛争についても、お客様は、フロリダ州ブラウワード郡内の州裁判所および連邦裁判所が専属的に人的裁判管轄権ならびに裁判籍を有することに同意するものとします。提供者が Citrix Systems International GmbH の場合、本契約は、国際物品売買契約に関する国連条約の適用を排除し、かつ、抵触法の原則に関わりなく、スイス連邦共和国法に準拠するものとします。また、本契約に起因するいかなる紛争についても、お客様は、チューリッヒ州内の所管裁判所が専属的に人的裁判管轄権ならびに裁判籍を有することに同意するものとします。提供者が Citrix Systems Asia Pacific Pty Ltd の場合、本契約は、国際物品売買契約に関する国連条約の適用を排除し、オーストラリア連邦ニュー サウス ウェールズ州法に準拠するものとします。また、本契約に起因するいかなる紛争についても、お客様は、ニュー サウス ウェールズ州内の所管裁判所が専属的に人的裁判管轄権ならびに裁判籍を有することに同意するものとします。本契約の規定のいずれかが適用法令によって無効または強制不能であるとされた場合、その限度において、当該規定は削除、抹消されているものとみなし、本契約のその他すべての規定はなお有効に存続するものとします。当該規定が削除、抹消されているとみなす限りにおいて、両当事者は、本契約の当初の目的と整合性を有する方法で、本契約の残りの規定を遵守することに合意します。

    14. CITRIX への連絡。本契約に関する質問その他 CITRIX へのお問い合わせは、CITRIX まで次の住所宛に書面でお送りください。Citrix Systems, Inc., Customer Service, 851 West Cypress Creek Road, Ft. Lauderdale, Florida 33309、Citrix Systems International GmbH, Rheinweg 9, CH-8200 Schaffhausen, Switzerland、または Citrix Systems Asia Pacific Pty Ltd., Level 3, 1 Julius Ave., Riverside Corporate Park, North Ryde NSW 2113, Sydney, Australia。

    15. 商標。Citrix は、Citrix Systems, Inc. の米国およびそのほかの国における商標および/または登録商標です。

    From 186fe658d6d6aa2170ca6b7b367561056a543099 Mon Sep 17 00:00:00 2001 From: Jessica Wang Date: Wed, 22 Feb 2012 14:13:42 -0800 Subject: [PATCH 14/69] add new labels to message_ja.properties --- client/WEB-INF/classes/resources/messages_ja.properties | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/client/WEB-INF/classes/resources/messages_ja.properties b/client/WEB-INF/classes/resources/messages_ja.properties index 5eb8fcd8a22..9ea1585c444 100644 --- a/client/WEB-INF/classes/resources/messages_ja.properties +++ b/client/WEB-INF/classes/resources/messages_ja.properties @@ -1,4 +1,9 @@ #new labels (begin) ********************************************************************************************** +label.add.compute.offering=Add compute offering +label.compute.offering=Compute offering +label.compute.offerings=Compute offerings +label.select.offering=Select offering +label.menu.infrastructure=Infrastructure label.sticky.tablesize=Table size label.sticky.expire=Expires label.sticky.cookie-name=Cookie name From a48e0baeaa3b3a36991333256a30ac0d70bf7d71 Mon Sep 17 00:00:00 2001 From: Brian Federle Date: Wed, 22 Feb 2012 14:35:24 -0800 Subject: [PATCH 15/69] Fix for primary storage step prefilter in IE --- ui/scripts/zoneWizard.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/scripts/zoneWizard.js b/ui/scripts/zoneWizard.js index fc812dd3467..5cbe76c2675 100644 --- a/ui/scripts/zoneWizard.js +++ b/ui/scripts/zoneWizard.js @@ -178,7 +178,7 @@ } }); - if(item == null || item.value == "false") + if(item == null || item.value == null || item.value == "false" || item.value == false) configurationUseLocalStorage = false; else configurationUseLocalStorage = true; From e0be87770675a9cfde7c2defa177d2e10f579edc Mon Sep 17 00:00:00 2001 From: Brian Federle Date: Wed, 22 Feb 2012 14:39:47 -0800 Subject: [PATCH 16/69] Zone wizard: UI: Review step Better final message before launch: make font size larger and centered; include icon --- .../classes/resources/messages.properties | 1 + ui/css/cloudstack3.css | 18 ++++++++++++++++++ ui/index.jsp | 3 ++- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/client/WEB-INF/classes/resources/messages.properties b/client/WEB-INF/classes/resources/messages.properties index 66cd415b0e5..ff7a39b30e1 100644 --- a/client/WEB-INF/classes/resources/messages.properties +++ b/client/WEB-INF/classes/resources/messages.properties @@ -1,4 +1,5 @@ #new labels (begin) ********************************************************************************************** +message.launch.zone=Zone is ready to launch; please proceed to the next step. label.add.compute.offering=Add compute offering label.compute.offering=Compute offering label.compute.offerings=Compute offerings diff --git a/ui/css/cloudstack3.css b/ui/css/cloudstack3.css index 85e66a92884..109505c7919 100644 --- a/ui/css/cloudstack3.css +++ b/ui/css/cloudstack3.css @@ -5373,6 +5373,24 @@ label.error { margin: 23px 0 0px 6px; } +.multi-wizard.zone-wizard .review .main-desc.pre-setup { + width: 100%; + font-size: 18px; + color: #2C4159; + background: url(../images/icons.png) no-repeat 104px -224px; + padding: 2px 0 1px; + text-align: center; + /*+placement:shift 0px 153px;*/ + position: relative; + left: 0px; + top: 153px; + /*+text-shadow:0px 1px #FFFFFF;*/ + -moz-text-shadow: 0px 1px #FFFFFF; + -webkit-text-shadow: 0px 1px #FFFFFF; + -o-text-shadow: 0px 1px #FFFFFF; + text-shadow: 0px 1px #FFFFFF; +} + .multi-wizard.zone-wizard .info-desc { font-size: 11px; float: left; diff --git a/ui/index.jsp b/ui/index.jsp index 59dfa4dd203..b3f42709b79 100644 --- a/ui/index.jsp +++ b/ui/index.jsp @@ -720,7 +720,7 @@
    -
    +
    @@ -1614,6 +1614,7 @@