mirror of https://github.com/gophish/gophish
Updated dashboard diagrams
parent
02c7c4b5b1
commit
c9d00059b0
|
@ -6,6 +6,7 @@ import (
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// SMTPServer represents the SMTP configuration details
|
||||||
type SMTPServer struct {
|
type SMTPServer struct {
|
||||||
Host string `json:"host"`
|
Host string `json:"host"`
|
||||||
User string `json:"user"`
|
User string `json:"user"`
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
app.controller('DashboardCtrl', function($scope, CampaignService, ngTableParams, $http) {
|
app.controller('DashboardCtrl', function($scope, $filter, $location, CampaignService, ngTableParams, $http) {
|
||||||
|
$scope.campaigns = []
|
||||||
$scope.mainTableParams = new ngTableParams({
|
$scope.mainTableParams = new ngTableParams({
|
||||||
page: 1, // show first page
|
page: 1, // show first page
|
||||||
count: 10, // count per page
|
count: 10, // count per page
|
||||||
|
@ -11,26 +12,26 @@ app.controller('DashboardCtrl', function($scope, CampaignService, ngTableParams,
|
||||||
CampaignService.query(function(campaigns) {
|
CampaignService.query(function(campaigns) {
|
||||||
$scope.campaigns = campaigns
|
$scope.campaigns = campaigns
|
||||||
var campaign_series = []
|
var campaign_series = []
|
||||||
|
angular.copy(campaigns, campaign_series)
|
||||||
angular.forEach(campaigns, function(campaign, key) {
|
angular.forEach(campaigns, function(campaign, key) {
|
||||||
campaign_series.push({
|
campaign.x = new Date(campaign.created_date)
|
||||||
y: 0
|
campaign.y = 0
|
||||||
})
|
|
||||||
angular.forEach(campaign.results, function(result, r_key) {
|
angular.forEach(campaign.results, function(result, r_key) {
|
||||||
if (result.status == "Clicked Link") {
|
if (result.status == "Clicked Link") {
|
||||||
campaign_series[campaign_series.length - 1].y++;
|
campaign.y++;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
campaign_series[campaign_series.length - 1].y = Math.floor((campaign_series[campaign_series.length - 1].y / campaign.results.length)*100)
|
campaign.y = Math.floor((campaign.y / campaign.results.length) * 100)
|
||||||
console.log(campaign_series)
|
|
||||||
});
|
});
|
||||||
$scope.overview_chart = {
|
$scope.overview_chart = {
|
||||||
options: {
|
options: {
|
||||||
chart: {
|
chart: {
|
||||||
type: 'area'
|
type: 'area',
|
||||||
|
zoomType: "x"
|
||||||
},
|
},
|
||||||
tooltip: {
|
tooltip: {
|
||||||
formatter: function() {
|
formatter: function() {
|
||||||
return "Successful Phishes: " + this.point.y + "%"
|
return "Name: " + this.point.name + "<br/>Successful Phishes: " + this.point.y + "%<br/>Date: " + $filter("date")(this.point.x, "medium")
|
||||||
},
|
},
|
||||||
style: {
|
style: {
|
||||||
padding: 10,
|
padding: 10,
|
||||||
|
@ -38,18 +39,29 @@ app.controller('DashboardCtrl', function($scope, CampaignService, ngTableParams,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
plotOptions: {
|
plotOptions: {
|
||||||
pie: {
|
series: {
|
||||||
allowPointSelect: true,
|
|
||||||
cursor: 'pointer',
|
cursor: 'pointer',
|
||||||
dataLabels: {
|
point: {
|
||||||
enabled: false
|
events: {
|
||||||
|
click: function(e) {
|
||||||
|
console.log(this)
|
||||||
|
$location.path("/campaigns/" + this.id)
|
||||||
|
$scope.$apply()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
showInLegend: true
|
xAxis: {
|
||||||
}
|
type: 'datetime',
|
||||||
|
max: Date.now(),
|
||||||
|
title: {
|
||||||
|
text: 'Date'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
},
|
||||||
series: [{
|
series: [{
|
||||||
data: campaign_series
|
data: $scope.campaigns
|
||||||
}],
|
}],
|
||||||
title: {
|
title: {
|
||||||
text: 'Phishing Success Overview'
|
text: 'Phishing Success Overview'
|
||||||
|
|
Loading…
Reference in New Issue