gophish/static/js/app/gophish.js

70 lines
1.7 KiB
JavaScript

var app = angular.module('gophish', ['ngTable', 'ngResource']);
app.factory('CampaignService', function($resource) {
return $resource('/api/campaigns/:id?api_key=' + API_KEY, {
id: "@id"
}, {
update: {
method: 'PUT'
}
});
});
app.factory('GroupService', function($resource) {
return $resource('/api/groups/:id?api_key=' + API_KEY, {}, {
update: {
method: 'PUT'
}
});
});
app.controller('CampaignCtrl', function($scope, CampaignService) {
CampaignService.query(function(campaigns) {
$scope.campaigns = campaigns
})
});
app.controller('GroupCtrl', function($scope, GroupService) {
GroupService.query(function(groups) {
$scope.groups = groups
})
$scope.editGroup = function(group) {
if (group === 'new') {
$scope.newGroup = true;
$scope.group = {
name: '',
targets: [],
id: 0
};
} else {
$scope.newGroup = false;
$scope.group = group;
}
};
$scope.addTarget = function() {
if ($scope.newTarget.email != "") {
$scope.group.targets.push({
email: $scope.newTarget.email
});
$scope.newTarget.email = ""
}
};
$scope.removeTarget = function(target) {
$scope.group.targets.splice($scope.group.targets.indexOf(target), 1);
};
$scope.saveGroup = function(group) {
var newGroup = new GroupService($scope.group);
if ($scope.newGroup) {
newGroup.$save(function() {
$scope.groups.push(newGroup);
});
}
else {
newGroup.$update()
}
}
})