You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bf...@apache.org on 2013/04/15 23:56:49 UTC
[2/2] git commit: updated refs/heads/ui-vm-affinity to 5d235f6
Add new 'affinity' UI section for managing affinity groups
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/5d235f69
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/5d235f69
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/5d235f69
Branch: refs/heads/ui-vm-affinity
Commit: 5d235f690d4d8a5413a4dc0e530e1760dee3514a
Parents: 38ca737
Author: Brian Federle <br...@citrix.com>
Authored: Mon Apr 15 14:56:44 2013 -0700
Committer: Brian Federle <br...@citrix.com>
Committed: Mon Apr 15 14:56:44 2013 -0700
----------------------------------------------------------------------
ui/scripts/affinity.js | 147 +++++++++++++++++++++++++++++++++
ui/scripts/cloudStack.js | 9 +-
ui/scripts/ui-custom/affinity.js | 2 +-
3 files changed, 153 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5d235f69/ui/scripts/affinity.js
----------------------------------------------------------------------
diff --git a/ui/scripts/affinity.js b/ui/scripts/affinity.js
new file mode 100644
index 0000000..8bfd844
--- /dev/null
+++ b/ui/scripts/affinity.js
@@ -0,0 +1,147 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+(function(cloudStack) {
+ cloudStack.sections.affinityGroups = {
+ title: 'label.affinity.groups',
+ listView: {
+ id: 'affinityGroups',
+ fields: {
+ name: { label: 'label.name' },
+ type: { label: 'label.type' }
+ },
+ dataProvider: function(args) {
+ args.response.success({
+ data: [
+ { id: 1, name: 'Affinity Group 1', type: 'Affinity' },
+ { id: 2, name: 'Affinity Group 2', type: 'Anti-affinity' },
+ { id: 3, name: 'Anti-affinity Group', type: 'Anti-affinity' }
+ ]
+ });
+ },
+ actions: {
+ add: {
+ label: 'label.add.affinity.group',
+
+ messages: {
+ confirm: function(args) {
+ return 'message.add.volume';
+ },
+ notification: function(args) {
+ return 'label.add.affinity.group';
+ }
+ },
+
+ createForm: {
+ title: 'label.add.affinity.group',
+ fields: {
+ name: {
+ label: 'label.name',
+ validation: { required: true }
+ },
+ type: {
+ label: 'label.availability.zone',
+ select: function(args) {
+ args.response.success({
+ data: [
+ { id: 'Affinity', description: 'Affinity' },
+ { id: 'AntiAffinity', description: 'Anti-Affinity' }
+ ]
+ });
+ }
+ },
+ availabilityZone: {
+ label: 'label.availability.zone',
+ select: function(args) {
+ $.ajax({
+ url: createURL("listZones&available=true"),
+ dataType: "json",
+ async: true,
+ success: function(json) {
+ var items = json.listzonesresponse.zone;
+ args.response.success({descriptionField: 'name', data: items});
+ }
+ });
+ }
+ },
+ }
+ },
+
+ action: function(args) {
+ args.response.success();
+ },
+
+ notification: {
+ poll: function(args) { args.complete(); }
+ }
+ }
+ },
+ detailView: {
+ actions: {
+ edit: {
+ label: 'label.edit',
+ action: function(args) {
+ args.response.success();
+ },
+ messages: {
+ notification: function(args) { return 'label.edit.affinity.group'; }
+ }
+ },
+ remove: {
+ label: 'label.delete.affinity.group',
+ action: function(args) {
+ args.response.success();
+ },
+ messages: {
+ confirm: function(args) {
+ return 'message.delete.affinity.group';
+ },
+ notification: function(args) {
+ return 'label.delete.affinity.group';
+ }
+ },
+ notification: {
+ // poll: pollAsyncJobResult,
+ poll: function(args) { args.complete(); }
+ }
+ }
+ },
+
+ viewAll: { path: 'instances', label: 'label.instances' },
+
+ tabs: {
+ details: {
+ title: 'label.details',
+ fields: [
+ {
+ name: { label: 'label.name', isEditable: true }
+ },
+ {
+ type: { label: 'label.type', isCompact: true }
+ }
+ ],
+
+ dataProvider: function(args) {
+ setTimeout(function() {
+ args.response.success({ data: args.context.affinityGroups[0] });
+ }, 20);
+ }
+ }
+ }
+ }
+ }
+ };
+})(cloudStack);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5d235f69/ui/scripts/cloudStack.js
----------------------------------------------------------------------
diff --git a/ui/scripts/cloudStack.js b/ui/scripts/cloudStack.js
index a8bca91..3e9bef0 100644
--- a/ui/scripts/cloudStack.js
+++ b/ui/scripts/cloudStack.js
@@ -22,16 +22,16 @@
var sections = [];
if(isAdmin()) {
- sections = ["dashboard", "instances", "storage", "network", "templates", "accounts", "domains", "events", "system", "global-settings", "configuration", "projects", "regions"];
+ sections = ["dashboard", "instances", "storage", "network", "templates", "accounts", "domains", "events", "system", "global-settings", "configuration", "projects", "regions", "affinityGroups"];
}
else if(isDomainAdmin()) {
- sections = ["dashboard", "instances", "storage", "network", "templates", "accounts", "domains", "events", "projects"];
+ sections = ["dashboard", "instances", "storage", "network", "templates", "accounts", "domains", "events", "projects", "affinityGroups"];
}
else if (g_userProjectsEnabled) {
- sections = ["dashboard", "instances", "storage", "network", "templates", "accounts", "events", "projects"];
+ sections = ["dashboard", "instances", "storage", "network", "templates", "accounts", "events", "projects", "affinityGroups"];
}
else { //normal user
- sections = ["dashboard", "instances", "storage", "network", "templates", "accounts", "events"];
+ sections = ["dashboard", "instances", "storage", "network", "templates", "accounts", "events", "affinityGroups"];
}
if (cloudStack.plugins.length) {
@@ -46,6 +46,7 @@
*/
dashboard: {},
instances: {},
+ affinityGroups: {},
storage: {},
network: {},
templates: {},
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5d235f69/ui/scripts/ui-custom/affinity.js
----------------------------------------------------------------------
diff --git a/ui/scripts/ui-custom/affinity.js b/ui/scripts/ui-custom/affinity.js
index 281ea2f..1012e7b 100644
--- a/ui/scripts/ui-custom/affinity.js
+++ b/ui/scripts/ui-custom/affinity.js
@@ -69,7 +69,7 @@
}).dialog({
dialogClass: 'multi-edit-add-list panel',
width: 825,
- title: _l('label.select.vm.for.static.nat'),
+ title: _l('label.affinity.groups'),
buttons: [
{
text: _l('label.apply'),