123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- /**
- * TraCINg-Server - Gathering and visualizing cyber incidents on the world
- *
- * Copyright 2013 Matthias Gazzari, Annemarie Mattmann, André Wolski
- *
- * Licensed 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.
- */
- /*
- * database window part
- */
- // TODO: was sinnvolles für hier überlegen
- function requestAttackUpdate() {
- requestAttacks();
- }
- // get incidents
- function requestAttacks() {
- if (!$('#getIncidents').hasClass("disabled")) {
- // reset progress bar
- $('.bar').css('width', 0);
-
- // reset map and table
- refreshMap();
- // show "Loading..." on "Get Incidents" button and disable button
- $('#getIncidents').text('Loading Data');
- $('#getIncidents').addClass("disabled");
- // enable control buttons
- enableRequestControl();
-
- var attackFilter = filter.getFilter();
- // get date from datepicker
- attackFilter["start"] = $("#jrange").jrange("getStartDate");
- attackFilter["end"] = $("#jrange").jrange("getEndDate");
- if(currentView === VIEWS.TABLE){
- attackFilter["page"] = 1;
- attackFilter["perpage"] = 10;
- console.log("filter: ", attackFilter);
- currentTableFilter = attackFilter;
- socket.emit("requestAttacksForTable", attackFilter);
- } else {
- attackFilter["page"] = "all";
- console.log("filter: ", attackFilter);
- socket.emit("requestAttacks", attackFilter);
- }
- /*var settings = $("#attackTable").dataTable().fnSettings();
- settings.oFeatures.bServerSide = true;
- console.log(settings);
- $("#attackTable").dataTable()._fnAjaxUpdateDraw({
- recordsTotal: 300,
- recordsFiltered: 300,
- data: []
- }, settings);*/
- }
- }
- /* control buttons */
- // onclick control buttons methods
- $(function () {
- // stop showing data and enable a new request
- $('#stopButton').click(function (e) {
- if (!$(this).hasClass("disabled"))
- world.finishLoading(false);
- });
- // start/pause showing data from the database (toggles)
- $('#playButton').click(function (e) {
- // only change the button state if data is actually requested
- if (!$(this).hasClass("disabled")) {
- if ($('#playButton i').hasClass('icon-play')) {
- world.restartTimer();
- $('#playButton i').addClass('icon-pause');
- $('#playButton i').removeClass('icon-play');
- }
- else if ($('#playButton i').hasClass('icon-pause')) {
- world.stopTimer();
- $('#playButton i').addClass('icon-play');
- $('#playButton i').removeClass('icon-pause');
- }
- }
- });
- // lengthen the intervals in which new data from the database is shown
- $('#slowerButton').click(function (e) {
- if (!$(this).hasClass("disabled"))
- world.changeTimer(500);
- });
- // shorten the intervals in which new data from the database is shown
- $('#fasterButton').click(function (e) {
- if (!$(this).hasClass("disabled"))
- world.changeTimer(-500);
- });
- // immediately show the data from the database
- $('#showAllButton').click(function (e) {
- if (!$(this).hasClass("disabled"))
- world.resetTimer();
- });
- });
- // enable database request loading control buttons
- function enableRequestControl() {
- $('#stopButton').removeClass('disabled');
- $('#playButton').removeClass('disabled');
- $('#slowerButton').removeClass('disabled');
- $('#fasterButton').removeClass('disabled');
- $('#showAllButton').removeClass('disabled');
- }
- // disable database request loading control buttons
- function disableRequestControl() {
- $('#stopButton').addClass('disabled');
- $('#playButton').addClass('disabled');
- $('#slowerButton').addClass('disabled');
- $('#fasterButton').addClass('disabled');
- $('#showAllButton').addClass('disabled');
- }
- /*
- * database window gui functionality
- */
- $(function(){
- $("#jrange").jrange();
- });
- // based on http://stackoverflow.com/questions/13313867/custom-button-dissapearing-from-jquery-datepicker
- function addPanelSelectButton(obj) {
- setTimeout(function() {
- var buttonPane = $(obj).datepicker("widget").find(".ui-datepicker-buttonpane");
- var btn = $('<button class="ui-datepicker-current ui-state-default ui-priority-primary ui-corner-all" type="button">Select</button>');
- btn.unbind("click").bind("click", function() {
-
- setTimeout(function() {$('#hideTable').html('');}, 300);
- // write current year and month into text field on close, remember them for next time
- var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
- var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
- $(obj).datepicker('option', 'defaultDate', new Date(year, month));
- $(obj).datepicker('setDate', new Date(year, month));
- // set current (changed) ID for the request
- currentRequestID = "inputDateNoDay";
-
- });
- if (buttonPane.has('#customClearButton').length==0)
- btn.appendTo(buttonPane);
- }, 1);
- }
|