You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cloudstack.apache.org by olgasmola <ol...@gmail.com> on 2012/06/26 13:00:13 UTC

[PATCH] CS-15292: Split long OS Type list when create Template.

---
 ui/scripts/templates.js |   59 ++++++++++++++++++++++++++++++++++++-----------
 1 file changed, 45 insertions(+), 14 deletions(-)

diff --git a/ui/scripts/templates.js b/ui/scripts/templates.js
index e49b94f..44408c4 100644
--- a/ui/scripts/templates.js
+++ b/ui/scripts/templates.js
@@ -200,20 +200,51 @@
                     }
                   },
 
-                  osTypeId: {
-                    label: 'label.os.type',
-                    select: function(args) {
-                      $.ajax({
-                        url: createURL("listOsTypes"),
-                        dataType: "json",
-                        async: true,
-                        success: function(json) {
-                          var items = json.listostypesresponse.ostype;
-                          args.response.success({data: items});
-                        }
-                      });
-                    }
-                  },
+                  osCategory: {
+					label: 'OS Category',
+					select: function(args) {
+					  $.ajax({
+						url: createURL("listOsCategories"),
+						dataType: "json",
+						async: true,
+						success: function(json) {
+							var osCats = json.listoscategoriesresponse.oscategory;
+							var items = [];
+							if (isAdmin())
+								items.push({id: -1, description: "All OS"});
+							$(osCats).each(function() {
+								items.push({id: this.id, description: this.name});
+							});
+							args.response.success({data: items});
+						}
+					  });
+					}
+				  },
+				  
+				  osTypeId: {
+					label: 'label.os.type',
+					dependsOn: 'osCategory',
+					select: function(args) {
+						if(args.osCategory == null)
+							return;
+						
+						var apiCmd;
+						if(args.osCategory == -1)
+							apiCmd = "listOsTypes";
+						else
+							apiCmd = "listOsTypes&oscategoryid=" + args.osCategory;
+							
+						$.ajax({
+							url: createURL(apiCmd),
+							dataType: "json",
+							async: true,
+							success: function(json) {
+								var items = json.listostypesresponse.ostype;
+								args.response.success({data: items});
+							}
+						});
+					}
+				  },
 
                   isExtractable: {
                     label: "extractable",
-- 
1.7.10.msysgit.1