Commit 049e790d authored by Dominik Rosiek's avatar Dominik Rosiek

Merge branch 'master' of gitlab.telemabk.pl:jifwin/CTF

parents d44e9ca7 3dd5edae
package com.telephoners.krakyournet.ctf.beans;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
public class Flag {
private String value;
......@@ -16,12 +16,12 @@ public class Flag {
this.points = points;
}
// @JsonIgnore //TODO!!
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
public String getValue() {
return value;
}
// @JsonIgnore //TODO!!
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
public void setValue(String value) {
this.value = value;
}
......
......@@ -52,9 +52,11 @@ public class SolutionsRepository extends Repository<Solution>
private boolean isAlreadySubmittedSolution(Solution solution)
{
return !datastore.find(Solution.class)
.filter("flag.value", solution.getFlag().getValue())
.asList()
List<Solution> solutions = datastore.find(Solution.class)
.filter("flag.value", solution.getFlag().getValue()) //todo: do not filter by field
.filter("team.name", solution.getTeam().getName()) //todo: whole object instead
.asList();
return !solutions
.isEmpty();
}
......
......@@ -3,12 +3,14 @@
var calculatePerTeam = function(data) {
var teams = {};
console.log("data", data);
for (var team in data) {
if (data.hasOwnProperty(team)) {
teams[team] = 0;
for (var level in data[team]){
if (data[team].hasOwnProperty(level)){
teams[team] += data[team][level].length;
var score = data[team][level].map(function(o){return o.points;}).reduce(function(a,b){return a+b;});
teams[team] += score;
}
}
}
......@@ -16,12 +18,12 @@
return teams;
};
function viewGraph(){
function viewGraph(maxValue){
$('.column').css('height','0');
// console.log($scope.teamsScores);
setTimeout(function(){
$('.column').each(function(){
$(this).animate({width: 150*$(this).attr('data-score')}, 1500);
$(this).animate({width: (100 * (parseFloat($(this).attr('data-score'))/maxValue)).toString() + '%'}, 1500);
});
}
);
......@@ -32,7 +34,8 @@
// console.log('Data from server', data);
$scope.teamsScores = calculatePerTeam(data);
// console.log('Teams scores', $scope.teamsScores);
viewGraph();
var maxValue = Math.max.apply(null, $.map($scope.teamsScores, function(v,k){return v;}));
viewGraph(maxValue);
});
......
......@@ -16,7 +16,7 @@
if (!$scope.task.completedFlags){
$scope.task.completedFlags = [];
}
$scope.task.completedFlags.push(data.description);
$scope.task.completedFlags.push(data);
$scope.submitUnknown = false;
$flag.val('');
}).error(function(){
......
......@@ -88,7 +88,7 @@
if (!task.completedFlags){
task.completedFlags = [];
}
task.completedFlags.push(data.description);
task.completedFlags.push(data);
}
});
}.bind(this));
......
......@@ -39,7 +39,7 @@
<p ng-if="task.completedFlags && task.completedFlags.length !== 0">
<div ng-repeat="flag in task.completedFlags">
{{ flag }}
{{ flag.description }} ({{ flag.points }} pkt)
</div>
</p>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment