burp-ui/burpui/templates/js/calendar.js

65 lines
1.6 KiB
JavaScript

/***
* The About page is managed with AngularJS.
* Following is the AngularJS Application and Controller.
* Our $scope is initialized with a $http request that retrieves a JSON like that:
* {
* 'version': 'xxx',
* 'burp': [
* {
* 'client': 'yyy',
* 'server': 'zzz',
* 'name': 'aaa',
* },
* ]
* }
*/
{% import 'macros.html' as macros %}
var _client = function() {};
var _clients = function() {};
var _servers = function() {};
$(document).ready(function() {
myEventRender = function( event, element, view ) {
element.attr({
'title': event.title+', Duration: '+_time_human_readable((new Date(event.end) - new Date(event.start))/1000),
});
};
fetchEvents = function(start, end) {
{% if config.WITH_CELERY -%}
var feed_url = '{{ url_for("api.task_history", client=cname, server=server) }}?start='+start+'&end='+end;
{% else -%}
var feed_url = '{{ url_for("api.history", client=cname, server=server) }}?start='+start+'&end='+end;
{% endif -%}
$.get(feed_url)
.done(function(data) {
cal = $('#calendar')
cal.fullCalendar('removeEventSources');
$.each(data, function(i, source) {
if (source) {
source.cache = true;
cal.fullCalendar('addEventSource', source);
}
});
});
};
$('#calendar').fullCalendar({
{{ macros.translate_calendar() }}
editable: false,
eventLimit: true,
eventLimitClick: 'day',
firstDay: 1,
header:{
left: 'month,listWeek',
center: 'title',
right: 'today prev,next'
},
eventRender: myEventRender,
viewRender: function(view, element) {
fetchEvents(view.start.format(), view.end.format());
}
});
});