mirror of
https://github.com/aljazceru/CTFd.git
synced 2025-12-17 14:04:20 +01:00
Call updatesolves on chal update (#376)
* Reorder function calls so that solves are ready to be rendered
This commit is contained in:
@@ -31,7 +31,7 @@ function updateChalWindow(obj) {
|
|||||||
template_data['script_root'] = script_root;
|
template_data['script_root'] = script_root;
|
||||||
var template = Handlebars.compile(template_data);
|
var template = Handlebars.compile(template_data);
|
||||||
var solves = obj.solves == 1 ? " Solve" : " Solves";
|
var solves = obj.solves == 1 ? " Solve" : " Solves";
|
||||||
solves = obj.solves + solves;
|
var solves = obj.solves + solves;
|
||||||
|
|
||||||
var nonce = $('#nonce').val();
|
var nonce = $('#nonce').val();
|
||||||
var wrapper = {
|
var wrapper = {
|
||||||
@@ -168,10 +168,10 @@ function updatesolves(cb){
|
|||||||
var chalids = Object.keys(solves);
|
var chalids = Object.keys(solves);
|
||||||
|
|
||||||
for (var i = 0; i < chalids.length; i++) {
|
for (var i = 0; i < chalids.length; i++) {
|
||||||
var obj = $.grep(challenges['game'], function (e) {
|
for (var i = 0; i < challenges['game'].length; i++) {
|
||||||
return e.id == chalids[i];
|
var obj = challenges['game'][i];
|
||||||
})[0];
|
obj.solves = solves[chalids[i]];
|
||||||
obj.solves = solves[chalids[i]]
|
}
|
||||||
};
|
};
|
||||||
if (cb) {
|
if (cb) {
|
||||||
cb();
|
cb();
|
||||||
@@ -193,11 +193,15 @@ function getsolves(id){
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadchals(refresh) {
|
function loadchals(cb) {
|
||||||
$.get(script_root + "/chals", function (data) {
|
$.get(script_root + "/chals", function (data) {
|
||||||
var categories = [];
|
var categories = [];
|
||||||
challenges = $.parseJSON(JSON.stringify(data));
|
challenges = $.parseJSON(JSON.stringify(data));
|
||||||
|
|
||||||
|
challenges['game'].sort(function(a, b) {
|
||||||
|
return a.id - b.id || a.name.localeCompare(b.name);
|
||||||
|
});
|
||||||
|
|
||||||
$('#challenges-board').html("");
|
$('#challenges-board').html("");
|
||||||
|
|
||||||
for (var i = challenges['game'].length - 1; i >= 0; i--) {
|
for (var i = challenges['game'].length - 1; i >= 0; i--) {
|
||||||
@@ -242,21 +246,15 @@ function loadchals(refresh) {
|
|||||||
$("#"+ catid +"-row").find(".category-challenges > .chal-row").append(chalwrap);
|
$("#"+ catid +"-row").find(".category-challenges > .chal-row").append(chalwrap);
|
||||||
};
|
};
|
||||||
|
|
||||||
var load_location_hash = function () {
|
|
||||||
if (window.location.hash.length > 0) {
|
|
||||||
loadchalbyname(window.location.hash.substring(1));
|
|
||||||
$("#chal-window").modal("show");
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
if (!refresh){
|
|
||||||
updatesolves(load_location_hash);
|
|
||||||
}
|
|
||||||
marksolves();
|
marksolves();
|
||||||
|
|
||||||
$('.challenge-button').click(function (e) {
|
$('.challenge-button').click(function (e) {
|
||||||
loadchal(this.value);
|
loadchal(this.value);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (cb){
|
||||||
|
cb();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -312,12 +310,23 @@ function colorhash (x) {
|
|||||||
return "#" + color.substring(0, 6);
|
return "#" + color.substring(0, 6);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var load_location_hash = function () {
|
||||||
|
if (window.location.hash.length > 0) {
|
||||||
|
loadchalbyname(window.location.hash.substring(1));
|
||||||
|
$("#chal-window").modal("show");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
function update(){
|
function update(){
|
||||||
loadchals(true);
|
loadchals(function(){
|
||||||
|
updatesolves();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
$(function() {
|
$(function() {
|
||||||
loadchals();
|
loadchals(function(){
|
||||||
|
updatesolves(load_location_hash);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
$('.nav-tabs a').click(function (e) {
|
$('.nav-tabs a').click(function (e) {
|
||||||
|
|||||||
Reference in New Issue
Block a user