Repository: cloudstack
Updated Branches:
  refs/heads/master 5811ebeee -> 801a98617


CLOUDSTACK-7483: UI > instance page, template page > hide "Original XS Version 
is 6.1+" field when OS Type is not Windows since property 
jsonObj.details.hypervisortoolsversion only applies to Windows.


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/801a9861
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/801a9861
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/801a9861

Branch: refs/heads/master
Commit: 801a98617c4fbec46c9fab65a9f05608f5574991
Parents: 5811ebe
Author: Jessica Wang <[email protected]>
Authored: Wed Sep 3 15:11:50 2014 -0700
Committer: Jessica Wang <[email protected]>
Committed: Wed Sep 3 15:13:14 2014 -0700

----------------------------------------------------------------------
 ui/scripts/instances.js | 105 ++++++++++-------
 ui/scripts/templates.js | 265 +++++++++++++++++++++++++++----------------
 2 files changed, 232 insertions(+), 138 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/801a9861/ui/scripts/instances.js
----------------------------------------------------------------------
diff --git a/ui/scripts/instances.js b/ui/scripts/instances.js
index 7205999..6870f5b 100644
--- a/ui/scripts/instances.js
+++ b/ui/scripts/instances.js
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 (function($, cloudStack) {
-    var vmMigrationHostObjs;
+    var vmMigrationHostObjs, ostypeObjs;
 
     var vmSnapshotAction = function(args) {
         var action = {
@@ -1175,25 +1175,27 @@
                                 },
                                 osTypeId: {
                                     label: 'label.os.type',
-                                    select: function(args) {
-                                        $.ajax({
-                                            url: createURL("listOsTypes"),
-                                            dataType: "json",
-                                            async: true,
-                                            success: function(json) {
-                                                var ostypes = 
json.listostypesresponse.ostype;
-                                                var items = [];
-                                                $(ostypes).each(function() {
-                                                    items.push({
-                                                        id: this.id,
-                                                        description: 
this.description
-                                                    });
-                                                });
-                                                args.response.success({
-                                                    data: items
-                                                });
-                                            }
+                                    select: function(args) {                   
                
+                                       if (ostypeObjs == undefined) {          
                                
+                                               $.ajax({
+                                                   url: 
createURL("listOsTypes"),
+                                                   dataType: "json",
+                                                   async: false,
+                                                   success: function(json) {   
                                                
+                                                       ostypeObjs = 
json.listostypesresponse.ostype;   
+                                                   }
+                                               });
+                                       }                                       
+                                       var items = [];
+                                        $(ostypeObjs).each(function() {
+                                            items.push({
+                                                id: this.id,
+                                                description: this.description
+                                            });
                                         });
+                                        args.response.success({
+                                            data: items
+                                        });                                    
        
                                     }
                                 },
                                 isPublic: {
@@ -1685,7 +1687,32 @@
                             }
                             
                             if ('instances' in args.context && 
args.context.instances[0].hypervisor != 'XenServer') {
-                                 
hiddenFields.push('xenserverToolsVersion61plus');
+                                   
hiddenFields.push('xenserverToolsVersion61plus');
+                            }
+                            
+                            if ('instances' in args.context && 
args.context.instances[0].guestosid != undefined) {                        
+                               if (ostypeObjs == undefined) {
+                                       $.ajax({
+                                           url: createURL("listOsTypes"),
+                                           dataType: "json",
+                                           async: false,
+                                           success: function(json) {           
                                
+                                               ostypeObjs = 
json.listostypesresponse.ostype;                                                
   
+                                           }
+                                       });
+                               }                               
+                               if (ostypeObjs != undefined) {
+                                       var ostypeName;
+                                       for (var i = 0; i < ostypeObjs.length; 
i++) {
+                                               if (ostypeObjs[i].id == 
args.context.instances[0].guestosid) {                                          
                
+                                                       ostypeName = 
ostypeObjs[i].description;
+                                                       break;
+                                               }
+                                       }                                       
+                                       if (ostypeName == undefined || 
ostypeName.indexOf("win") == -1) {                                              
 
+                                               
hiddenFields.push('xenserverToolsVersion61plus');
+                                       }                                       
+                               }
                             }
                             
                             if (!args.context.instances[0].publicip) {
@@ -1743,24 +1770,26 @@
                             guestosid: {
                                 label: 'label.os.type',
                                 isEditable: true,
-                                select: function(args) {
-                                    $.ajax({
-                                        url: createURL("listOsTypes"),
-                                        dataType: "json",
-                                        async: true,
-                                        success: function(json) {
-                                            var ostypes = 
json.listostypesresponse.ostype;
-                                            var items = [];
-                                            $(ostypes).each(function() {
-                                                items.push({
-                                                    id: this.id,
-                                                    description: 
this.description
-                                                });
-                                            });
-                                            args.response.success({
-                                                data: items
-                                            });
-                                        }
+                                select: function(args) {                       
         
+                                    if (ostypeObjs == undefined) {             
                        
+                                               $.ajax({
+                                               url: createURL("listOsTypes"),
+                                               dataType: "json",
+                                               async: false,
+                                               success: function(json) {       
                                       
+                                                       ostypeObjs = 
json.listostypesresponse.ostype;    
+                                               }
+                                           });
+                                    }                                    
+                                    var items = [];
+                                    $(ostypeObjs).each(function() {
+                                        items.push({
+                                            id: this.id,
+                                            description: this.description
+                                        });
+                                    });
+                                    args.response.success({
+                                        data: items
                                     });
                                 }
                             },

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/801a9861/ui/scripts/templates.js
----------------------------------------------------------------------
diff --git a/ui/scripts/templates.js b/ui/scripts/templates.js
index 3e048cc..cef6a2a 100644
--- a/ui/scripts/templates.js
+++ b/ui/scripts/templates.js
@@ -15,7 +15,8 @@
 // specific language governing permissions and limitations
 // under the License.
 (function(cloudStack, $) {
-
+       var ostypeObjs;
+       
     cloudStack.sections.templates = {
         title: 'label.menu.templates',
         id: 'templates',
@@ -407,17 +408,19 @@
                                     osTypeId: {
                                         label: 'label.os.type',
                                         docID: 'helpRegisterTemplateOSType',
-                                        select: function(args) {
-                                            $.ajax({
-                                                url: createURL("listOsTypes"),
-                                                dataType: "json",
-                                                async: true,
-                                                success: function(json) {
-                                                    var items = 
json.listostypesresponse.ostype;
-                                                    args.response.success({
-                                                        data: items
-                                                    });
-                                                }
+                                        select: function(args) {               
                                
+                                               if (ostypeObjs == undefined) {
+                                                   $.ajax({
+                                                       url: 
createURL("listOsTypes"),
+                                                       dataType: "json",
+                                                       async: false,
+                                                       success: function(json) 
{                                                               
+                                                               ostypeObjs = 
json.listostypesresponse.ostype;                                                
       
+                                                       }
+                                                   });
+                                               }                               
                
+                                               args.response.success({
+                                                data: ostypeObjs
                                             });
                                         }
                                     },
@@ -624,6 +627,7 @@
                                             name: item.name,
                                             description: item.description,
                                             hypervisor: item.hypervisor,
+                                            ostypeid: item.ostypeid,
                                             zones: item.zonename,
                                             zoneids: [item.zoneid]
                                         });
@@ -844,7 +848,32 @@
                                     if ('templates' in args.context && 
args.context.templates[0].hypervisor != 'XenServer') {
                                         
hiddenFields.push('xenserverToolsVersion61plus');
                                     }
-                                    
+                                                                      
+                                    if ('templates' in args.context && 
args.context.templates[0].ostypeid != undefined) {
+                                       if (ostypeObjs == undefined) {
+                                               $.ajax({
+                                                   url: 
createURL("listOsTypes"),
+                                                   dataType: "json",
+                                                   async: false,
+                                                   success: function(json) {   
                                        
+                                                       ostypeObjs = 
json.listostypesresponse.ostype;                                                
   
+                                                   }
+                                               });
+                                       }                               
+                                       if (ostypeObjs != undefined) {
+                                               var ostypeName;
+                                               for (var i = 0; i < 
ostypeObjs.length; i++) {
+                                                       if (ostypeObjs[i].id == 
args.context.templates[0].ostypeid) {                                           
                
+                                                               ostypeName = 
ostypeObjs[i].description;
+                                                               break;
+                                                       }
+                                               }                               
        
+                                               if (ostypeName == undefined || 
ostypeName.indexOf("win") == -1) {                                              
 
+                                                       
hiddenFields.push('xenserverToolsVersion61plus');
+                                               }                               
        
+                                       }
+                                    }
+                                                                       
                                     return hiddenFields;
                                 },
 
@@ -935,23 +964,25 @@
                                         label: 'label.os.type',
                                         isEditable: true,
                                         select: function(args) {
-                                            $.ajax({
-                                                url: createURL("listOsTypes"),
-                                                dataType: "json",
-                                                async: true,
-                                                success: function(json) {
-                                                    var ostypes = 
json.listostypesresponse.ostype;
-                                                    var items = [];
-                                                    $(ostypes).each(function() 
{
-                                                        items.push({
-                                                            id: this.id,
-                                                            description: 
this.description
-                                                        });
-                                                    });
-                                                    args.response.success({
-                                                        data: items
-                                                    });
-                                                }
+                                               if (ostypeObjs == undefined) {
+                                                   $.ajax({
+                                                       url: 
createURL("listOsTypes"),
+                                                       dataType: "json",
+                                                       async: false,
+                                                       success: function(json) 
{                                                               
+                                                               ostypeObjs = 
json.listostypesresponse.ostype;                                                
      
+                                                       }
+                                                   });
+                                               }                               
                
+                                               var items = [];
+                                            $(ostypeObjs).each(function() {
+                                                items.push({
+                                                    id: this.id,
+                                                    description: 
this.description
+                                                });
+                                            });
+                                            args.response.success({
+                                                data: items
                                             });
                                         }
                                     },
@@ -1190,6 +1221,31 @@
                                                 if ('templates' in 
args.context && args.context.templates[0].hypervisor != 'XenServer') {
                                                     
hiddenFields.push('xenserverToolsVersion61plus');
                                                 }
+                                                                               
                
+                                                if ('templates' in 
args.context && args.context.templates[0].ostypeid != undefined) {
+                                                       if (ostypeObjs == 
undefined) {
+                                                       $.ajax({
+                                                           url: 
createURL("listOsTypes"),
+                                                           dataType: "json",
+                                                           async: false,
+                                                           success: 
function(json) {                                           
+                                                               ostypeObjs = 
json.listostypesresponse.ostype;                                                
   
+                                                           }
+                                                       });
+                                                       }                       
        
+                                                       if (ostypeObjs != 
undefined) {
+                                                               var ostypeName;
+                                                               for (var i = 0; 
i < ostypeObjs.length; i++) {
+                                                                       if 
(ostypeObjs[i].id == args.context.templates[0].ostypeid) {                      
                                     
+                                                                               
ostypeName = ostypeObjs[i].description;
+                                                                               
break;
+                                                                       }
+                                                               }               
                        
+                                                               if (ostypeName 
== undefined || ostypeName.indexOf("win") == -1) {                              
                 
+                                                                       
hiddenFields.push('xenserverToolsVersion61plus');
+                                                               }               
                        
+                                                       }
+                                                }                              
           
                                                 
                                                 return hiddenFields;
                                             },
@@ -1297,24 +1353,26 @@
                                                 ostypeid: {
                                                     label: 'label.os.type',
                                                     isEditable: true,
-                                                    select: function(args) {
-                                                        $.ajax({
-                                                            url: 
createURL("listOsTypes"),
-                                                            dataType: "json",
-                                                            async: true,
-                                                            success: 
function(json) {
-                                                                var ostypes = 
json.listostypesresponse.ostype;
-                                                                var items = [];
-                                                                
$(ostypes).each(function() {
-                                                                    
items.push({
-                                                                        id: 
this.id,
-                                                                        
description: this.description
-                                                                    });
-                                                                });
-                                                                
args.response.success({
-                                                                    data: items
-                                                                });
-                                                            }
+                                                    select: function(args) {   
                                                 
+                                                       if (ostypeObjs == 
undefined) {      
+                                                               $.ajax({
+                                                                   url: 
createURL("listOsTypes"),
+                                                                   dataType: 
"json",
+                                                                   async: 
false,
+                                                                   success: 
function(json) {
+                                                                       
ostypeObjs = json.listostypesresponse.ostype;                                   
                                
+                                                                   }
+                                                               });
+                                                       }                       
                             
+                                                       var items = [];
+                                                        
$(ostypeObjs).each(function() {
+                                                            items.push({
+                                                                id: this.id,
+                                                                description: 
this.description
+                                                            });
+                                                        });
+                                                        args.response.success({
+                                                            data: items
                                                         });
                                                     }
                                                 },
@@ -1510,24 +1568,26 @@
                                             required: true
                                         },
                                         select: function(args) {
-                                            $.ajax({
-                                                url: createURL("listOsTypes"),
-                                                dataType: "json",
-                                                async: true,
-                                                success: function(json) {
-                                                    var osTypeObjs = 
json.listostypesresponse.ostype;
-                                                    var items = [];
-                                                    //items.push({id: "", 
description: "None"}); //shouldn't have None option when bootable is checked
-                                                    
$(osTypeObjs).each(function() {
-                                                        items.push({
-                                                            id: this.id,
-                                                            description: 
this.description
-                                                        });
-                                                    });
-                                                    args.response.success({
-                                                        data: items
-                                                    });
-                                                }
+                                               if (ostypeObjs == undefined) {  
 
+                                                   $.ajax({
+                                                       url: 
createURL("listOsTypes"),
+                                                       dataType: "json",
+                                                       async: false,
+                                                       success: function(json) 
{
+                                                           osTypeObjs = 
json.listostypesresponse.ostype;                                                
           
+                                                       }
+                                                   });
+                                               }
+                                               var items = [];
+                                            //items.push({id: "", description: 
"None"}); //shouldn't have None option when bootable is checked
+                                            $(osTypeObjs).each(function() {
+                                                items.push({
+                                                    id: this.id,
+                                                    description: 
this.description
+                                                });
+                                            });
+                                            args.response.success({
+                                                data: items
                                             });
                                         }
                                     },
@@ -1703,6 +1763,7 @@
                                             id: item.id,
                                             name: item.name,
                                             description: item.description,
+                                            ostypeid: item.ostypeid,
                                             zones: item.zonename,
                                             zoneids: [item.zoneid]
                                         });
@@ -1930,23 +1991,25 @@
                                         label: 'label.os.type',
                                         isEditable: true,
                                         select: function(args) {
-                                            $.ajax({
-                                                url: createURL("listOsTypes"),
-                                                dataType: "json",
-                                                async: true,
-                                                success: function(json) {
-                                                    var ostypes = 
json.listostypesresponse.ostype;
-                                                    var items = [];
-                                                    $(ostypes).each(function() 
{
-                                                        items.push({
-                                                            id: this.id,
-                                                            description: 
this.description
-                                                        });
-                                                    });
-                                                    args.response.success({
-                                                        data: items
-                                                    });
-                                                }
+                                               if (ostypeObjs == undefined) {  
 
+                                                   $.ajax({
+                                                       url: 
createURL("listOsTypes"),
+                                                       dataType: "json",
+                                                       async: false,
+                                                       success: function(json) 
{
+                                                               ostypeObjs = 
json.listostypesresponse.ostype;                                                
      
+                                                       }
+                                                   });
+                                               }
+                                               var items = [];
+                                            $(ostypeObjs).each(function() {
+                                                items.push({
+                                                    id: this.id,
+                                                    description: 
this.description
+                                                });
+                                            });
+                                            args.response.success({
+                                                data: items
                                             });
                                         }
                                     },
@@ -2222,24 +2285,26 @@
                                                     label: 'label.os.type',
                                                     isEditable: true,
                                                     select: function(args) {
-                                                        $.ajax({
-                                                            url: 
createURL("listOsTypes"),
-                                                            dataType: "json",
-                                                            async: true,
-                                                            success: 
function(json) {
-                                                                var ostypes = 
json.listostypesresponse.ostype;
-                                                                var items = [];
-                                                                
$(ostypes).each(function() {
-                                                                    
items.push({
-                                                                        id: 
this.id,
-                                                                        
description: this.description
-                                                                    });
-                                                                });
-                                                                
args.response.success({
-                                                                    data: items
-                                                                });
-                                                            }
+                                                       if (ostypeObjs == 
undefined) {  
+                                                               $.ajax({
+                                                                   url: 
createURL("listOsTypes"),
+                                                                   dataType: 
"json",
+                                                                   async: 
false,
+                                                                   success: 
function(json) {
+                                                                       
ostypeObjs = json.listostypesresponse.ostype;                                   
                                
+                                                                   }
+                                                               });
+                                                       }
+                                                       var items = [];
+                                                        
$(ostypeObjs).each(function() {
+                                                            items.push({
+                                                                id: this.id,
+                                                                description: 
this.description
+                                                            });
                                                         });
+                                                        args.response.success({
+                                                            data: items
+                                                        });                    
                                        
                                                     }
                                                 },
 

Reply via email to