Commit 7b03e802 authored by Antek Grzanka's avatar Antek Grzanka

Merge branch 'antek'

parents 65925b7e 3da031b0
<!DOCTYPE html>
<html lang="en">
<html lang="en" ng-app="ctfApp">
<head>
<meta charset="UTF-8">
<title>CTF</title>
......@@ -9,22 +9,22 @@
<link rel="stylesheet" href="/page/statics/css/main.css">
</head>
<nav>
<nav >
<div class="nav-wrapper container">
<a href="#" class="brand-logo">
<span class="title"></span>
</a>
<ul id="nav-mobile" class="right hide-on-med-and-down">
<li><a href="page#/home">Początek</a></li>
<li><a href="page#/tasks">Zadania</a></li>
<li><a href="page#/scores">Wyniki</a></li>
<li ><a href="page#/tasks">Zadania</a></li>
<li ><a href="page#/scores">Wyniki</a></li>
</ul>
</div>
</nav>
<body>
<div ng-app="ctfApp" class="container">
<div class="container">
<div ui-view></div>
</div>
</body>
......
......@@ -78,3 +78,15 @@ p {
-webkit-font-feature-settings: 'liga';
-webkit-font-smoothing: antialiased;
}
.toast-success {
background-color: green;
color: black;
font-weight: bold;
}
.toast-error {
background-color: red;
color: black;
font-weight: bold;
}
\ No newline at end of file
......@@ -37,22 +37,24 @@
}
});
app.factory('APIProvider', ['$http', 'AppSettings', function($http, AppSettings){
var tasks, teams, scores;
var getTasks = function(callback){
return {
getScores: function(){},
getTasks: function(callback){
$http.get(AppSettings.apiAddress + '/tasks').
success(function(data) {
tasks = data;
if (callback) callback(data);
});
};
var getScores = function(){};
var getTaskById = function(id, callback){
},
getTaskById: function(id, callback){
var result;
if (!tasks) {
getTasks(function(data){
result = getTaskById(id, callback)
});
this.getTasks(function(data){
result = this.getTaskById(id, callback)
}.bind(this));
}
else {
result = tasks.filter(function(task){
......@@ -60,14 +62,14 @@
})[0];
}
callback(result);
};
return {
getScores: getScores,
getTasks: getTasks,
getTaskById: getTaskById
},
submitFlag: function(flag){
return $http.post(AppSettings.apiAddress + '/tasks', flag);
}
};
}]);
app.controller('TasksController', ['$scope', '$http', 'APIProvider', 'AppSettings', function($scope, $http, APIProvider, AppSettings) {
$scope.apiAddress = AppSettings.apiAddress;
APIProvider.getTasks(function(data){
......@@ -76,7 +78,8 @@
});
}]);
app.controller('TaskController', ['$scope', '$http', '$stateParams', 'APIProvider', 'AppSettings', function($scope, $http, $stateParams, APIProvider, AppSettings) {
app.controller('TaskController', ['$scope', '$stateParams', 'APIProvider', 'AppSettings', function($scope, $stateParams, APIProvider, AppSettings) {
$scope.submitUnknown = false;
$scope.apiAddress = AppSettings.apiAddress;
$scope.selectedTaskId = $stateParams.taskLevel;
console.log('SELECTED TASK ID', $scope.selectedTaskId);
......@@ -84,6 +87,19 @@
console.log(data);
$scope.task = data;
});
$scope.submitFlag = function(){
var flag = $('input#flag-to-submit').val();
$scope.submitUnknown = true;
APIProvider.submitFlag(flag).success(function(){
Materialize.toast('Poprawna flaga! :)', 5000, 'toast-success');
$scope.submitUnknown = false;
}).error(function(){
console.log("Flaga zla!");
Materialize.toast('Błędna flaga! :(', 5000 ,'toast-error');
$scope.submitUnknown = false;
});
};
}]);
app.controller('ScoreboardController', ['$scope', '$http', 'AppSettings', function($scope, $http, AppSettings) {
......
<div ng-controller="TaskController">
<div class="row">
<div class="s12">
<div class="col s12">
<a href="/page#/tasks" class="breadcrumb"><i class="fa fa-angle-left" style="margin-right:20px"></i> Powrót</a>
<h1>{{task.name}}</h1>
<h1 class="left-align">{{task.name}}</h1>
</div>
</div>
<div class="row">
<div class="col s12 m8">
<h4><div class="row">
<div class="card blue-grey darken-1">
<div class="card-content white-text">
<span class="card-title">
<div class="row">
<div class="col s1"> <i class="fa fa-question"></i></div>
<div class="col s11">Opis</div>
</div></h4>
</div>
</span>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum
</p>
<h4><div class="row">
</div>
</div>
<div class="card blue-grey darken-1">
<div class="card-content white-text">
<span class="card-title">
<div class="row">
<div class="col s1"> <i class="fa fa-flag"></i></div>
<div class="col s11">Flagi</div>
</div></h4>
</div>
</span>
<p>
Nie dodano żadnych flag.
</p>
<button ng-click="submitFlag()" class="btn waves-effect waves-light" type="submit" name="action" style="float:right" ng-if="!submitUnknown">Submit
<i class="material-icons right">send</i>
</button>
<div class="preloader-wrapper small active" style="float:right" ng-if="submitUnknown">
<div class="spinner-layer spinner-green-only">
<div class="circle-clipper left">
<div class="circle"></div>
</div><div class="gap-patch">
<div class="circle"></div>
</div><div class="circle-clipper right">
<div class="circle"></div>
</div>
</div>
</div>
<div class="input-field" style="overflow:hidden" >
<input placeholder="Wpisz flagę" id="flag-to-submit" type="text" class="validate">
</div>
</div>
</div>
</div>
<div class="col s12 m4" style="text-align:center">
<img src="http://lorempixel.com/400/300/" />
<a class="waves-effect waves-light btn"target="_blank" href="{{apiAddress}}/task/{{task.level}}">Otwórz stronę z zadaniem</a>
<a class="waves-effect waves-light btn" target="_blank" href="{{apiAddress}}/task/{{task.level}}" style="width:100%;margin-top:15px">Otwórz stronę z zadaniem</a>
</div>
</div>
......
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