---
 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



Reply via email to