mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-10-26 08:42:29 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			199 lines
		
	
	
		
			8.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			199 lines
		
	
	
		
			8.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| // 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.vmsnapshots = {
 | |
|         title: 'label.vmsnapshot',
 | |
|         id: 'vmsnapshots',
 | |
|         listView: {
 | |
|             id: 'vmsnapshots',
 | |
|             isMaximized: true,
 | |
|             fields: {
 | |
|                 displayname: {
 | |
|                     label: 'label.name'
 | |
|                 },
 | |
|                 state: {
 | |
|                     label: 'label.state',
 | |
|                     indicator: {
 | |
|                         'Ready': 'on',
 | |
|                         'Error': 'off'
 | |
|                     }
 | |
|                 },
 | |
|                 type: {
 | |
|                     label: 'label.vmsnapshot.type'
 | |
|                 },
 | |
|                 current: {
 | |
|                     label: 'label.vmsnapshot.current',
 | |
|                     converter: cloudStack.converters.toBooleanText
 | |
|                 },
 | |
|                 parentName: {
 | |
|                     label: 'label.vmsnapshot.parentname'
 | |
|                 },
 | |
|                 created: {
 | |
|                     label: 'label.date',
 | |
|                     converter: cloudStack.converters.toLocalDate
 | |
|                 }
 | |
|             },
 | |
| 
 | |
|             dataProvider: function(args) {
 | |
|                 var apiCmd = "listVMSnapshot&listAll=true";
 | |
|                 if (args.context != null) {
 | |
|                     if ("instances" in args.context) {
 | |
|                         apiCmd += "&virtualmachineid=" + args.context.instances[0].id;
 | |
|                     }
 | |
|                 }
 | |
|                 $.ajax({
 | |
|                     url: createURL(apiCmd),
 | |
|                     dataType: "json",
 | |
|                     async: true,
 | |
|                     success: function(json) {
 | |
|                         var jsonObj;
 | |
|                         jsonObj = json.listvmsnapshotresponse.vmSnapshot;
 | |
|                         args.response.success({
 | |
|                             data: jsonObj
 | |
|                         });
 | |
|                     }
 | |
|                 });
 | |
|             },
 | |
|             //dataProvider end
 | |
|             detailView: {
 | |
|                 tabs: {
 | |
|                     details: {
 | |
|                         title: 'label.details',
 | |
|                         fields: {
 | |
|                             id: {
 | |
|                                 label: 'label.id'
 | |
|                             },
 | |
|                             name: {
 | |
|                                 label: 'label.name'
 | |
|                             },
 | |
|                             displayname: {
 | |
|                                 label: 'label.display.name'
 | |
|                             },
 | |
|                             type: {
 | |
|                                 label: 'label.vmsnapshot.type'
 | |
|                             },
 | |
|                             description: {
 | |
|                                 label: 'label.description'
 | |
|                             },
 | |
|                             state: {
 | |
|                                 label: 'label.state',
 | |
|                                 indicator: {
 | |
|                                     'Ready': 'on',
 | |
|                                     'Error': 'off'
 | |
|                                 }
 | |
|                             },
 | |
|                             current: {
 | |
|                                 label: 'label.vmsnapshot.current',
 | |
|                                 converter: cloudStack.converters.toBooleanText
 | |
|                             },
 | |
|                             parentName: {
 | |
|                                 label: 'label.vmsnapshot.parentname'
 | |
|                             },
 | |
|                             created: {
 | |
|                                 label: 'label.date',
 | |
|                                 converter: cloudStack.converters.toLocalDate
 | |
|                             }
 | |
|                         },
 | |
|                         dataProvider: function(args) {
 | |
|                             $.ajax({
 | |
|                                 url: createURL("listVMSnapshot&listAll=true&vmsnapshotid=" + args.context.vmsnapshots[0].id),
 | |
|                                 dataType: "json",
 | |
|                                 async: true,
 | |
|                                 success: function(json) {
 | |
|                                     var jsonObj;
 | |
|                                     jsonObj = json.listvmsnapshotresponse.vmSnapshot[0];
 | |
|                                     args.response.success({
 | |
|                                         //actionFilter: vmActionfilter,
 | |
|                                         data: jsonObj
 | |
|                                     });
 | |
|                                 }
 | |
|                             });
 | |
|                         },
 | |
|                         tags: cloudStack.api.tags({
 | |
|                             resourceType: 'VMSnapshot',
 | |
|                             contextId: 'vmsnapshots'
 | |
|                         })
 | |
|                     }
 | |
|                 },
 | |
|                 actions: {
 | |
|                     //delete a snapshot
 | |
|                     remove: {
 | |
|                         label: 'label.action.vmsnapshot.delete',
 | |
|                         messages: {
 | |
|                             confirm: function(args) {
 | |
|                                 return 'message.action.vmsnapshot.delete';
 | |
|                             },
 | |
|                             notification: function(args) {
 | |
|                                 return 'label.action.vmsnapshot.delete';
 | |
|                             }
 | |
|                         },
 | |
|                         action: function(args) {
 | |
|                             $.ajax({
 | |
|                                 url: createURL("deleteVMSnapshot&vmsnapshotid=" + args.context.vmsnapshots[0].id),
 | |
|                                 dataType: "json",
 | |
|                                 async: true,
 | |
|                                 success: function(json) {
 | |
|                                     var jid = json.deletevmsnapshotresponse.jobid;
 | |
|                                     args.response.success({
 | |
|                                         _custom: {
 | |
|                                             jobId: jid
 | |
|                                         }
 | |
|                                     });
 | |
|                                 }
 | |
|                             });
 | |
|                         },
 | |
|                         notification: {
 | |
|                             poll: pollAsyncJobResult
 | |
|                         }
 | |
|                     },
 | |
|                     restart: {
 | |
|                         label: 'label.action.vmsnapshot.revert',
 | |
|                         messages: {
 | |
|                             confirm: function(args) {
 | |
|                                 return 'label.action.vmsnapshot.revert';
 | |
|                             },
 | |
|                             notification: function(args) {
 | |
|                                 return 'message.action.vmsnapshot.revert';
 | |
|                             }
 | |
|                         },
 | |
|                         action: function(args) {
 | |
|                             $.ajax({
 | |
|                                 url: createURL("revertToVMSnapshot&vmsnapshotid=" + args.context.vmsnapshots[0].id),
 | |
|                                 dataType: "json",
 | |
|                                 async: true,
 | |
|                                 success: function(json) {
 | |
|                                     var jid = json.reverttovmsnapshotresponse.jobid;
 | |
|                                     args.response.success({
 | |
|                                         _custom: {
 | |
|                                             jobId: jid
 | |
|                                         }
 | |
|                                     });
 | |
|                                 }
 | |
|                             });
 | |
| 
 | |
|                         },
 | |
|                         notification: {
 | |
|                             poll: pollAsyncJobResult
 | |
|                         }
 | |
|                     }
 | |
|                 }
 | |
|             }
 | |
|             //detailview end
 | |
|         }
 | |
|     }
 | |
| })(jQuery, cloudStack);
 |