mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-11-04 00:02:37 +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);
 |