// 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.events = { title: 'label.menu.events', id: 'events', sectionSelect: { preFilter: function(args) { if(isAdmin()) return ["events", "alerts"]; else return ["events"]; }, label: 'label.select-view' }, sections: { events: { type: 'select', title: 'label.menu.events', listView: { id: 'events', label: 'label.menu.events', fields: { description: { label: 'label.description' }, level: { label: 'label.level' }, domain: { label: 'label.domain' }, account: { label: 'label.account' }, created: { label: 'label.date', converter: cloudStack.converters.toLocalDate } }, actions: { // Remove multiple events remove: { label: 'Delete Events', isHeader: true, addRow: false, messages: { notification: function(args) { return 'Events Deleted'; } }, createForm: { title:'Delete Events', desc: '', fields: { type: { label: 'By event type' , docID:'helpEventsDeleteType'}, date: { label: 'By date (older than)', docID:'helpEventsDeleteDate', isDatepicker: true } } }, action: function(args) { var data={}; if(args.data.type != "") $.extend(data, { type:args.data.type }); if(args.data.date != "") $.extend(data, {date:args.data.date }); $.ajax({ url:createURL("deleteEvents"), data:data, dataType:'json', async: false, success:function(data){ args.response.success(); } }); // Reloads window with events removed $(window).trigger('cloudStack.fullRefresh'); } }, // Archive multiple events archive: { label: 'Archive Events', isHeader: true, addRow: false, messages: { notification: function(args) { return 'Archive events'; } }, createForm: { title:'Archive Events', desc: '', fields: { type: { label: 'By event type' , docID:'helpEventsArchiveType'}, date: { label: 'By date (older than)' , docID:'helpEventsArchiveDate', isDatepicker: true }, } }, action: function(args) { var data={}; if(args.data.type != "") $.extend(data, { type:args.data.type }); if(args.data.date != "") $.extend(data, {date:args.data.date }); $.ajax({ url:createURL("archiveEvents"), data:data, dataType:'json', async: false, success:function(data){ args.response.success(); } }); // Reloads window with events removed $(window).trigger('cloudStack.fullRefresh'); } } }, advSearchFields: { level: { label: 'label.level', select: function(args) { args.response.success({ data: [ {id: '', description: ''}, {id: 'INFO', description: 'INFO'}, {id: 'WARN', description: 'WARN'}, {id: 'ERROR', description: 'ERROR'} ] }); } }, domainid: { label: 'Domain', select: function(args) { if(isAdmin() || isDomainAdmin()) { $.ajax({ url: createURL('listDomains'), data: { listAll: true, details: 'min' }, success: function(json) { var array1 = [{id: '', description: ''}]; var domains = json.listdomainsresponse.domain; if(domains != null && domains.length > 0) { for(var i = 0; i < domains.length; i++) { array1.push({id: domains[i].id, description: domains[i].path}); } } args.response.success({ data: array1 }); } }); } else { args.response.success({ data: null }); } }, isHidden: function(args) { if(isAdmin() || isDomainAdmin()) return false; else return true; } }, account: { label: 'Account', isHidden: function(args) { if(isAdmin() || isDomainAdmin()) return false; else return true; } } /* , startdate: { label: 'Start Date', isDatepicker: true }, enddate: { label: 'End Date', isDatepicker: true } */ }, dataProvider: function(args) { var data = {}; listViewDataProvider(args, data); $.ajax({ url: createURL('listEvents'), data: data, success: function(json) { var items = json.listeventsresponse.event; args.response.success({data:items}); } }); }, detailView: { name: 'label.details', actions: { // Remove single event remove: { label: 'Delete', messages: { notification: function(args) { return 'Event Deleted'; }, confirm: function() { return 'Are you sure you want to remove this event?'; } }, action: function(args) { $.ajax({ url:createURL("deleteEvents&ids=" +args.context.events[0].id), success:function(json){ args.response.success(); } }); } }, // Archive single event archive: { label: 'Archive', messages: { notification: function(args) { return 'Event Archived'; }, confirm: function() { return 'Please confirm that you want to archive this event.'; } }, action: function(args) { $.ajax({ url:createURL("archiveEvents&ids=" +args.context.events[0].id), success:function(json){ args.response.success(); } }); // Reloads window with item archived $(window).trigger('cloudStack.fullRefresh'); } } }, tabs: { details: { title: 'label.details', fields: [ { description: { label: 'label.description' }, state: { label: 'label.state' }, level: { label: 'label.level' }, type: { label: 'label.type' }, domain: { label: 'label.domain' }, account: { label: 'label.account' }, username: { label: 'label.initiated.by' }, created: { label: 'label.date', converter: cloudStack.converters.toLocalDate }, id: { label: 'label.id' } } ], dataProvider: function(args) { $.ajax({ url: createURL("listEvents&id=" + args.context.events[0].id), dataType: "json", async: true, success: function(json) { var item = json.listeventsresponse.event[0]; args.response.success({data: item}); } }); } } } } } }, alerts: { type: 'select', title: 'label.menu.alerts', listView: { id: 'alerts', label: 'label.menu.alerts', fields: { description: { label: 'label.description' }, sent: { label: 'label.date', converter: cloudStack.converters.toLocalDate } }, actions: { // Remove multiple Alerts remove: { label: 'Delete Alerts', isHeader: true, addRow: false, messages: { notification: function(args) { return 'Alerts Deleted'; } }, createForm: { title:'Delete Alerts', desc: '', fields: { type: { label: 'By event type' , docID:'helpAlertsDeleteType'}, date: { label: 'By date (older than)' ,docID:'helpAlertsDeleteDate', isDatepicker: true } } }, action: function(args) { var data={}; if(args.data.type != "") $.extend(data, { type:args.data.type }); if(args.data.date != "") $.extend(data, {date:args.data.date }); $.ajax({ url:createURL("deleteAlerts"), data:data, dataType:'json', async: false, success:function(data){ args.response.success(); } }); // Reloads window with events removed $(window).trigger('cloudStack.fullRefresh'); } }, // Archive multiple Alerts archive: { label: 'Archive Alerts', isHeader: true, addRow: false, messages: { notification: function(args) { return 'Alerts Archived'; } }, createForm: { title:'Archive Alerts', desc: '', fields: { type: { label: 'By event type', docID:'helpAlertsArchiveType' }, date: { label: 'By date (older than)' , docID:'helpAlertsArchiveDate', isDatepicker: true } } }, action: function(args) { var data={}; if(args.data.type != "") $.extend(data, { type:args.data.type }); if(args.data.date != "") $.extend(data, {date:args.data.date }); $.ajax({ url:createURL("archiveAlerts"), data:data, dataType:'json', async: false, success:function(data){ args.response.success(); } }); // Reloads window with events removed $(window).trigger('cloudStack.fullRefresh'); } } }, dataProvider: function(args) { var data = {}; listViewDataProvider(args, data); $.ajax({ url: createURL('listAlerts'), data: data, async: true, success: function(json) { var items = json.listalertsresponse.alert; args.response.success({data:items}); } }); }, detailView: { name: 'Alert details', actions: { // Remove single Alert remove: { label: 'Delete', messages: { notification: function(args) { return 'Alert Deleted'; }, confirm: function() { return 'Are you sure you want to delete this alert ?'; } }, action: function(args) { $.ajax({ url:createURL("deleteAlerts&ids=" +args.context.alerts[0].id), success:function(json){ args.response.success(); } }); $(window).trigger('cloudStack.fullRefresh'); } }, archive: { label: 'Archive', messages: { notification: function(args) { return 'Alert Archived'; }, confirm: function() { return 'Please confirm that you want to archive this alert.'; } }, action: function(args) { $.ajax({ url:createURL("archiveAlerts&ids=" +args.context.alerts[0].id), success:function(json){ args.response.success(); } }); // Reloads window with item archived $(window).trigger('cloudStack.fullRefresh'); } } }, tabs: { details: { title: 'label.details', fields: [ { id: { label: 'ID' }, description: { label: 'label.description' }, sent: { label: 'label.date', converter: cloudStack.converters.toLocalDate } } ], dataProvider: function(args) { $.ajax({ url: createURL("listAlerts&id=" + args.context.alerts[0].id), dataType: "json", async: true, success: function(json) { var item = json.listalertsresponse.alert[0]; args.response.success({data: item}); } }); } } } } } } } }; })(cloudStack);