mirror of
https://github.com/aljazceru/CTFd.git
synced 2025-12-18 06:24:23 +01:00
1245 eslint linting (#1486)
* Adds `yarn lint` to `make lint` * Closes #1245
This commit is contained in:
@@ -13,5 +13,6 @@ module.exports = {
|
||||
"sourceType": "module"
|
||||
},
|
||||
"rules": {
|
||||
"no-unused-vars": ["error", { "argsIgnorePattern": "^_" }]
|
||||
}
|
||||
};
|
||||
@@ -1,5 +1,6 @@
|
||||
import $ from "jquery";
|
||||
import { ezToast } from "core/ezq";
|
||||
import { ezToast, ezQuery } from "core/ezq";
|
||||
import { htmlEntities } from "core/utils";
|
||||
import CTFd from "core/CTFd";
|
||||
import nunjucks from "nunjucks";
|
||||
|
||||
@@ -90,11 +91,11 @@ function renderSubmissionResponse(response, cb) {
|
||||
}
|
||||
|
||||
$(() => {
|
||||
$(".preview-challenge").click(function(event) {
|
||||
$(".preview-challenge").click(function(_event) {
|
||||
window.challenge = new Object();
|
||||
$.get(CTFd.config.urlRoot + "/api/v1/challenges/" + CHALLENGE_ID, function(
|
||||
response
|
||||
) {
|
||||
$.get(
|
||||
CTFd.config.urlRoot + "/api/v1/challenges/" + window.CHALLENGE_ID,
|
||||
function(response) {
|
||||
const challenge_data = response.data;
|
||||
challenge_data["solves"] = null;
|
||||
|
||||
@@ -116,16 +117,13 @@ $(() => {
|
||||
|
||||
$("#challenge-window").append(template.render(challenge_data));
|
||||
|
||||
$(".challenge-solves").click(function(event) {
|
||||
getsolves($("#challenge-id").val());
|
||||
});
|
||||
$(".nav-tabs a").click(function(event) {
|
||||
event.preventDefault();
|
||||
$(this).tab("show");
|
||||
});
|
||||
|
||||
// Handle modal toggling
|
||||
$("#challenge-window").on("hide.bs.modal", function(event) {
|
||||
$("#challenge-window").on("hide.bs.modal", function(_event) {
|
||||
$("#submission-input").removeClass("wrong");
|
||||
$("#submission-input").removeClass("correct");
|
||||
$("#incorrect-key").slideUp();
|
||||
@@ -150,24 +148,6 @@ $(() => {
|
||||
}
|
||||
});
|
||||
|
||||
$(".input-field").bind({
|
||||
focus: function() {
|
||||
$(this)
|
||||
.parent()
|
||||
.addClass("input--filled");
|
||||
$label = $(this).siblings(".input-label");
|
||||
},
|
||||
blur: function() {
|
||||
if ($(this).val() === "") {
|
||||
$(this)
|
||||
.parent()
|
||||
.removeClass("input--filled");
|
||||
$label = $(this).siblings(".input-label");
|
||||
$label.removeClass("input--hide");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
window.challenge.postRender();
|
||||
window.location.replace(
|
||||
window.location.href.split("#")[0] + "#preview"
|
||||
@@ -178,17 +158,18 @@ $(() => {
|
||||
);
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
$(".delete-challenge").click(function(event) {
|
||||
$(".delete-challenge").click(function(_event) {
|
||||
ezQuery({
|
||||
title: "Delete Challenge",
|
||||
body: "Are you sure you want to delete {0}".format(
|
||||
"<strong>" + htmlentities(CHALLENGE_NAME) + "</strong>"
|
||||
"<strong>" + htmlEntities(window.CHALLENGE_NAME) + "</strong>"
|
||||
),
|
||||
success: function() {
|
||||
CTFd.fetch("/api/v1/challenges/" + CHALLENGE_ID, {
|
||||
CTFd.fetch("/api/v1/challenges/" + window.CHALLENGE_ID, {
|
||||
method: "DELETE"
|
||||
}).then(function(response) {
|
||||
if (response.success) {
|
||||
@@ -203,7 +184,7 @@ $(() => {
|
||||
event.preventDefault();
|
||||
const params = $(event.target).serializeJSON(true);
|
||||
|
||||
CTFd.fetch("/api/v1/challenges/" + CHALLENGE_ID, {
|
||||
CTFd.fetch("/api/v1/challenges/" + window.CHALLENGE_ID, {
|
||||
method: "PATCH",
|
||||
credentials: "same-origin",
|
||||
headers: {
|
||||
|
||||
@@ -7,17 +7,17 @@ export function addFile(event) {
|
||||
event.preventDefault();
|
||||
let form = event.target;
|
||||
let data = {
|
||||
challenge: CHALLENGE_ID,
|
||||
challenge: window.CHALLENGE_ID,
|
||||
type: "challenge"
|
||||
};
|
||||
helpers.files.upload(form, data, function(response) {
|
||||
helpers.files.upload(form, data, function(_response) {
|
||||
setTimeout(function() {
|
||||
window.location.reload();
|
||||
}, 700);
|
||||
});
|
||||
}
|
||||
|
||||
export function deleteFile(event) {
|
||||
export function deleteFile(_event) {
|
||||
const file_id = $(this).attr("file-id");
|
||||
const row = $(this)
|
||||
.parent()
|
||||
|
||||
@@ -29,7 +29,7 @@ export function deleteFlag(event) {
|
||||
});
|
||||
}
|
||||
|
||||
export function addFlagModal(event) {
|
||||
export function addFlagModal(_event) {
|
||||
$.get(CTFd.config.urlRoot + "/api/v1/flags/types", function(response) {
|
||||
const data = response.data;
|
||||
const flag_type_select = $("#flags-create-select");
|
||||
@@ -52,7 +52,7 @@ export function addFlagModal(event) {
|
||||
$("#flag-edit-modal form").submit(function(event) {
|
||||
event.preventDefault();
|
||||
const params = $(this).serializeJSON(true);
|
||||
params["challenge"] = CHALLENGE_ID;
|
||||
params["challenge"] = window.CHALLENGE_ID;
|
||||
CTFd.fetch("/api/v1/flags", {
|
||||
method: "POST",
|
||||
credentials: "same-origin",
|
||||
@@ -65,7 +65,7 @@ export function addFlagModal(event) {
|
||||
.then(function(response) {
|
||||
return response.json();
|
||||
})
|
||||
.then(function(response) {
|
||||
.then(function(_response) {
|
||||
window.location.reload();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,37 +1,6 @@
|
||||
import $ from "jquery";
|
||||
import CTFd from "core/CTFd";
|
||||
import { ezQuery, ezAlert } from "core/ezq";
|
||||
|
||||
function hint(id) {
|
||||
return CTFd.fetch("/api/v1/hints/" + id + "?preview=true", {
|
||||
method: "GET",
|
||||
credentials: "same-origin",
|
||||
headers: {
|
||||
Accept: "application/json",
|
||||
"Content-Type": "application/json"
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function loadhint(hintid) {
|
||||
const md = CTFd.lib.markdown();
|
||||
|
||||
hint(hintid).then(function(response) {
|
||||
if (response.data.content) {
|
||||
ezAlert({
|
||||
title: "Hint",
|
||||
body: md.render(response.data.content),
|
||||
button: "Got it!"
|
||||
});
|
||||
} else {
|
||||
ezAlert({
|
||||
title: "Error",
|
||||
body: "Error loading hint!",
|
||||
button: "OK"
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
import { ezQuery } from "core/ezq";
|
||||
|
||||
export function showHintModal(event) {
|
||||
event.preventDefault();
|
||||
@@ -116,7 +85,7 @@ export function deleteHint(event) {
|
||||
export function editHint(event) {
|
||||
event.preventDefault();
|
||||
const params = $(this).serializeJSON(true);
|
||||
params["challenge"] = CHALLENGE_ID;
|
||||
params["challenge"] = window.CHALLENGE_ID;
|
||||
|
||||
let method = "POST";
|
||||
let url = "/api/v1/hints";
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import CTFd from "core/CTFd";
|
||||
import nunjucks from "nunjucks";
|
||||
import $ from "jquery";
|
||||
|
||||
window.challenge = new Object();
|
||||
@@ -63,7 +64,7 @@ $.get(CTFd.config.urlRoot + "/api/v1/challenges/types", function(response) {
|
||||
}
|
||||
});
|
||||
|
||||
function createChallenge(event) {
|
||||
function createChallenge(_event) {
|
||||
const challenge = $(this)
|
||||
.find("option:selected")
|
||||
.data("meta");
|
||||
|
||||
@@ -10,15 +10,15 @@ export function addRequirement(event) {
|
||||
return;
|
||||
}
|
||||
|
||||
CHALLENGE_REQUIREMENTS.prerequisites.push(
|
||||
window.CHALLENGE_REQUIREMENTS.prerequisites.push(
|
||||
parseInt(requirements["prerequisite"])
|
||||
);
|
||||
|
||||
const params = {
|
||||
requirements: CHALLENGE_REQUIREMENTS
|
||||
requirements: window.CHALLENGE_REQUIREMENTS
|
||||
};
|
||||
|
||||
CTFd.fetch("/api/v1/challenges/" + CHALLENGE_ID, {
|
||||
CTFd.fetch("/api/v1/challenges/" + window.CHALLENGE_ID, {
|
||||
method: "PATCH",
|
||||
credentials: "same-origin",
|
||||
headers: {
|
||||
@@ -38,18 +38,18 @@ export function addRequirement(event) {
|
||||
});
|
||||
}
|
||||
|
||||
export function deleteRequirement(event) {
|
||||
export function deleteRequirement(_event) {
|
||||
const challenge_id = $(this).attr("challenge-id");
|
||||
const row = $(this)
|
||||
.parent()
|
||||
.parent();
|
||||
|
||||
CHALLENGE_REQUIREMENTS.prerequisites.pop(challenge_id);
|
||||
window.CHALLENGE_REQUIREMENTS.prerequisites.pop(challenge_id);
|
||||
|
||||
const params = {
|
||||
requirements: CHALLENGE_REQUIREMENTS
|
||||
requirements: window.CHALLENGE_REQUIREMENTS
|
||||
};
|
||||
CTFd.fetch("/api/v1/challenges/" + CHALLENGE_ID, {
|
||||
CTFd.fetch("/api/v1/challenges/" + window.CHALLENGE_ID, {
|
||||
method: "PATCH",
|
||||
credentials: "same-origin",
|
||||
headers: {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import $ from "jquery";
|
||||
import CTFd from "core/CTFd";
|
||||
|
||||
export function deleteTag(event) {
|
||||
export function deleteTag(_event) {
|
||||
const $elem = $(this);
|
||||
const tag_id = $elem.attr("tag-id");
|
||||
|
||||
@@ -22,7 +22,7 @@ export function addTag(event) {
|
||||
const tag = $elem.val();
|
||||
const params = {
|
||||
value: tag,
|
||||
challenge: CHALLENGE_ID
|
||||
challenge: window.CHALLENGE_ID
|
||||
};
|
||||
|
||||
CTFd.api.post_tag_list({}, params).then(response => {
|
||||
|
||||
@@ -5,7 +5,6 @@ import "bootstrap/js/dist/tab";
|
||||
import CTFd from "core/CTFd";
|
||||
import { htmlEntities } from "core/utils";
|
||||
import { ezQuery, ezAlert, ezToast } from "core/ezq";
|
||||
import nunjucks from "nunjucks";
|
||||
import { default as helpers } from "core/helpers";
|
||||
import { addFile, deleteFile } from "../challenges/files";
|
||||
import { addTag, deleteTag } from "../challenges/tags";
|
||||
@@ -39,7 +38,7 @@ const loadHint = id => {
|
||||
displayHint(response.data);
|
||||
return;
|
||||
}
|
||||
displayUnlock(id);
|
||||
// displayUnlock(id);
|
||||
});
|
||||
};
|
||||
|
||||
@@ -201,7 +200,7 @@ function handleChallengeOptions(event) {
|
||||
|
||||
Promise.all([
|
||||
// Save flag
|
||||
new Promise(function(resolve, reject) {
|
||||
new Promise(function(resolve, _reject) {
|
||||
if (flag_params.content.length == 0) {
|
||||
resolve();
|
||||
return;
|
||||
@@ -219,7 +218,7 @@ function handleChallengeOptions(event) {
|
||||
});
|
||||
}),
|
||||
// Upload files
|
||||
new Promise(function(resolve, reject) {
|
||||
new Promise(function(resolve, _reject) {
|
||||
let form = event.target;
|
||||
let data = {
|
||||
challenge: params.challenge_id,
|
||||
@@ -231,12 +230,12 @@ function handleChallengeOptions(event) {
|
||||
}
|
||||
resolve();
|
||||
})
|
||||
]).then(responses => {
|
||||
]).then(_responses => {
|
||||
save_challenge();
|
||||
});
|
||||
}
|
||||
|
||||
function createChallenge(event) {
|
||||
function createChallenge(_event) {
|
||||
const challenge = $(this)
|
||||
.find("option:selected")
|
||||
.data("meta");
|
||||
@@ -248,12 +247,12 @@ function createChallenge(event) {
|
||||
}
|
||||
|
||||
$(() => {
|
||||
$(".preview-challenge").click(function(e) {
|
||||
$(".preview-challenge").click(function(_e) {
|
||||
window.challenge = new Object();
|
||||
CTFd._internal.challenge = {};
|
||||
$.get(CTFd.config.urlRoot + "/api/v1/challenges/" + CHALLENGE_ID, function(
|
||||
response
|
||||
) {
|
||||
$.get(
|
||||
CTFd.config.urlRoot + "/api/v1/challenges/" + window.CHALLENGE_ID,
|
||||
function(response) {
|
||||
const challenge = CTFd._internal.challenge;
|
||||
var challenge_data = response.data;
|
||||
challenge_data["solves"] = null;
|
||||
@@ -277,7 +276,7 @@ $(() => {
|
||||
});
|
||||
|
||||
// Handle modal toggling
|
||||
$("#challenge-window").on("hide.bs.modal", function(event) {
|
||||
$("#challenge-window").on("hide.bs.modal", function(_event) {
|
||||
$("#challenge-input").removeClass("wrong");
|
||||
$("#challenge-input").removeClass("correct");
|
||||
$("#incorrect-key").slideUp();
|
||||
@@ -286,7 +285,7 @@ $(() => {
|
||||
$("#too-fast").slideUp();
|
||||
});
|
||||
|
||||
$(".load-hint").on("click", function(event) {
|
||||
$(".load-hint").on("click", function(_event) {
|
||||
loadHint($(this).data("hint-id"));
|
||||
});
|
||||
|
||||
@@ -314,17 +313,18 @@ $(() => {
|
||||
$("#challenge-window").modal();
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
$(".delete-challenge").click(function(e) {
|
||||
$(".delete-challenge").click(function(_e) {
|
||||
ezQuery({
|
||||
title: "Delete Challenge",
|
||||
body: "Are you sure you want to delete {0}".format(
|
||||
"<strong>" + htmlEntities(CHALLENGE_NAME) + "</strong>"
|
||||
"<strong>" + htmlEntities(window.CHALLENGE_NAME) + "</strong>"
|
||||
),
|
||||
success: function() {
|
||||
CTFd.fetch("/api/v1/challenges/" + CHALLENGE_ID, {
|
||||
CTFd.fetch("/api/v1/challenges/" + window.CHALLENGE_ID, {
|
||||
method: "DELETE"
|
||||
})
|
||||
.then(function(response) {
|
||||
@@ -343,7 +343,7 @@ $(() => {
|
||||
e.preventDefault();
|
||||
var params = $(e.target).serializeJSON(true);
|
||||
|
||||
CTFd.fetch("/api/v1/challenges/" + CHALLENGE_ID + "/flags", {
|
||||
CTFd.fetch("/api/v1/challenges/" + window.CHALLENGE_ID + "/flags", {
|
||||
method: "GET",
|
||||
credentials: "same-origin",
|
||||
headers: {
|
||||
@@ -356,7 +356,7 @@ $(() => {
|
||||
})
|
||||
.then(function(response) {
|
||||
let update_challenge = function() {
|
||||
CTFd.fetch("/api/v1/challenges/" + CHALLENGE_ID, {
|
||||
CTFd.fetch("/api/v1/challenges/" + window.CHALLENGE_ID, {
|
||||
method: "PATCH",
|
||||
credentials: "same-origin",
|
||||
headers: {
|
||||
|
||||
@@ -3,7 +3,7 @@ import CTFd from "core/CTFd";
|
||||
import $ from "jquery";
|
||||
import { ezAlert, ezQuery } from "core/ezq";
|
||||
|
||||
function deleteSelectedChallenges(event) {
|
||||
function deleteSelectedChallenges(_event) {
|
||||
let challengeIDs = $("input[data-challenge-id]:checked").map(function() {
|
||||
return $(this).data("challenge-id");
|
||||
});
|
||||
@@ -21,14 +21,14 @@ function deleteSelectedChallenges(event) {
|
||||
})
|
||||
);
|
||||
}
|
||||
Promise.all(reqs).then(responses => {
|
||||
Promise.all(reqs).then(_responses => {
|
||||
window.location.reload();
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function bulkEditChallenges(event) {
|
||||
function bulkEditChallenges(_event) {
|
||||
let challengeIDs = $("input[data-challenge-id]:checked").map(function() {
|
||||
return $(this).data("challenge-id");
|
||||
});
|
||||
@@ -67,7 +67,7 @@ function bulkEditChallenges(event) {
|
||||
})
|
||||
);
|
||||
}
|
||||
Promise.all(reqs).then(responses => {
|
||||
Promise.all(reqs).then(_responses => {
|
||||
window.location.reload();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ import moment from "moment-timezone";
|
||||
import CTFd from "core/CTFd";
|
||||
import { default as helpers } from "core/helpers";
|
||||
import $ from "jquery";
|
||||
import { ezQuery, ezProgressBar } from "core/ezq";
|
||||
import { ezQuery, ezProgressBar, ezAlert } from "core/ezq";
|
||||
import CodeMirror from "codemirror";
|
||||
import "codemirror/mode/htmlmixed/htmlmixed.js";
|
||||
|
||||
@@ -110,7 +110,7 @@ function updateConfigs(event) {
|
||||
}
|
||||
});
|
||||
|
||||
CTFd.api.patch_config_list({}, params).then(response => {
|
||||
CTFd.api.patch_config_list({}, params).then(_response => {
|
||||
window.location.reload();
|
||||
});
|
||||
}
|
||||
@@ -154,7 +154,7 @@ function removeLogo() {
|
||||
};
|
||||
CTFd.api
|
||||
.patch_config({ configKey: "ctf_logo" }, params)
|
||||
.then(response => {
|
||||
.then(_response => {
|
||||
window.location.reload();
|
||||
});
|
||||
}
|
||||
@@ -182,7 +182,6 @@ function importConfig(event) {
|
||||
contentType: false,
|
||||
statusCode: {
|
||||
500: function(resp) {
|
||||
console.log(resp.responseText);
|
||||
alert(resp.responseText);
|
||||
}
|
||||
},
|
||||
@@ -199,7 +198,7 @@ function importConfig(event) {
|
||||
};
|
||||
return xhr;
|
||||
},
|
||||
success: function(data) {
|
||||
success: function(_data) {
|
||||
pg = ezProgressBar({
|
||||
target: pg,
|
||||
width: 100
|
||||
@@ -216,7 +215,6 @@ function importConfig(event) {
|
||||
|
||||
function exportConfig(event) {
|
||||
event.preventDefault();
|
||||
const href = CTFd.config.urlRoot + "/admin/export";
|
||||
window.location.href = $(this).attr("href");
|
||||
}
|
||||
|
||||
@@ -262,7 +260,7 @@ $(() => {
|
||||
|
||||
// Handle refreshing codemirror when switching tabs.
|
||||
// Better than the autorefresh approach b/c there's no flicker
|
||||
$("a[href='#theme']").on("shown.bs.tab", function(e) {
|
||||
$("a[href='#theme']").on("shown.bs.tab", function(_e) {
|
||||
theme_header_editor.refresh();
|
||||
theme_footer_editor.refresh();
|
||||
theme_settings_editor.refresh();
|
||||
|
||||
@@ -93,7 +93,7 @@ function show_files(data) {
|
||||
.text(fname)
|
||||
);
|
||||
|
||||
link.click(function(e) {
|
||||
link.click(function(_e) {
|
||||
var media_div = $(this).parent();
|
||||
var icon = $(this).find("i")[0];
|
||||
var f_loc = media_div.attr("data-location");
|
||||
@@ -190,14 +190,14 @@ function submit_form() {
|
||||
}
|
||||
|
||||
function preview_page() {
|
||||
editor.save(); // Save the CodeMirror data to the Textarea
|
||||
window.editor.save(); // Save the CodeMirror data to the Textarea
|
||||
$("#page-edit").attr("action", CTFd.config.urlRoot + "/admin/pages/preview");
|
||||
$("#page-edit").attr("target", "_blank");
|
||||
$("#page-edit").submit();
|
||||
}
|
||||
|
||||
function upload_media() {
|
||||
helpers.files.upload($("#media-library-upload"), {}, function(data) {
|
||||
helpers.files.upload($("#media-library-upload"), {}, function(_data) {
|
||||
refresh_files();
|
||||
});
|
||||
}
|
||||
@@ -213,7 +213,7 @@ $(() => {
|
||||
}
|
||||
);
|
||||
|
||||
$("#media-insert").click(function(e) {
|
||||
$("#media-insert").click(function(_e) {
|
||||
var tag = "";
|
||||
try {
|
||||
tag = $("#media-icon")
|
||||
@@ -230,15 +230,15 @@ $(() => {
|
||||
} else {
|
||||
entry = "[{0}]({1})".format(fname, link);
|
||||
}
|
||||
insert_at_cursor(editor, entry);
|
||||
insert_at_cursor(window.editor, entry);
|
||||
});
|
||||
|
||||
$("#media-download").click(function(e) {
|
||||
$("#media-download").click(function(_e) {
|
||||
var link = $("#media-link").val();
|
||||
window.open(link, "_blank");
|
||||
});
|
||||
|
||||
$("#media-delete").click(function(e) {
|
||||
$("#media-delete").click(function(_e) {
|
||||
var file_id = $(this).attr("data-id");
|
||||
ezQuery({
|
||||
title: "Delete File?",
|
||||
|
||||
@@ -3,7 +3,7 @@ import CTFd from "core/CTFd";
|
||||
import $ from "jquery";
|
||||
import { ezQuery } from "core/ezq";
|
||||
|
||||
function deleteSelectedUsers(event) {
|
||||
function deleteSelectedUsers(_event) {
|
||||
let pageIDs = $("input[data-page-id]:checked").map(function() {
|
||||
return $(this).data("page-id");
|
||||
});
|
||||
@@ -21,7 +21,7 @@ function deleteSelectedUsers(event) {
|
||||
})
|
||||
);
|
||||
}
|
||||
Promise.all(reqs).then(responses => {
|
||||
Promise.all(reqs).then(_responses => {
|
||||
window.location.reload();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import "./main";
|
||||
import CTFd from "core/CTFd";
|
||||
import $ from "jquery";
|
||||
import { ezAlert, ezQuery } from "core/ezq";
|
||||
import { ezAlert } from "core/ezq";
|
||||
|
||||
const api_func = {
|
||||
users: (x, y) => CTFd.api.patch_user_public({ userId: x }, y),
|
||||
@@ -46,12 +46,12 @@ function toggleSelectedAccounts(accountIDs, action) {
|
||||
for (var accId of accountIDs) {
|
||||
reqs.push(api_func[CTFd.config.userMode](accId, params));
|
||||
}
|
||||
Promise.all(reqs).then(responses => {
|
||||
Promise.all(reqs).then(_responses => {
|
||||
window.location.reload();
|
||||
});
|
||||
}
|
||||
|
||||
function bulkToggleAccounts(event) {
|
||||
function bulkToggleAccounts(_event) {
|
||||
let accountIDs = $("input[data-account-id]:checked").map(function() {
|
||||
return $(this).data("account-id");
|
||||
});
|
||||
|
||||
@@ -3,6 +3,7 @@ import "core/utils";
|
||||
import CTFd from "core/CTFd";
|
||||
import $ from "jquery";
|
||||
import Plotly from "plotly.js-basic-dist";
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
import { createGraph, updateGraph } from "core/graphs";
|
||||
|
||||
const graph_configs = {
|
||||
|
||||
@@ -4,7 +4,7 @@ import $ from "jquery";
|
||||
import { htmlEntities } from "core/utils";
|
||||
import { ezQuery } from "core/ezq";
|
||||
|
||||
function deleteCorrectSubmission(event) {
|
||||
function deleteCorrectSubmission(_event) {
|
||||
const key_id = $(this).data("submission-id");
|
||||
const $elem = $(this)
|
||||
.parent()
|
||||
@@ -40,7 +40,7 @@ function deleteCorrectSubmission(event) {
|
||||
});
|
||||
}
|
||||
|
||||
function deleteSelectedSubmissions(event) {
|
||||
function deleteSelectedSubmissions(_event) {
|
||||
let submissionIDs = $("input[data-submission-id]:checked").map(function() {
|
||||
return $(this).data("submission-id");
|
||||
});
|
||||
@@ -54,7 +54,7 @@ function deleteSelectedSubmissions(event) {
|
||||
for (var subId of submissionIDs) {
|
||||
reqs.push(CTFd.api.delete_submission({ submissionId: subId }));
|
||||
}
|
||||
Promise.all(reqs).then(responses => {
|
||||
Promise.all(reqs).then(_responses => {
|
||||
window.location.reload();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ function createTeam(event) {
|
||||
window.location = CTFd.config.urlRoot + "/admin/teams/" + team_id;
|
||||
} else {
|
||||
$("#team-info-form > #results").empty();
|
||||
Object.keys(response.errors).forEach(function(key, index) {
|
||||
Object.keys(response.errors).forEach(function(key, _index) {
|
||||
$("#team-info-form > #results").append(
|
||||
ezBadge({
|
||||
type: "error",
|
||||
@@ -47,7 +47,7 @@ function updateTeam(event) {
|
||||
event.preventDefault();
|
||||
const params = $("#team-info-edit-form").serializeJSON(true);
|
||||
|
||||
CTFd.fetch("/api/v1/teams/" + TEAM_ID, {
|
||||
CTFd.fetch("/api/v1/teams/" + window.TEAM_ID, {
|
||||
method: "PATCH",
|
||||
credentials: "same-origin",
|
||||
headers: {
|
||||
@@ -64,7 +64,7 @@ function updateTeam(event) {
|
||||
window.location.reload();
|
||||
} else {
|
||||
$("#team-info-form > #results").empty();
|
||||
Object.keys(response.errors).forEach(function(key, index) {
|
||||
Object.keys(response.errors).forEach(function(key, _index) {
|
||||
$("#team-info-form > #results").append(
|
||||
ezBadge({
|
||||
type: "error",
|
||||
@@ -114,14 +114,14 @@ function deleteSelectedSubmissions(event, target) {
|
||||
for (var subId of submissionIDs) {
|
||||
reqs.push(CTFd.api.delete_submission({ submissionId: subId }));
|
||||
}
|
||||
Promise.all(reqs).then(responses => {
|
||||
Promise.all(reqs).then(_responses => {
|
||||
window.location.reload();
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function deleteSelectedAwards(event) {
|
||||
function deleteSelectedAwards(_event) {
|
||||
let awardIDs = $("input[data-award-id]:checked").map(function() {
|
||||
return $(this).data("award-id");
|
||||
});
|
||||
@@ -143,7 +143,7 @@ function deleteSelectedAwards(event) {
|
||||
});
|
||||
reqs.push(req);
|
||||
}
|
||||
Promise.all(reqs).then(responses => {
|
||||
Promise.all(reqs).then(_responses => {
|
||||
window.location.reload();
|
||||
});
|
||||
}
|
||||
@@ -163,12 +163,12 @@ function solveSelectedMissingChallenges(event) {
|
||||
title: `Mark Correct`,
|
||||
body: `Are you sure you want to mark ${
|
||||
challengeIDs.length
|
||||
} challenges correct for ${htmlEntities(TEAM_NAME)}?`,
|
||||
} ${target} correct for ${htmlEntities(window.TEAM_NAME)}?`,
|
||||
success: function() {
|
||||
ezAlert({
|
||||
title: `User Attribution`,
|
||||
body: `
|
||||
Which user on ${htmlEntities(TEAM_NAME)} solved these challenges?
|
||||
Which user on ${htmlEntities(window.TEAM_NAME)} solved these challenges?
|
||||
<div class="pb-3" id="query-team-member-solve">
|
||||
${$("#team-member-select").html()}
|
||||
</div>
|
||||
@@ -181,7 +181,7 @@ function solveSelectedMissingChallenges(event) {
|
||||
let params = {
|
||||
provided: "MARKED AS SOLVED BY ADMIN",
|
||||
user_id: USER_ID,
|
||||
team_id: TEAM_ID,
|
||||
team_id: window.TEAM_ID,
|
||||
challenge_id: challengeID,
|
||||
type: "correct"
|
||||
};
|
||||
@@ -197,7 +197,7 @@ function solveSelectedMissingChallenges(event) {
|
||||
});
|
||||
reqs.push(req);
|
||||
}
|
||||
Promise.all(reqs).then(responses => {
|
||||
Promise.all(reqs).then(_responses => {
|
||||
window.location.reload();
|
||||
});
|
||||
}
|
||||
@@ -300,7 +300,7 @@ $(() => {
|
||||
e.preventDefault();
|
||||
const params = $("#team-captain-form").serializeJSON(true);
|
||||
|
||||
CTFd.fetch("/api/v1/teams/" + TEAM_ID, {
|
||||
CTFd.fetch("/api/v1/teams/" + window.TEAM_ID, {
|
||||
method: "PATCH",
|
||||
credentials: "same-origin",
|
||||
headers: {
|
||||
@@ -317,7 +317,7 @@ $(() => {
|
||||
window.location.reload();
|
||||
} else {
|
||||
$("#team-captain-form > #results").empty();
|
||||
Object.keys(response.errors).forEach(function(key, index) {
|
||||
Object.keys(response.errors).forEach(function(key, _index) {
|
||||
$("#team-captain-form > #results").append(
|
||||
ezBadge({
|
||||
type: "error",
|
||||
@@ -335,19 +335,19 @@ $(() => {
|
||||
});
|
||||
});
|
||||
|
||||
$(".edit-team").click(function(e) {
|
||||
$(".edit-team").click(function(_e) {
|
||||
$("#team-info-edit-modal").modal("toggle");
|
||||
});
|
||||
|
||||
$(".edit-captain").click(function(e) {
|
||||
$(".edit-captain").click(function(_e) {
|
||||
$("#team-captain-modal").modal("toggle");
|
||||
});
|
||||
|
||||
$(".award-team").click(function(e) {
|
||||
$(".award-team").click(function(_e) {
|
||||
$("#team-award-modal").modal("toggle");
|
||||
});
|
||||
|
||||
$(".addresses-team").click(function(event) {
|
||||
$(".addresses-team").click(function(_event) {
|
||||
$("#team-addresses-modal").modal("toggle");
|
||||
});
|
||||
|
||||
@@ -355,7 +355,7 @@ $(() => {
|
||||
e.preventDefault();
|
||||
const params = $("#user-award-form").serializeJSON(true);
|
||||
params["user_id"] = $("#award-member-input").val();
|
||||
params["team_id"] = TEAM_ID;
|
||||
params["team_id"] = window.TEAM_ID;
|
||||
|
||||
$("#user-award-form > #results").empty();
|
||||
|
||||
@@ -387,7 +387,7 @@ $(() => {
|
||||
window.location.reload();
|
||||
} else {
|
||||
$("#user-award-form > #results").empty();
|
||||
Object.keys(response.errors).forEach(function(key, index) {
|
||||
Object.keys(response.errors).forEach(function(key, _index) {
|
||||
$("#user-award-form > #results").append(
|
||||
ezBadge({
|
||||
type: "error",
|
||||
@@ -420,10 +420,10 @@ $(() => {
|
||||
title: "Remove Member",
|
||||
body: "Are you sure you want to remove {0} from {1}? <br><br><strong>All of their challenges solves, attempts, awards, and unlocked hints will also be deleted!</strong>".format(
|
||||
"<strong>" + htmlEntities(member_name) + "</strong>",
|
||||
"<strong>" + htmlEntities(TEAM_NAME) + "</strong>"
|
||||
"<strong>" + htmlEntities(window.TEAM_NAME) + "</strong>"
|
||||
),
|
||||
success: function() {
|
||||
CTFd.fetch("/api/v1/teams/" + TEAM_ID + "/members", {
|
||||
CTFd.fetch("/api/v1/teams/" + window.TEAM_ID + "/members", {
|
||||
method: "DELETE",
|
||||
body: JSON.stringify(params)
|
||||
})
|
||||
@@ -439,14 +439,14 @@ $(() => {
|
||||
});
|
||||
});
|
||||
|
||||
$(".delete-team").click(function(e) {
|
||||
$(".delete-team").click(function(_e) {
|
||||
ezQuery({
|
||||
title: "Delete Team",
|
||||
body: "Are you sure you want to delete {0}".format(
|
||||
"<strong>" + htmlEntities(TEAM_NAME) + "</strong>"
|
||||
"<strong>" + htmlEntities(window.TEAM_NAME) + "</strong>"
|
||||
),
|
||||
success: function() {
|
||||
CTFd.fetch("/api/v1/teams/" + TEAM_ID, {
|
||||
CTFd.fetch("/api/v1/teams/" + window.TEAM_ID, {
|
||||
method: "DELETE"
|
||||
})
|
||||
.then(function(response) {
|
||||
|
||||
@@ -3,7 +3,7 @@ import CTFd from "core/CTFd";
|
||||
import $ from "jquery";
|
||||
import { ezAlert, ezQuery } from "core/ezq";
|
||||
|
||||
function deleteSelectedTeams(event) {
|
||||
function deleteSelectedTeams(_event) {
|
||||
let teamIDs = $("input[data-team-id]:checked").map(function() {
|
||||
return $(this).data("team-id");
|
||||
});
|
||||
@@ -21,14 +21,14 @@ function deleteSelectedTeams(event) {
|
||||
})
|
||||
);
|
||||
}
|
||||
Promise.all(reqs).then(responses => {
|
||||
Promise.all(reqs).then(_responses => {
|
||||
window.location.reload();
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function bulkEditTeams(event) {
|
||||
function bulkEditTeams(_event) {
|
||||
let teamIDs = $("input[data-team-id]:checked").map(function() {
|
||||
return $(this).data("team-id");
|
||||
});
|
||||
@@ -67,7 +67,7 @@ function bulkEditTeams(event) {
|
||||
})
|
||||
);
|
||||
}
|
||||
Promise.all(reqs).then(responses => {
|
||||
Promise.all(reqs).then(_responses => {
|
||||
window.location.reload();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ function createUser(event) {
|
||||
window.location = CTFd.config.urlRoot + "/admin/users/" + user_id;
|
||||
} else {
|
||||
$("#user-info-create-form > #results").empty();
|
||||
Object.keys(response.errors).forEach(function(key, index) {
|
||||
Object.keys(response.errors).forEach(function(key, _index) {
|
||||
$("#user-info-create-form > #results").append(
|
||||
ezBadge({
|
||||
type: "error",
|
||||
@@ -55,7 +55,7 @@ function updateUser(event) {
|
||||
event.preventDefault();
|
||||
const params = $("#user-info-edit-form").serializeJSON(true);
|
||||
|
||||
CTFd.fetch("/api/v1/users/" + USER_ID, {
|
||||
CTFd.fetch("/api/v1/users/" + window.USER_ID, {
|
||||
method: "PATCH",
|
||||
credentials: "same-origin",
|
||||
headers: {
|
||||
@@ -72,7 +72,7 @@ function updateUser(event) {
|
||||
window.location.reload();
|
||||
} else {
|
||||
$("#user-info-edit-form > #results").empty();
|
||||
Object.keys(response.errors).forEach(function(key, index) {
|
||||
Object.keys(response.errors).forEach(function(key, _index) {
|
||||
$("#user-info-edit-form > #results").append(
|
||||
ezBadge({
|
||||
type: "error",
|
||||
@@ -95,10 +95,10 @@ function deleteUser(event) {
|
||||
ezQuery({
|
||||
title: "Delete User",
|
||||
body: "Are you sure you want to delete {0}".format(
|
||||
"<strong>" + htmlEntities(USER_NAME) + "</strong>"
|
||||
"<strong>" + htmlEntities(window.USER_NAME) + "</strong>"
|
||||
),
|
||||
success: function() {
|
||||
CTFd.fetch("/api/v1/users/" + USER_ID, {
|
||||
CTFd.fetch("/api/v1/users/" + window.USER_ID, {
|
||||
method: "DELETE"
|
||||
})
|
||||
.then(function(response) {
|
||||
@@ -116,7 +116,7 @@ function deleteUser(event) {
|
||||
function awardUser(event) {
|
||||
event.preventDefault();
|
||||
const params = $("#user-award-form").serializeJSON(true);
|
||||
params["user_id"] = USER_ID;
|
||||
params["user_id"] = window.USER_ID;
|
||||
|
||||
CTFd.fetch("/api/v1/awards", {
|
||||
method: "POST",
|
||||
@@ -135,7 +135,7 @@ function awardUser(event) {
|
||||
window.location.reload();
|
||||
} else {
|
||||
$("#user-award-form > #results").empty();
|
||||
Object.keys(response.errors).forEach(function(key, index) {
|
||||
Object.keys(response.errors).forEach(function(key, _index) {
|
||||
$("#user-award-form > #results").append(
|
||||
ezBadge({
|
||||
type: "error",
|
||||
@@ -154,7 +154,7 @@ function awardUser(event) {
|
||||
function emailUser(event) {
|
||||
event.preventDefault();
|
||||
var params = $("#user-mail-form").serializeJSON(true);
|
||||
CTFd.fetch("/api/v1/users/" + USER_ID + "/email", {
|
||||
CTFd.fetch("/api/v1/users/" + window.USER_ID + "/email", {
|
||||
method: "POST",
|
||||
credentials: "same-origin",
|
||||
headers: {
|
||||
@@ -179,7 +179,7 @@ function emailUser(event) {
|
||||
.val("");
|
||||
} else {
|
||||
$("#user-mail-form > #results").empty();
|
||||
Object.keys(response.errors).forEach(function(key, index) {
|
||||
Object.keys(response.errors).forEach(function(key, _index) {
|
||||
$("#user-mail-form > #results").append(
|
||||
ezBadge({
|
||||
type: "error",
|
||||
@@ -231,14 +231,14 @@ function deleteSelectedSubmissions(event, target) {
|
||||
for (var subId of submissionIDs) {
|
||||
reqs.push(CTFd.api.delete_submission({ submissionId: subId }));
|
||||
}
|
||||
Promise.all(reqs).then(responses => {
|
||||
Promise.all(reqs).then(_responses => {
|
||||
window.location.reload();
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function deleteSelectedAwards(event) {
|
||||
function deleteSelectedAwards(_event) {
|
||||
let awardIDs = $("input[data-award-id]:checked").map(function() {
|
||||
return $(this).data("award-id");
|
||||
});
|
||||
@@ -260,7 +260,7 @@ function deleteSelectedAwards(event) {
|
||||
});
|
||||
reqs.push(req);
|
||||
}
|
||||
Promise.all(reqs).then(responses => {
|
||||
Promise.all(reqs).then(_responses => {
|
||||
window.location.reload();
|
||||
});
|
||||
}
|
||||
@@ -280,14 +280,14 @@ function solveSelectedMissingChallenges(event) {
|
||||
title: `Mark Correct`,
|
||||
body: `Are you sure you want to mark ${
|
||||
challengeIDs.length
|
||||
} correct for ${htmlEntities(USER_NAME)}?`,
|
||||
} ${target} correct for ${htmlEntities(window.USER_NAME)}?`,
|
||||
success: function() {
|
||||
const reqs = [];
|
||||
for (var challengeID of challengeIDs) {
|
||||
let params = {
|
||||
provided: "MARKED AS SOLVED BY ADMIN",
|
||||
user_id: USER_ID,
|
||||
team_id: TEAM_ID,
|
||||
user_id: window.USER_ID,
|
||||
team_id: window.TEAM_ID,
|
||||
challenge_id: challengeID,
|
||||
type: "correct"
|
||||
};
|
||||
@@ -303,7 +303,7 @@ function solveSelectedMissingChallenges(event) {
|
||||
});
|
||||
reqs.push(req);
|
||||
}
|
||||
Promise.all(reqs).then(responses => {
|
||||
Promise.all(reqs).then(_responses => {
|
||||
window.location.reload();
|
||||
});
|
||||
}
|
||||
@@ -402,19 +402,19 @@ const updateGraphs = (type, id, name, account_id) => {
|
||||
$(() => {
|
||||
$(".delete-user").click(deleteUser);
|
||||
|
||||
$(".edit-user").click(function(event) {
|
||||
$(".edit-user").click(function(_event) {
|
||||
$("#user-info-modal").modal("toggle");
|
||||
});
|
||||
|
||||
$(".award-user").click(function(event) {
|
||||
$(".award-user").click(function(_event) {
|
||||
$("#user-award-modal").modal("toggle");
|
||||
});
|
||||
|
||||
$(".email-user").click(function(event) {
|
||||
$(".email-user").click(function(_event) {
|
||||
$("#user-email-modal").modal("toggle");
|
||||
});
|
||||
|
||||
$(".addresses-user").click(function(event) {
|
||||
$(".addresses-user").click(function(_event) {
|
||||
$("#user-addresses-modal").modal("toggle");
|
||||
});
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ import CTFd from "core/CTFd";
|
||||
import $ from "jquery";
|
||||
import { ezAlert, ezQuery } from "core/ezq";
|
||||
|
||||
function deleteSelectedUsers(event) {
|
||||
function deleteSelectedUsers(_event) {
|
||||
let userIDs = $("input[data-user-id]:checked").map(function() {
|
||||
return $(this).data("user-id");
|
||||
});
|
||||
@@ -21,14 +21,14 @@ function deleteSelectedUsers(event) {
|
||||
})
|
||||
);
|
||||
}
|
||||
Promise.all(reqs).then(responses => {
|
||||
Promise.all(reqs).then(_responses => {
|
||||
window.location.reload();
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function bulkEditUsers(event) {
|
||||
function bulkEditUsers(_event) {
|
||||
let userIDs = $("input[data-user-id]:checked").map(function() {
|
||||
return $(this).data("user-id");
|
||||
});
|
||||
@@ -75,7 +75,7 @@ function bulkEditUsers(event) {
|
||||
})
|
||||
);
|
||||
}
|
||||
Promise.all(reqs).then(responses => {
|
||||
Promise.all(reqs).then(_responses => {
|
||||
window.location.reload();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ export default () => {
|
||||
}
|
||||
});
|
||||
|
||||
$(".modal").on("show.bs.modal", function(e) {
|
||||
$(".modal").on("show.bs.modal", function(_e) {
|
||||
$(".form-control").each(function() {
|
||||
if ($(this).val()) {
|
||||
$(this).addClass("input-filled-valid");
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -162,7 +162,7 @@
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
;
|
||||
eval("\n\n__webpack_require__(/*! ./main */ \"./CTFd/themes/admin/assets/js/pages/main.js\");\n\nvar _CTFd = _interopRequireDefault(__webpack_require__(/*! core/CTFd */ \"./CTFd/themes/core/assets/js/CTFd.js\"));\n\nvar _jquery = _interopRequireDefault(__webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\"));\n\nvar _ezq = __webpack_require__(/*! core/ezq */ \"./CTFd/themes/core/assets/js/ezq.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction deleteSelectedChallenges(event) {\n var challengeIDs = (0, _jquery.default)(\"input[data-challenge-id]:checked\").map(function () {\n return (0, _jquery.default)(this).data(\"challenge-id\");\n });\n var target = challengeIDs.length === 1 ? \"challenge\" : \"challenges\";\n (0, _ezq.ezQuery)({\n title: \"Delete Challenges\",\n body: \"Are you sure you want to delete \".concat(challengeIDs.length, \" \").concat(target, \"?\"),\n success: function success() {\n var reqs = [];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = challengeIDs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var chalID = _step.value;\n reqs.push(_CTFd.default.fetch(\"/api/v1/challenges/\".concat(chalID), {\n method: \"DELETE\"\n }));\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n Promise.all(reqs).then(function (responses) {\n window.location.reload();\n });\n }\n });\n}\n\nfunction bulkEditChallenges(event) {\n var challengeIDs = (0, _jquery.default)(\"input[data-challenge-id]:checked\").map(function () {\n return (0, _jquery.default)(this).data(\"challenge-id\");\n });\n (0, _ezq.ezAlert)({\n title: \"Edit Challenges\",\n body: (0, _jquery.default)(\"\\n <form id=\\\"challenges-bulk-edit\\\">\\n <div class=\\\"form-group\\\">\\n <label>Category</label>\\n <input type=\\\"text\\\" name=\\\"category\\\" data-initial=\\\"\\\" value=\\\"\\\">\\n </div>\\n <div class=\\\"form-group\\\">\\n <label>Value</label>\\n <input type=\\\"number\\\" name=\\\"value\\\" data-initial=\\\"\\\" value=\\\"\\\">\\n </div>\\n <div class=\\\"form-group\\\">\\n <label>State</label>\\n <select name=\\\"state\\\" data-initial=\\\"\\\">\\n <option value=\\\"\\\">--</option>\\n <option value=\\\"visible\\\">Visible</option>\\n <option value=\\\"hidden\\\">Hidden</option>\\n </select>\\n </div>\\n </form>\\n \"),\n button: \"Submit\",\n success: function success() {\n var data = (0, _jquery.default)(\"#challenges-bulk-edit\").serializeJSON(true);\n var reqs = [];\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = challengeIDs[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var chalID = _step2.value;\n reqs.push(_CTFd.default.fetch(\"/api/v1/challenges/\".concat(chalID), {\n method: \"PATCH\",\n body: JSON.stringify(data)\n }));\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n Promise.all(reqs).then(function (responses) {\n window.location.reload();\n });\n }\n });\n}\n\n(0, _jquery.default)(function () {\n (0, _jquery.default)(\"#challenges-delete-button\").click(deleteSelectedChallenges);\n (0, _jquery.default)(\"#challenges-edit-button\").click(bulkEditChallenges);\n});\n\n//# sourceURL=webpack:///./CTFd/themes/admin/assets/js/pages/challenges.js?");
|
||||
eval("\n\n__webpack_require__(/*! ./main */ \"./CTFd/themes/admin/assets/js/pages/main.js\");\n\nvar _CTFd = _interopRequireDefault(__webpack_require__(/*! core/CTFd */ \"./CTFd/themes/core/assets/js/CTFd.js\"));\n\nvar _jquery = _interopRequireDefault(__webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\"));\n\nvar _ezq = __webpack_require__(/*! core/ezq */ \"./CTFd/themes/core/assets/js/ezq.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction deleteSelectedChallenges(_event) {\n var challengeIDs = (0, _jquery.default)(\"input[data-challenge-id]:checked\").map(function () {\n return (0, _jquery.default)(this).data(\"challenge-id\");\n });\n var target = challengeIDs.length === 1 ? \"challenge\" : \"challenges\";\n (0, _ezq.ezQuery)({\n title: \"Delete Challenges\",\n body: \"Are you sure you want to delete \".concat(challengeIDs.length, \" \").concat(target, \"?\"),\n success: function success() {\n var reqs = [];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = challengeIDs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var chalID = _step.value;\n reqs.push(_CTFd.default.fetch(\"/api/v1/challenges/\".concat(chalID), {\n method: \"DELETE\"\n }));\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n Promise.all(reqs).then(function (_responses) {\n window.location.reload();\n });\n }\n });\n}\n\nfunction bulkEditChallenges(_event) {\n var challengeIDs = (0, _jquery.default)(\"input[data-challenge-id]:checked\").map(function () {\n return (0, _jquery.default)(this).data(\"challenge-id\");\n });\n (0, _ezq.ezAlert)({\n title: \"Edit Challenges\",\n body: (0, _jquery.default)(\"\\n <form id=\\\"challenges-bulk-edit\\\">\\n <div class=\\\"form-group\\\">\\n <label>Category</label>\\n <input type=\\\"text\\\" name=\\\"category\\\" data-initial=\\\"\\\" value=\\\"\\\">\\n </div>\\n <div class=\\\"form-group\\\">\\n <label>Value</label>\\n <input type=\\\"number\\\" name=\\\"value\\\" data-initial=\\\"\\\" value=\\\"\\\">\\n </div>\\n <div class=\\\"form-group\\\">\\n <label>State</label>\\n <select name=\\\"state\\\" data-initial=\\\"\\\">\\n <option value=\\\"\\\">--</option>\\n <option value=\\\"visible\\\">Visible</option>\\n <option value=\\\"hidden\\\">Hidden</option>\\n </select>\\n </div>\\n </form>\\n \"),\n button: \"Submit\",\n success: function success() {\n var data = (0, _jquery.default)(\"#challenges-bulk-edit\").serializeJSON(true);\n var reqs = [];\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = challengeIDs[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var chalID = _step2.value;\n reqs.push(_CTFd.default.fetch(\"/api/v1/challenges/\".concat(chalID), {\n method: \"PATCH\",\n body: JSON.stringify(data)\n }));\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n Promise.all(reqs).then(function (_responses) {\n window.location.reload();\n });\n }\n });\n}\n\n(0, _jquery.default)(function () {\n (0, _jquery.default)(\"#challenges-delete-button\").click(deleteSelectedChallenges);\n (0, _jquery.default)(\"#challenges-edit-button\").click(bulkEditChallenges);\n});\n\n//# sourceURL=webpack:///./CTFd/themes/admin/assets/js/pages/challenges.js?");
|
||||
|
||||
/***/ })
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -162,7 +162,7 @@
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
;
|
||||
eval("\n\n__webpack_require__(/*! ./main */ \"./CTFd/themes/admin/assets/js/pages/main.js\");\n\nvar _CTFd = _interopRequireDefault(__webpack_require__(/*! core/CTFd */ \"./CTFd/themes/core/assets/js/CTFd.js\"));\n\nvar _jquery = _interopRequireDefault(__webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\"));\n\nvar _ezq = __webpack_require__(/*! core/ezq */ \"./CTFd/themes/core/assets/js/ezq.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction deleteSelectedUsers(event) {\n var pageIDs = (0, _jquery.default)(\"input[data-page-id]:checked\").map(function () {\n return (0, _jquery.default)(this).data(\"page-id\");\n });\n var target = pageIDs.length === 1 ? \"page\" : \"pages\";\n (0, _ezq.ezQuery)({\n title: \"Delete Pages\",\n body: \"Are you sure you want to delete \".concat(pageIDs.length, \" \").concat(target, \"?\"),\n success: function success() {\n var reqs = [];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = pageIDs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var pageID = _step.value;\n reqs.push(_CTFd.default.fetch(\"/api/v1/pages/\".concat(pageID), {\n method: \"DELETE\"\n }));\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n Promise.all(reqs).then(function (responses) {\n window.location.reload();\n });\n }\n });\n}\n\n(0, _jquery.default)(function () {\n (0, _jquery.default)(\"#pages-delete-button\").click(deleteSelectedUsers);\n});\n\n//# sourceURL=webpack:///./CTFd/themes/admin/assets/js/pages/pages.js?");
|
||||
eval("\n\n__webpack_require__(/*! ./main */ \"./CTFd/themes/admin/assets/js/pages/main.js\");\n\nvar _CTFd = _interopRequireDefault(__webpack_require__(/*! core/CTFd */ \"./CTFd/themes/core/assets/js/CTFd.js\"));\n\nvar _jquery = _interopRequireDefault(__webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\"));\n\nvar _ezq = __webpack_require__(/*! core/ezq */ \"./CTFd/themes/core/assets/js/ezq.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction deleteSelectedUsers(_event) {\n var pageIDs = (0, _jquery.default)(\"input[data-page-id]:checked\").map(function () {\n return (0, _jquery.default)(this).data(\"page-id\");\n });\n var target = pageIDs.length === 1 ? \"page\" : \"pages\";\n (0, _ezq.ezQuery)({\n title: \"Delete Pages\",\n body: \"Are you sure you want to delete \".concat(pageIDs.length, \" \").concat(target, \"?\"),\n success: function success() {\n var reqs = [];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = pageIDs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var pageID = _step.value;\n reqs.push(_CTFd.default.fetch(\"/api/v1/pages/\".concat(pageID), {\n method: \"DELETE\"\n }));\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n Promise.all(reqs).then(function (_responses) {\n window.location.reload();\n });\n }\n });\n}\n\n(0, _jquery.default)(function () {\n (0, _jquery.default)(\"#pages-delete-button\").click(deleteSelectedUsers);\n});\n\n//# sourceURL=webpack:///./CTFd/themes/admin/assets/js/pages/pages.js?");
|
||||
|
||||
/***/ })
|
||||
|
||||
|
||||
@@ -162,7 +162,7 @@
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
;
|
||||
eval("\n\n__webpack_require__(/*! ./main */ \"./CTFd/themes/admin/assets/js/pages/main.js\");\n\nvar _CTFd = _interopRequireDefault(__webpack_require__(/*! core/CTFd */ \"./CTFd/themes/core/assets/js/CTFd.js\"));\n\nvar _jquery = _interopRequireDefault(__webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\"));\n\nvar _ezq = __webpack_require__(/*! core/ezq */ \"./CTFd/themes/core/assets/js/ezq.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar api_func = {\n users: function users(x, y) {\n return _CTFd.default.api.patch_user_public({\n userId: x\n }, y);\n },\n teams: function teams(x, y) {\n return _CTFd.default.api.patch_team_public({\n teamId: x\n }, y);\n }\n};\n\nfunction toggleAccount() {\n var $btn = (0, _jquery.default)(this);\n var id = $btn.data(\"account-id\");\n var state = $btn.data(\"state\");\n var hidden = undefined;\n\n if (state === \"visible\") {\n hidden = true;\n } else if (state === \"hidden\") {\n hidden = false;\n }\n\n var params = {\n hidden: hidden\n };\n\n api_func[_CTFd.default.config.userMode](id, params).then(function (response) {\n if (response.success) {\n if (hidden) {\n $btn.data(\"state\", \"hidden\");\n $btn.addClass(\"btn-danger\").removeClass(\"btn-success\");\n $btn.text(\"Hidden\");\n } else {\n $btn.data(\"state\", \"visible\");\n $btn.addClass(\"btn-success\").removeClass(\"btn-danger\");\n $btn.text(\"Visible\");\n }\n }\n });\n}\n\nfunction toggleSelectedAccounts(accountIDs, action) {\n var params = {\n hidden: action === \"hidden\" ? true : false\n };\n var reqs = [];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = accountIDs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var accId = _step.value;\n reqs.push(api_func[_CTFd.default.config.userMode](accId, params));\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n Promise.all(reqs).then(function (responses) {\n window.location.reload();\n });\n}\n\nfunction bulkToggleAccounts(event) {\n var accountIDs = (0, _jquery.default)(\"input[data-account-id]:checked\").map(function () {\n return (0, _jquery.default)(this).data(\"account-id\");\n });\n (0, _ezq.ezAlert)({\n title: \"Toggle Visibility\",\n body: (0, _jquery.default)(\"\\n <form id=\\\"scoreboard-bulk-edit\\\">\\n <div class=\\\"form-group\\\">\\n <label>Visibility</label>\\n <select name=\\\"visibility\\\" data-initial=\\\"\\\">\\n <option value=\\\"\\\">--</option>\\n <option value=\\\"visible\\\">Visible</option>\\n <option value=\\\"hidden\\\">Hidden</option>\\n </select>\\n </div>\\n </form>\\n \"),\n button: \"Submit\",\n success: function success() {\n var data = (0, _jquery.default)(\"#scoreboard-bulk-edit\").serializeJSON(true);\n var state = data.visibility;\n toggleSelectedAccounts(accountIDs, state);\n }\n });\n}\n\n(0, _jquery.default)(function () {\n (0, _jquery.default)(\".scoreboard-toggle\").click(toggleAccount);\n (0, _jquery.default)(\"#scoreboard-edit-button\").click(bulkToggleAccounts);\n});\n\n//# sourceURL=webpack:///./CTFd/themes/admin/assets/js/pages/scoreboard.js?");
|
||||
eval("\n\n__webpack_require__(/*! ./main */ \"./CTFd/themes/admin/assets/js/pages/main.js\");\n\nvar _CTFd = _interopRequireDefault(__webpack_require__(/*! core/CTFd */ \"./CTFd/themes/core/assets/js/CTFd.js\"));\n\nvar _jquery = _interopRequireDefault(__webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\"));\n\nvar _ezq = __webpack_require__(/*! core/ezq */ \"./CTFd/themes/core/assets/js/ezq.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar api_func = {\n users: function users(x, y) {\n return _CTFd.default.api.patch_user_public({\n userId: x\n }, y);\n },\n teams: function teams(x, y) {\n return _CTFd.default.api.patch_team_public({\n teamId: x\n }, y);\n }\n};\n\nfunction toggleAccount() {\n var $btn = (0, _jquery.default)(this);\n var id = $btn.data(\"account-id\");\n var state = $btn.data(\"state\");\n var hidden = undefined;\n\n if (state === \"visible\") {\n hidden = true;\n } else if (state === \"hidden\") {\n hidden = false;\n }\n\n var params = {\n hidden: hidden\n };\n\n api_func[_CTFd.default.config.userMode](id, params).then(function (response) {\n if (response.success) {\n if (hidden) {\n $btn.data(\"state\", \"hidden\");\n $btn.addClass(\"btn-danger\").removeClass(\"btn-success\");\n $btn.text(\"Hidden\");\n } else {\n $btn.data(\"state\", \"visible\");\n $btn.addClass(\"btn-success\").removeClass(\"btn-danger\");\n $btn.text(\"Visible\");\n }\n }\n });\n}\n\nfunction toggleSelectedAccounts(accountIDs, action) {\n var params = {\n hidden: action === \"hidden\" ? true : false\n };\n var reqs = [];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = accountIDs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var accId = _step.value;\n reqs.push(api_func[_CTFd.default.config.userMode](accId, params));\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n Promise.all(reqs).then(function (_responses) {\n window.location.reload();\n });\n}\n\nfunction bulkToggleAccounts(_event) {\n var accountIDs = (0, _jquery.default)(\"input[data-account-id]:checked\").map(function () {\n return (0, _jquery.default)(this).data(\"account-id\");\n });\n (0, _ezq.ezAlert)({\n title: \"Toggle Visibility\",\n body: (0, _jquery.default)(\"\\n <form id=\\\"scoreboard-bulk-edit\\\">\\n <div class=\\\"form-group\\\">\\n <label>Visibility</label>\\n <select name=\\\"visibility\\\" data-initial=\\\"\\\">\\n <option value=\\\"\\\">--</option>\\n <option value=\\\"visible\\\">Visible</option>\\n <option value=\\\"hidden\\\">Hidden</option>\\n </select>\\n </div>\\n </form>\\n \"),\n button: \"Submit\",\n success: function success() {\n var data = (0, _jquery.default)(\"#scoreboard-bulk-edit\").serializeJSON(true);\n var state = data.visibility;\n toggleSelectedAccounts(accountIDs, state);\n }\n });\n}\n\n(0, _jquery.default)(function () {\n (0, _jquery.default)(\".scoreboard-toggle\").click(toggleAccount);\n (0, _jquery.default)(\"#scoreboard-edit-button\").click(bulkToggleAccounts);\n});\n\n//# sourceURL=webpack:///./CTFd/themes/admin/assets/js/pages/scoreboard.js?");
|
||||
|
||||
/***/ })
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -162,7 +162,7 @@
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
;
|
||||
eval("\n\n__webpack_require__(/*! ./main */ \"./CTFd/themes/admin/assets/js/pages/main.js\");\n\nvar _CTFd = _interopRequireDefault(__webpack_require__(/*! core/CTFd */ \"./CTFd/themes/core/assets/js/CTFd.js\"));\n\nvar _jquery = _interopRequireDefault(__webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\"));\n\nvar _utils = __webpack_require__(/*! core/utils */ \"./CTFd/themes/core/assets/js/utils.js\");\n\nvar _ezq = __webpack_require__(/*! core/ezq */ \"./CTFd/themes/core/assets/js/ezq.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction deleteCorrectSubmission(event) {\n var key_id = (0, _jquery.default)(this).data(\"submission-id\");\n var $elem = (0, _jquery.default)(this).parent().parent();\n var chal_name = $elem.find(\".chal\").text().trim();\n var team_name = $elem.find(\".team\").text().trim();\n var row = (0, _jquery.default)(this).parent().parent();\n (0, _ezq.ezQuery)({\n title: \"Delete Submission\",\n body: \"Are you sure you want to delete correct submission from {0} for challenge {1}\".format(\"<strong>\" + (0, _utils.htmlEntities)(team_name) + \"</strong>\", \"<strong>\" + (0, _utils.htmlEntities)(chal_name) + \"</strong>\"),\n success: function success() {\n _CTFd.default.api.delete_submission({\n submissionId: key_id\n }).then(function (response) {\n if (response.success) {\n row.remove();\n }\n });\n }\n });\n}\n\nfunction deleteSelectedSubmissions(event) {\n var submissionIDs = (0, _jquery.default)(\"input[data-submission-id]:checked\").map(function () {\n return (0, _jquery.default)(this).data(\"submission-id\");\n });\n var target = submissionIDs.length === 1 ? \"submission\" : \"submissions\";\n (0, _ezq.ezQuery)({\n title: \"Delete Submissions\",\n body: \"Are you sure you want to delete \".concat(submissionIDs.length, \" \").concat(target, \"?\"),\n success: function success() {\n var reqs = [];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = submissionIDs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var subId = _step.value;\n reqs.push(_CTFd.default.api.delete_submission({\n submissionId: subId\n }));\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n Promise.all(reqs).then(function (responses) {\n window.location.reload();\n });\n }\n });\n}\n\n(0, _jquery.default)(function () {\n (0, _jquery.default)(\".delete-correct-submission\").click(deleteCorrectSubmission);\n (0, _jquery.default)(\"#submission-delete-button\").click(deleteSelectedSubmissions);\n});\n\n//# sourceURL=webpack:///./CTFd/themes/admin/assets/js/pages/submissions.js?");
|
||||
eval("\n\n__webpack_require__(/*! ./main */ \"./CTFd/themes/admin/assets/js/pages/main.js\");\n\nvar _CTFd = _interopRequireDefault(__webpack_require__(/*! core/CTFd */ \"./CTFd/themes/core/assets/js/CTFd.js\"));\n\nvar _jquery = _interopRequireDefault(__webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\"));\n\nvar _utils = __webpack_require__(/*! core/utils */ \"./CTFd/themes/core/assets/js/utils.js\");\n\nvar _ezq = __webpack_require__(/*! core/ezq */ \"./CTFd/themes/core/assets/js/ezq.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction deleteCorrectSubmission(_event) {\n var key_id = (0, _jquery.default)(this).data(\"submission-id\");\n var $elem = (0, _jquery.default)(this).parent().parent();\n var chal_name = $elem.find(\".chal\").text().trim();\n var team_name = $elem.find(\".team\").text().trim();\n var row = (0, _jquery.default)(this).parent().parent();\n (0, _ezq.ezQuery)({\n title: \"Delete Submission\",\n body: \"Are you sure you want to delete correct submission from {0} for challenge {1}\".format(\"<strong>\" + (0, _utils.htmlEntities)(team_name) + \"</strong>\", \"<strong>\" + (0, _utils.htmlEntities)(chal_name) + \"</strong>\"),\n success: function success() {\n _CTFd.default.api.delete_submission({\n submissionId: key_id\n }).then(function (response) {\n if (response.success) {\n row.remove();\n }\n });\n }\n });\n}\n\nfunction deleteSelectedSubmissions(_event) {\n var submissionIDs = (0, _jquery.default)(\"input[data-submission-id]:checked\").map(function () {\n return (0, _jquery.default)(this).data(\"submission-id\");\n });\n var target = submissionIDs.length === 1 ? \"submission\" : \"submissions\";\n (0, _ezq.ezQuery)({\n title: \"Delete Submissions\",\n body: \"Are you sure you want to delete \".concat(submissionIDs.length, \" \").concat(target, \"?\"),\n success: function success() {\n var reqs = [];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = submissionIDs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var subId = _step.value;\n reqs.push(_CTFd.default.api.delete_submission({\n submissionId: subId\n }));\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n Promise.all(reqs).then(function (_responses) {\n window.location.reload();\n });\n }\n });\n}\n\n(0, _jquery.default)(function () {\n (0, _jquery.default)(\".delete-correct-submission\").click(deleteCorrectSubmission);\n (0, _jquery.default)(\"#submission-delete-button\").click(deleteSelectedSubmissions);\n});\n\n//# sourceURL=webpack:///./CTFd/themes/admin/assets/js/pages/submissions.js?");
|
||||
|
||||
/***/ })
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -162,7 +162,7 @@
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
;
|
||||
eval("\n\n__webpack_require__(/*! ./main */ \"./CTFd/themes/admin/assets/js/pages/main.js\");\n\nvar _CTFd = _interopRequireDefault(__webpack_require__(/*! core/CTFd */ \"./CTFd/themes/core/assets/js/CTFd.js\"));\n\nvar _jquery = _interopRequireDefault(__webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\"));\n\nvar _ezq = __webpack_require__(/*! core/ezq */ \"./CTFd/themes/core/assets/js/ezq.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction deleteSelectedTeams(event) {\n var teamIDs = (0, _jquery.default)(\"input[data-team-id]:checked\").map(function () {\n return (0, _jquery.default)(this).data(\"team-id\");\n });\n var target = teamIDs.length === 1 ? \"team\" : \"teams\";\n (0, _ezq.ezQuery)({\n title: \"Delete Teams\",\n body: \"Are you sure you want to delete \".concat(teamIDs.length, \" \").concat(target, \"?\"),\n success: function success() {\n var reqs = [];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = teamIDs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var teamID = _step.value;\n reqs.push(_CTFd.default.fetch(\"/api/v1/teams/\".concat(teamID), {\n method: \"DELETE\"\n }));\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n Promise.all(reqs).then(function (responses) {\n window.location.reload();\n });\n }\n });\n}\n\nfunction bulkEditTeams(event) {\n var teamIDs = (0, _jquery.default)(\"input[data-team-id]:checked\").map(function () {\n return (0, _jquery.default)(this).data(\"team-id\");\n });\n (0, _ezq.ezAlert)({\n title: \"Edit Teams\",\n body: (0, _jquery.default)(\"\\n <form id=\\\"teams-bulk-edit\\\">\\n <div class=\\\"form-group\\\">\\n <label>Banned</label>\\n <select name=\\\"banned\\\" data-initial=\\\"\\\">\\n <option value=\\\"\\\">--</option>\\n <option value=\\\"true\\\">True</option>\\n <option value=\\\"false\\\">False</option>\\n </select>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label>Hidden</label>\\n <select name=\\\"hidden\\\" data-initial=\\\"\\\">\\n <option value=\\\"\\\">--</option>\\n <option value=\\\"true\\\">True</option>\\n <option value=\\\"false\\\">False</option>\\n </select>\\n </div>\\n </form>\\n \"),\n button: \"Submit\",\n success: function success() {\n var data = (0, _jquery.default)(\"#teams-bulk-edit\").serializeJSON(true);\n var reqs = [];\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = teamIDs[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var teamID = _step2.value;\n reqs.push(_CTFd.default.fetch(\"/api/v1/teams/\".concat(teamID), {\n method: \"PATCH\",\n body: JSON.stringify(data)\n }));\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n Promise.all(reqs).then(function (responses) {\n window.location.reload();\n });\n }\n });\n}\n\n(0, _jquery.default)(function () {\n (0, _jquery.default)(\"#teams-delete-button\").click(deleteSelectedTeams);\n (0, _jquery.default)(\"#teams-edit-button\").click(bulkEditTeams);\n});\n\n//# sourceURL=webpack:///./CTFd/themes/admin/assets/js/pages/teams.js?");
|
||||
eval("\n\n__webpack_require__(/*! ./main */ \"./CTFd/themes/admin/assets/js/pages/main.js\");\n\nvar _CTFd = _interopRequireDefault(__webpack_require__(/*! core/CTFd */ \"./CTFd/themes/core/assets/js/CTFd.js\"));\n\nvar _jquery = _interopRequireDefault(__webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\"));\n\nvar _ezq = __webpack_require__(/*! core/ezq */ \"./CTFd/themes/core/assets/js/ezq.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction deleteSelectedTeams(_event) {\n var teamIDs = (0, _jquery.default)(\"input[data-team-id]:checked\").map(function () {\n return (0, _jquery.default)(this).data(\"team-id\");\n });\n var target = teamIDs.length === 1 ? \"team\" : \"teams\";\n (0, _ezq.ezQuery)({\n title: \"Delete Teams\",\n body: \"Are you sure you want to delete \".concat(teamIDs.length, \" \").concat(target, \"?\"),\n success: function success() {\n var reqs = [];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = teamIDs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var teamID = _step.value;\n reqs.push(_CTFd.default.fetch(\"/api/v1/teams/\".concat(teamID), {\n method: \"DELETE\"\n }));\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n Promise.all(reqs).then(function (_responses) {\n window.location.reload();\n });\n }\n });\n}\n\nfunction bulkEditTeams(_event) {\n var teamIDs = (0, _jquery.default)(\"input[data-team-id]:checked\").map(function () {\n return (0, _jquery.default)(this).data(\"team-id\");\n });\n (0, _ezq.ezAlert)({\n title: \"Edit Teams\",\n body: (0, _jquery.default)(\"\\n <form id=\\\"teams-bulk-edit\\\">\\n <div class=\\\"form-group\\\">\\n <label>Banned</label>\\n <select name=\\\"banned\\\" data-initial=\\\"\\\">\\n <option value=\\\"\\\">--</option>\\n <option value=\\\"true\\\">True</option>\\n <option value=\\\"false\\\">False</option>\\n </select>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label>Hidden</label>\\n <select name=\\\"hidden\\\" data-initial=\\\"\\\">\\n <option value=\\\"\\\">--</option>\\n <option value=\\\"true\\\">True</option>\\n <option value=\\\"false\\\">False</option>\\n </select>\\n </div>\\n </form>\\n \"),\n button: \"Submit\",\n success: function success() {\n var data = (0, _jquery.default)(\"#teams-bulk-edit\").serializeJSON(true);\n var reqs = [];\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = teamIDs[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var teamID = _step2.value;\n reqs.push(_CTFd.default.fetch(\"/api/v1/teams/\".concat(teamID), {\n method: \"PATCH\",\n body: JSON.stringify(data)\n }));\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n Promise.all(reqs).then(function (_responses) {\n window.location.reload();\n });\n }\n });\n}\n\n(0, _jquery.default)(function () {\n (0, _jquery.default)(\"#teams-delete-button\").click(deleteSelectedTeams);\n (0, _jquery.default)(\"#teams-edit-button\").click(bulkEditTeams);\n});\n\n//# sourceURL=webpack:///./CTFd/themes/admin/assets/js/pages/teams.js?");
|
||||
|
||||
/***/ })
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -162,7 +162,7 @@
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
;
|
||||
eval("\n\n__webpack_require__(/*! ./main */ \"./CTFd/themes/admin/assets/js/pages/main.js\");\n\nvar _CTFd = _interopRequireDefault(__webpack_require__(/*! core/CTFd */ \"./CTFd/themes/core/assets/js/CTFd.js\"));\n\nvar _jquery = _interopRequireDefault(__webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\"));\n\nvar _ezq = __webpack_require__(/*! core/ezq */ \"./CTFd/themes/core/assets/js/ezq.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction deleteSelectedUsers(event) {\n var userIDs = (0, _jquery.default)(\"input[data-user-id]:checked\").map(function () {\n return (0, _jquery.default)(this).data(\"user-id\");\n });\n var target = userIDs.length === 1 ? \"user\" : \"users\";\n (0, _ezq.ezQuery)({\n title: \"Delete Users\",\n body: \"Are you sure you want to delete \".concat(userIDs.length, \" \").concat(target, \"?\"),\n success: function success() {\n var reqs = [];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = userIDs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var userID = _step.value;\n reqs.push(_CTFd.default.fetch(\"/api/v1/users/\".concat(userID), {\n method: \"DELETE\"\n }));\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n Promise.all(reqs).then(function (responses) {\n window.location.reload();\n });\n }\n });\n}\n\nfunction bulkEditUsers(event) {\n var userIDs = (0, _jquery.default)(\"input[data-user-id]:checked\").map(function () {\n return (0, _jquery.default)(this).data(\"user-id\");\n });\n (0, _ezq.ezAlert)({\n title: \"Edit Users\",\n body: (0, _jquery.default)(\"\\n <form id=\\\"users-bulk-edit\\\">\\n <div class=\\\"form-group\\\">\\n <label>Verified</label>\\n <select name=\\\"verified\\\" data-initial=\\\"\\\">\\n <option value=\\\"\\\">--</option>\\n <option value=\\\"true\\\">True</option>\\n <option value=\\\"false\\\">False</option>\\n </select>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label>Banned</label>\\n <select name=\\\"banned\\\" data-initial=\\\"\\\">\\n <option value=\\\"\\\">--</option>\\n <option value=\\\"true\\\">True</option>\\n <option value=\\\"false\\\">False</option>\\n </select>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label>Hidden</label>\\n <select name=\\\"hidden\\\" data-initial=\\\"\\\">\\n <option value=\\\"\\\">--</option>\\n <option value=\\\"true\\\">True</option>\\n <option value=\\\"false\\\">False</option>\\n </select>\\n </div>\\n </form>\\n \"),\n button: \"Submit\",\n success: function success() {\n var data = (0, _jquery.default)(\"#users-bulk-edit\").serializeJSON(true);\n var reqs = [];\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = userIDs[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var userID = _step2.value;\n reqs.push(_CTFd.default.fetch(\"/api/v1/users/\".concat(userID), {\n method: \"PATCH\",\n body: JSON.stringify(data)\n }));\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n Promise.all(reqs).then(function (responses) {\n window.location.reload();\n });\n }\n });\n}\n\n(0, _jquery.default)(function () {\n (0, _jquery.default)(\"#users-delete-button\").click(deleteSelectedUsers);\n (0, _jquery.default)(\"#users-edit-button\").click(bulkEditUsers);\n});\n\n//# sourceURL=webpack:///./CTFd/themes/admin/assets/js/pages/users.js?");
|
||||
eval("\n\n__webpack_require__(/*! ./main */ \"./CTFd/themes/admin/assets/js/pages/main.js\");\n\nvar _CTFd = _interopRequireDefault(__webpack_require__(/*! core/CTFd */ \"./CTFd/themes/core/assets/js/CTFd.js\"));\n\nvar _jquery = _interopRequireDefault(__webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\"));\n\nvar _ezq = __webpack_require__(/*! core/ezq */ \"./CTFd/themes/core/assets/js/ezq.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction deleteSelectedUsers(_event) {\n var userIDs = (0, _jquery.default)(\"input[data-user-id]:checked\").map(function () {\n return (0, _jquery.default)(this).data(\"user-id\");\n });\n var target = userIDs.length === 1 ? \"user\" : \"users\";\n (0, _ezq.ezQuery)({\n title: \"Delete Users\",\n body: \"Are you sure you want to delete \".concat(userIDs.length, \" \").concat(target, \"?\"),\n success: function success() {\n var reqs = [];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = userIDs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var userID = _step.value;\n reqs.push(_CTFd.default.fetch(\"/api/v1/users/\".concat(userID), {\n method: \"DELETE\"\n }));\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n Promise.all(reqs).then(function (_responses) {\n window.location.reload();\n });\n }\n });\n}\n\nfunction bulkEditUsers(_event) {\n var userIDs = (0, _jquery.default)(\"input[data-user-id]:checked\").map(function () {\n return (0, _jquery.default)(this).data(\"user-id\");\n });\n (0, _ezq.ezAlert)({\n title: \"Edit Users\",\n body: (0, _jquery.default)(\"\\n <form id=\\\"users-bulk-edit\\\">\\n <div class=\\\"form-group\\\">\\n <label>Verified</label>\\n <select name=\\\"verified\\\" data-initial=\\\"\\\">\\n <option value=\\\"\\\">--</option>\\n <option value=\\\"true\\\">True</option>\\n <option value=\\\"false\\\">False</option>\\n </select>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label>Banned</label>\\n <select name=\\\"banned\\\" data-initial=\\\"\\\">\\n <option value=\\\"\\\">--</option>\\n <option value=\\\"true\\\">True</option>\\n <option value=\\\"false\\\">False</option>\\n </select>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label>Hidden</label>\\n <select name=\\\"hidden\\\" data-initial=\\\"\\\">\\n <option value=\\\"\\\">--</option>\\n <option value=\\\"true\\\">True</option>\\n <option value=\\\"false\\\">False</option>\\n </select>\\n </div>\\n </form>\\n \"),\n button: \"Submit\",\n success: function success() {\n var data = (0, _jquery.default)(\"#users-bulk-edit\").serializeJSON(true);\n var reqs = [];\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = userIDs[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var userID = _step2.value;\n reqs.push(_CTFd.default.fetch(\"/api/v1/users/\".concat(userID), {\n method: \"PATCH\",\n body: JSON.stringify(data)\n }));\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n Promise.all(reqs).then(function (_responses) {\n window.location.reload();\n });\n }\n });\n}\n\n(0, _jquery.default)(function () {\n (0, _jquery.default)(\"#users-delete-button\").click(deleteSelectedUsers);\n (0, _jquery.default)(\"#users-edit-button\").click(bulkEditUsers);\n});\n\n//# sourceURL=webpack:///./CTFd/themes/admin/assets/js/pages/users.js?");
|
||||
|
||||
/***/ })
|
||||
|
||||
|
||||
@@ -3610,4 +3610,5 @@ let API = (function() {
|
||||
return API;
|
||||
})();
|
||||
|
||||
// eslint-disable-next-line no-undef
|
||||
exports.API = API;
|
||||
|
||||
@@ -42,7 +42,7 @@ export default root => {
|
||||
|
||||
function render(data) {
|
||||
switch (data.type) {
|
||||
case "toast":
|
||||
case "toast": {
|
||||
inc_notification_counter();
|
||||
// Trim toast body to length
|
||||
let length = 50;
|
||||
@@ -72,7 +72,8 @@ export default root => {
|
||||
}
|
||||
});
|
||||
break;
|
||||
case "alert":
|
||||
}
|
||||
case "alert": {
|
||||
inc_notification_counter();
|
||||
ezAlert({
|
||||
title: data.title,
|
||||
@@ -83,13 +84,16 @@ export default root => {
|
||||
}
|
||||
});
|
||||
break;
|
||||
case "background":
|
||||
}
|
||||
case "background": {
|
||||
inc_notification_counter();
|
||||
break;
|
||||
default:
|
||||
}
|
||||
default: {
|
||||
inc_notification_counter();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (data.sound) {
|
||||
howl.play();
|
||||
|
||||
@@ -22,11 +22,11 @@ const graph_configs = {
|
||||
orientation: "h"
|
||||
}
|
||||
},
|
||||
fn: (type, id, name, account_id) =>
|
||||
fn: (type, id, name, _account_id) =>
|
||||
`CTFd_score_${type}_${name}_${id}_${new Date()
|
||||
.toISOString()
|
||||
.slice(0, 19)}`,
|
||||
format: (type, id, name, account_id, responses) => {
|
||||
format: (type, id, name, _account_id, responses) => {
|
||||
const times = [];
|
||||
const scores = [];
|
||||
const solves = responses[0].data;
|
||||
@@ -74,7 +74,7 @@ const graph_configs = {
|
||||
},
|
||||
height: "400px"
|
||||
},
|
||||
fn: (type, id, name, account_id) =>
|
||||
fn: (type, id, name, _account_id) =>
|
||||
`CTFd_submissions_${type}_${name}_${id}_${new Date()
|
||||
.toISOString()
|
||||
.slice(0, 19)}`,
|
||||
@@ -122,7 +122,7 @@ const graph_configs = {
|
||||
},
|
||||
height: "400px"
|
||||
},
|
||||
fn: (type, id, name, account_id) =>
|
||||
fn: (type, id, name, _account_id) =>
|
||||
`CTFd_submissions_${type}_${name}_${id}_${new Date()
|
||||
.toISOString()
|
||||
.slice(0, 19)}`,
|
||||
@@ -164,7 +164,6 @@ export function createGraph(
|
||||
const $elem = $(target);
|
||||
$elem.empty();
|
||||
if ($elem[0] === undefined) {
|
||||
console.log("Couldn't find graph target: " + target);
|
||||
return;
|
||||
}
|
||||
$elem[0].fn = cfg.fn(type, id, name, account_id);
|
||||
|
||||
@@ -76,7 +76,7 @@ const displayChal = chal => {
|
||||
}
|
||||
}
|
||||
|
||||
$(".challenge-solves").click(function(event) {
|
||||
$(".challenge-solves").click(function(_event) {
|
||||
getSolves($("#challenge-id").val());
|
||||
});
|
||||
$(".nav-tabs a").click(function(event) {
|
||||
@@ -85,7 +85,7 @@ const displayChal = chal => {
|
||||
});
|
||||
|
||||
// Handle modal toggling
|
||||
$("#challenge-window").on("hide.bs.modal", function(event) {
|
||||
$("#challenge-window").on("hide.bs.modal", function(_event) {
|
||||
$("#challenge-input").removeClass("wrong");
|
||||
$("#challenge-input").removeClass("correct");
|
||||
$("#incorrect-key").slideUp();
|
||||
@@ -94,7 +94,7 @@ const displayChal = chal => {
|
||||
$("#too-fast").slideUp();
|
||||
});
|
||||
|
||||
$(".load-hint").on("click", function(event) {
|
||||
$(".load-hint").on("click", function(_event) {
|
||||
loadHint($(this).data("hint-id"));
|
||||
});
|
||||
|
||||
@@ -329,7 +329,7 @@ function loadChals() {
|
||||
.append(chalwrap);
|
||||
}
|
||||
|
||||
$(".challenge-button").click(function(event) {
|
||||
$(".challenge-button").click(function(_event) {
|
||||
loadChal(this.value);
|
||||
getSolves(this.value);
|
||||
});
|
||||
@@ -360,16 +360,16 @@ $(() => {
|
||||
$(this).tab("show");
|
||||
});
|
||||
|
||||
$("#challenge-window").on("hidden.bs.modal", function(event) {
|
||||
$("#challenge-window").on("hidden.bs.modal", function(_event) {
|
||||
$(".nav-tabs a:first").tab("show");
|
||||
history.replaceState("", window.document.title, window.location.pathname);
|
||||
});
|
||||
|
||||
$(".challenge-solves").click(function(event) {
|
||||
$(".challenge-solves").click(function(_event) {
|
||||
getSolves($("#challenge-id").val());
|
||||
});
|
||||
|
||||
$("#challenge-window").on("hide.bs.modal", function(event) {
|
||||
$("#challenge-window").on("hide.bs.modal", function(_event) {
|
||||
$("#challenge-input").removeClass("wrong");
|
||||
$("#challenge-input").removeClass("correct");
|
||||
$("#incorrect-key").slideUp();
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import "./main";
|
||||
import $ from "jquery";
|
||||
import CTFd from "../CTFd";
|
||||
import { clear_notification_counter } from "../utils";
|
||||
|
||||
$(() => {
|
||||
|
||||
@@ -111,7 +111,7 @@ $(() => {
|
||||
$("#user-profile-form").submit(profileUpdate);
|
||||
$("#user-token-form").submit(tokenGenerate);
|
||||
$(".delete-token").click(deleteToken);
|
||||
$(".nav-pills a").click(function(event) {
|
||||
$(".nav-pills a").click(function(_event) {
|
||||
window.location.hash = this.hash;
|
||||
});
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import "./main";
|
||||
import $ from "jquery";
|
||||
import Moment from "moment-timezone";
|
||||
import moment from "moment-timezone";
|
||||
import CTFd from "../CTFd";
|
||||
|
||||
function switchTab(event) {
|
||||
@@ -13,7 +12,7 @@ function switchTab(event) {
|
||||
.closest("[role=tabpanel]")
|
||||
.find("input,textarea")
|
||||
.each(function(i, e) {
|
||||
$e = $(e);
|
||||
let $e = $(e);
|
||||
let status = e.checkValidity();
|
||||
if (status === false) {
|
||||
$e.removeClass("input-filled-valid");
|
||||
@@ -33,7 +32,7 @@ function switchTab(event) {
|
||||
function processDateTime(datetime) {
|
||||
let date_picker = $(`#${datetime}-date`);
|
||||
let time_picker = $(`#${datetime}-time`);
|
||||
return function(event) {
|
||||
return function(_event) {
|
||||
let unix_time = Moment(
|
||||
`${date_picker.val()} ${time_picker.val()}`,
|
||||
"YYYY-MM-DD HH:mm"
|
||||
@@ -44,7 +43,7 @@ function processDateTime(datetime) {
|
||||
};
|
||||
}
|
||||
|
||||
function mlcSetup(event) {
|
||||
function mlcSetup(_event) {
|
||||
let params = {
|
||||
name: $("#ctf_name").val(),
|
||||
type: "jeopardy",
|
||||
@@ -57,7 +56,7 @@ function mlcSetup(event) {
|
||||
start: $("#start-preview").val(),
|
||||
end: $("#end-preview").val(),
|
||||
platform: "CTFd",
|
||||
state: STATE
|
||||
state: window.STATE
|
||||
};
|
||||
|
||||
const ret = [];
|
||||
@@ -88,7 +87,7 @@ $(() => {
|
||||
$("#start-date,#start-time").change(processDateTime("start"));
|
||||
$("#end-date,#end-time").change(processDateTime("end"));
|
||||
|
||||
$("#config-color-picker").on("input", function(e) {
|
||||
$("#config-color-picker").on("input", function(_e) {
|
||||
$("#config-color-input").val($(this).val());
|
||||
});
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ import "../../utils";
|
||||
import CTFd from "../../CTFd";
|
||||
import "bootstrap/js/dist/modal";
|
||||
import $ from "jquery";
|
||||
import { ezBadge } from "../../ezq";
|
||||
|
||||
$(() => {
|
||||
if (window.team_captain) {
|
||||
@@ -34,6 +35,12 @@ $(() => {
|
||||
if (response.status === 400) {
|
||||
response.json().then(function(object) {
|
||||
if (!object.success) {
|
||||
const error_template =
|
||||
'<div class="alert alert-danger alert-dismissable" role="alert">\n' +
|
||||
' <span class="sr-only">Error:</span>\n' +
|
||||
" {0}\n" +
|
||||
' <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>\n' +
|
||||
"</div>";
|
||||
Object.keys(object.errors).map(function(error) {
|
||||
var i = form.find("input[name={0}]".format(error));
|
||||
var input = $(i);
|
||||
@@ -76,9 +83,9 @@ $(() => {
|
||||
window.location.reload();
|
||||
} else {
|
||||
$("#team-captain-form > #results").empty();
|
||||
Object.keys(response.errors).forEach(function(key, index) {
|
||||
Object.keys(response.errors).forEach(function(key, _index) {
|
||||
$("#team-captain-form > #results").append(
|
||||
ezbadge({
|
||||
ezBadge({
|
||||
type: "error",
|
||||
body: response.errors[key]
|
||||
})
|
||||
|
||||
@@ -108,7 +108,9 @@ WindowController.prototype.handleEvent = function(event) {
|
||||
if (data.id !== this.id) {
|
||||
this[data.type](data);
|
||||
}
|
||||
} catch (error) {}
|
||||
} catch (error) {
|
||||
// Ignore error
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -134,7 +136,7 @@ WindowController.prototype.bye = function(event) {
|
||||
this.check();
|
||||
};
|
||||
|
||||
WindowController.prototype.check = function(event) {
|
||||
WindowController.prototype.check = function(_event) {
|
||||
var now = +new Date(),
|
||||
takeMaster = true,
|
||||
id;
|
||||
@@ -164,6 +166,7 @@ WindowController.prototype.broadcast = function(type, data) {
|
||||
try {
|
||||
localStorage.setItem("broadcast", JSON.stringify(event));
|
||||
} catch (error) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.log(error);
|
||||
}
|
||||
};
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -162,7 +162,7 @@
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
;
|
||||
eval("\n\n__webpack_require__(/*! ./main */ \"./CTFd/themes/core/assets/js/pages/main.js\");\n\nvar _jquery = _interopRequireDefault(__webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\"));\n\nvar _CTFd = _interopRequireDefault(__webpack_require__(/*! ../CTFd */ \"./CTFd/themes/core/assets/js/CTFd.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./CTFd/themes/core/assets/js/utils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(0, _jquery.default)(function () {\n (0, _utils.clear_notification_counter)();\n});\n\n//# sourceURL=webpack:///./CTFd/themes/core/assets/js/pages/notifications.js?");
|
||||
eval("\n\n__webpack_require__(/*! ./main */ \"./CTFd/themes/core/assets/js/pages/main.js\");\n\nvar _jquery = _interopRequireDefault(__webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./CTFd/themes/core/assets/js/utils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(0, _jquery.default)(function () {\n (0, _utils.clear_notification_counter)();\n});\n\n//# sourceURL=webpack:///./CTFd/themes/core/assets/js/pages/notifications.js?");
|
||||
|
||||
/***/ })
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -162,7 +162,7 @@
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
;
|
||||
eval("\n\n__webpack_require__(/*! ./main */ \"./CTFd/themes/core/assets/js/pages/main.js\");\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./CTFd/themes/core/assets/js/utils.js\");\n\nvar _jquery = _interopRequireDefault(__webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\"));\n\nvar _CTFd = _interopRequireDefault(__webpack_require__(/*! ../CTFd */ \"./CTFd/themes/core/assets/js/CTFd.js\"));\n\nvar _ezq = __webpack_require__(/*! ../ezq */ \"./CTFd/themes/core/assets/js/ezq.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar error_template = '<div class=\"alert alert-danger alert-dismissable\" role=\"alert\">\\n' + ' <span class=\"sr-only\">Error:</span>\\n' + \" {0}\\n\" + ' <button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-label=\"Close\"><span aria-hidden=\"true\">×</span></button>\\n' + \"</div>\";\nvar success_template = '<div class=\"alert alert-success alert-dismissable submit-row\" role=\"alert\">\\n' + \" <strong>Success!</strong>\\n\" + \" Your profile has been updated\\n\" + ' <button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-label=\"Close\"><span aria-hidden=\"true\">×</span></button>\\n' + \"</div>\";\n\nfunction profileUpdate(event) {\n event.preventDefault();\n (0, _jquery.default)(\"#results\").empty();\n var $form = (0, _jquery.default)(this);\n var params = $form.serializeJSON(true);\n\n _CTFd.default.api.patch_user_private({}, params).then(function (response) {\n if (response.success) {\n (0, _jquery.default)(\"#results\").html(success_template);\n } else if (\"errors\" in response) {\n Object.keys(response.errors).map(function (error) {\n var i = $form.find(\"input[name={0}]\".format(error));\n var input = (0, _jquery.default)(i);\n input.addClass(\"input-filled-invalid\");\n input.removeClass(\"input-filled-valid\");\n var error_msg = response.errors[error];\n (0, _jquery.default)(\"#results\").append(error_template.format(error_msg));\n });\n }\n });\n}\n\nfunction tokenGenerate(event) {\n event.preventDefault();\n var $form = (0, _jquery.default)(this);\n var params = $form.serializeJSON(true);\n\n _CTFd.default.fetch(\"/api/v1/tokens\", {\n method: \"POST\",\n body: JSON.stringify(params)\n }).then(function (response) {\n return response.json();\n }).then(function (response) {\n if (response.success) {\n var body = (0, _jquery.default)(\"\\n <p>Please copy your API Key, it won't be shown again!</p>\\n <div class=\\\"input-group mb-3\\\">\\n <input type=\\\"text\\\" id=\\\"user-token-result\\\" class=\\\"form-control\\\" value=\\\"\".concat(response.data.value, \"\\\" readonly>\\n <div class=\\\"input-group-append\\\">\\n <button class=\\\"btn btn-outline-secondary\\\" type=\\\"button\\\">\\n <i class=\\\"fas fa-clipboard\\\"></i>\\n </button>\\n </div>\\n </div>\\n \"));\n body.find(\"button\").click(function (event) {\n (0, _utils.copyToClipboard)(event, \"#user-token-result\");\n });\n (0, _ezq.ezAlert)({\n title: \"API Key Generated\",\n body: body,\n button: \"Got it!\",\n large: true\n });\n }\n });\n}\n\nfunction deleteToken(event) {\n event.preventDefault();\n var $elem = (0, _jquery.default)(this);\n var id = $elem.data(\"token-id\");\n (0, _ezq.ezQuery)({\n title: \"Delete Token\",\n body: \"Are you sure you want to delete this token?\",\n success: function success() {\n _CTFd.default.fetch(\"/api/v1/tokens/\" + id, {\n method: \"DELETE\"\n }).then(function (response) {\n return response.json();\n }).then(function (response) {\n if (response.success) {\n $elem.parent().parent().remove();\n }\n });\n }\n });\n}\n\n(0, _jquery.default)(function () {\n (0, _jquery.default)(\"#user-profile-form\").submit(profileUpdate);\n (0, _jquery.default)(\"#user-token-form\").submit(tokenGenerate);\n (0, _jquery.default)(\".delete-token\").click(deleteToken);\n (0, _jquery.default)(\".nav-pills a\").click(function (event) {\n window.location.hash = this.hash;\n }); // Load location hash\n\n var hash = window.location.hash;\n\n if (hash) {\n hash = hash.replace(\"<>[]'\\\"\", \"\");\n (0, _jquery.default)('.nav-pills a[href=\"' + hash + '\"]').tab(\"show\");\n }\n});\n\n//# sourceURL=webpack:///./CTFd/themes/core/assets/js/pages/settings.js?");
|
||||
eval("\n\n__webpack_require__(/*! ./main */ \"./CTFd/themes/core/assets/js/pages/main.js\");\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./CTFd/themes/core/assets/js/utils.js\");\n\nvar _jquery = _interopRequireDefault(__webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\"));\n\nvar _CTFd = _interopRequireDefault(__webpack_require__(/*! ../CTFd */ \"./CTFd/themes/core/assets/js/CTFd.js\"));\n\nvar _ezq = __webpack_require__(/*! ../ezq */ \"./CTFd/themes/core/assets/js/ezq.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar error_template = '<div class=\"alert alert-danger alert-dismissable\" role=\"alert\">\\n' + ' <span class=\"sr-only\">Error:</span>\\n' + \" {0}\\n\" + ' <button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-label=\"Close\"><span aria-hidden=\"true\">×</span></button>\\n' + \"</div>\";\nvar success_template = '<div class=\"alert alert-success alert-dismissable submit-row\" role=\"alert\">\\n' + \" <strong>Success!</strong>\\n\" + \" Your profile has been updated\\n\" + ' <button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-label=\"Close\"><span aria-hidden=\"true\">×</span></button>\\n' + \"</div>\";\n\nfunction profileUpdate(event) {\n event.preventDefault();\n (0, _jquery.default)(\"#results\").empty();\n var $form = (0, _jquery.default)(this);\n var params = $form.serializeJSON(true);\n\n _CTFd.default.api.patch_user_private({}, params).then(function (response) {\n if (response.success) {\n (0, _jquery.default)(\"#results\").html(success_template);\n } else if (\"errors\" in response) {\n Object.keys(response.errors).map(function (error) {\n var i = $form.find(\"input[name={0}]\".format(error));\n var input = (0, _jquery.default)(i);\n input.addClass(\"input-filled-invalid\");\n input.removeClass(\"input-filled-valid\");\n var error_msg = response.errors[error];\n (0, _jquery.default)(\"#results\").append(error_template.format(error_msg));\n });\n }\n });\n}\n\nfunction tokenGenerate(event) {\n event.preventDefault();\n var $form = (0, _jquery.default)(this);\n var params = $form.serializeJSON(true);\n\n _CTFd.default.fetch(\"/api/v1/tokens\", {\n method: \"POST\",\n body: JSON.stringify(params)\n }).then(function (response) {\n return response.json();\n }).then(function (response) {\n if (response.success) {\n var body = (0, _jquery.default)(\"\\n <p>Please copy your API Key, it won't be shown again!</p>\\n <div class=\\\"input-group mb-3\\\">\\n <input type=\\\"text\\\" id=\\\"user-token-result\\\" class=\\\"form-control\\\" value=\\\"\".concat(response.data.value, \"\\\" readonly>\\n <div class=\\\"input-group-append\\\">\\n <button class=\\\"btn btn-outline-secondary\\\" type=\\\"button\\\">\\n <i class=\\\"fas fa-clipboard\\\"></i>\\n </button>\\n </div>\\n </div>\\n \"));\n body.find(\"button\").click(function (event) {\n (0, _utils.copyToClipboard)(event, \"#user-token-result\");\n });\n (0, _ezq.ezAlert)({\n title: \"API Key Generated\",\n body: body,\n button: \"Got it!\",\n large: true\n });\n }\n });\n}\n\nfunction deleteToken(event) {\n event.preventDefault();\n var $elem = (0, _jquery.default)(this);\n var id = $elem.data(\"token-id\");\n (0, _ezq.ezQuery)({\n title: \"Delete Token\",\n body: \"Are you sure you want to delete this token?\",\n success: function success() {\n _CTFd.default.fetch(\"/api/v1/tokens/\" + id, {\n method: \"DELETE\"\n }).then(function (response) {\n return response.json();\n }).then(function (response) {\n if (response.success) {\n $elem.parent().parent().remove();\n }\n });\n }\n });\n}\n\n(0, _jquery.default)(function () {\n (0, _jquery.default)(\"#user-profile-form\").submit(profileUpdate);\n (0, _jquery.default)(\"#user-token-form\").submit(tokenGenerate);\n (0, _jquery.default)(\".delete-token\").click(deleteToken);\n (0, _jquery.default)(\".nav-pills a\").click(function (_event) {\n window.location.hash = this.hash;\n }); // Load location hash\n\n var hash = window.location.hash;\n\n if (hash) {\n hash = hash.replace(\"<>[]'\\\"\", \"\");\n (0, _jquery.default)('.nav-pills a[href=\"' + hash + '\"]').tab(\"show\");\n }\n});\n\n//# sourceURL=webpack:///./CTFd/themes/core/assets/js/pages/settings.js?");
|
||||
|
||||
/***/ })
|
||||
|
||||
|
||||
@@ -162,7 +162,7 @@
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
;
|
||||
eval("\n\n__webpack_require__(/*! ./main */ \"./CTFd/themes/core/assets/js/pages/main.js\");\n\nvar _jquery = _interopRequireDefault(__webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\"));\n\nvar _momentTimezone = _interopRequireDefault(__webpack_require__(/*! moment-timezone */ \"./node_modules/moment-timezone/index.js\"));\n\nvar _CTFd = _interopRequireDefault(__webpack_require__(/*! ../CTFd */ \"./CTFd/themes/core/assets/js/CTFd.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction switchTab(event) {\n event.preventDefault(); // Handle tab validation\n\n var valid_tab = true;\n (0, _jquery.default)(event.target).closest(\"[role=tabpanel]\").find(\"input,textarea\").each(function (i, e) {\n $e = (0, _jquery.default)(e);\n var status = e.checkValidity();\n\n if (status === false) {\n $e.removeClass(\"input-filled-valid\");\n $e.addClass(\"input-filled-invalid\");\n valid_tab = false;\n }\n });\n\n if (valid_tab == false) {\n return;\n }\n\n var href = (0, _jquery.default)(event.target).data(\"href\");\n (0, _jquery.default)(\".nav a[href=\\\"\".concat(href, \"\\\"]\")).tab(\"show\");\n}\n\nfunction processDateTime(datetime) {\n var date_picker = (0, _jquery.default)(\"#\".concat(datetime, \"-date\"));\n var time_picker = (0, _jquery.default)(\"#\".concat(datetime, \"-time\"));\n return function (event) {\n var unix_time = (0, _momentTimezone.default)(\"\".concat(date_picker.val(), \" \").concat(time_picker.val()), \"YYYY-MM-DD HH:mm\").utc().format(\"X\");\n (0, _jquery.default)(\"#\".concat(datetime, \"-preview\")).val(unix_time);\n };\n}\n\nfunction mlcSetup(event) {\n var params = {\n name: (0, _jquery.default)(\"#ctf_name\").val(),\n type: \"jeopardy\",\n description: (0, _jquery.default)(\"#ctf_description\").val(),\n user_mode: (0, _jquery.default)(\"#user_mode\").val(),\n event_url: window.location.origin + _CTFd.default.config.urlRoot,\n redirect_url: window.location.origin + _CTFd.default.config.urlRoot + \"/redirect\",\n integration_setup_url: window.location.origin + _CTFd.default.config.urlRoot + \"/setup/integrations\",\n start: (0, _jquery.default)(\"#start-preview\").val(),\n end: (0, _jquery.default)(\"#end-preview\").val(),\n platform: \"CTFd\",\n state: STATE\n };\n var ret = [];\n\n for (var p in params) {\n ret.push(encodeURIComponent(p) + \"=\" + encodeURIComponent(params[p]));\n }\n\n window.open(\"https://www.majorleaguecyber.org/events/new?\" + ret.join(\"&\"), \"_blank\");\n}\n\n(0, _jquery.default)(function () {\n (0, _jquery.default)(\".tab-next\").click(switchTab);\n (0, _jquery.default)(\"input\").on(\"keypress\", function (e) {\n // Hook Enter button\n if (e.keyCode == 13) {\n e.preventDefault();\n (0, _jquery.default)(e.target).closest(\".tab-pane\").find(\"button[data-href]\").click();\n }\n });\n (0, _jquery.default)(\"#integration-mlc\").click(mlcSetup);\n (0, _jquery.default)(\"#start-date,#start-time\").change(processDateTime(\"start\"));\n (0, _jquery.default)(\"#end-date,#end-time\").change(processDateTime(\"end\"));\n (0, _jquery.default)(\"#config-color-picker\").on(\"input\", function (e) {\n (0, _jquery.default)(\"#config-color-input\").val((0, _jquery.default)(this).val());\n });\n (0, _jquery.default)(\"#config-color-reset\").click(function () {\n (0, _jquery.default)(\"#config-color-input\").val(\"\");\n (0, _jquery.default)(\"#config-color-picker\").val(\"\");\n });\n window.addEventListener(\"storage\", function (event) {\n if (event.key == \"integrations\" && event.newValue) {\n var integration = JSON.parse(event.newValue);\n\n if (integration[\"name\"] == \"mlc\") {\n (0, _jquery.default)(\"#integration-mlc\").text(\"Already Configured\").attr(\"disabled\", true);\n window.focus();\n localStorage.removeItem(\"integrations\");\n }\n }\n });\n (0, _jquery.default)(\"#setup-form\").submit(function (e) {\n if ((0, _jquery.default)(\"#newsletter-checkbox\").prop(\"checked\")) {\n var email = (0, _jquery.default)(e.target).find(\"input[name=email]\").val();\n\n _jquery.default.ajax({\n type: \"POST\",\n url: \"https://ctfd.us15.list-manage.com/subscribe/post-json?u=6c7fa6feeced52775aec9d015&id=dd1484208e&c=?\",\n data: {\n EMAIL: email,\n subscribe: \"Subscribe\",\n b_6c7fa6feeced52775aec9d015_dd1484208e: \"\"\n },\n dataType: \"jsonp\",\n contentType: \"application/json; charset=utf-8\"\n });\n }\n });\n});\n\n//# sourceURL=webpack:///./CTFd/themes/core/assets/js/pages/setup.js?");
|
||||
eval("\n\n__webpack_require__(/*! ./main */ \"./CTFd/themes/core/assets/js/pages/main.js\");\n\nvar _jquery = _interopRequireDefault(__webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\"));\n\nvar _momentTimezone = _interopRequireDefault(__webpack_require__(/*! moment-timezone */ \"./node_modules/moment-timezone/index.js\"));\n\nvar _CTFd = _interopRequireDefault(__webpack_require__(/*! ../CTFd */ \"./CTFd/themes/core/assets/js/CTFd.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction switchTab(event) {\n event.preventDefault(); // Handle tab validation\n\n var valid_tab = true;\n (0, _jquery.default)(event.target).closest(\"[role=tabpanel]\").find(\"input,textarea\").each(function (i, e) {\n var $e = (0, _jquery.default)(e);\n var status = e.checkValidity();\n\n if (status === false) {\n $e.removeClass(\"input-filled-valid\");\n $e.addClass(\"input-filled-invalid\");\n valid_tab = false;\n }\n });\n\n if (valid_tab == false) {\n return;\n }\n\n var href = (0, _jquery.default)(event.target).data(\"href\");\n (0, _jquery.default)(\".nav a[href=\\\"\".concat(href, \"\\\"]\")).tab(\"show\");\n}\n\nfunction processDateTime(datetime) {\n var date_picker = (0, _jquery.default)(\"#\".concat(datetime, \"-date\"));\n var time_picker = (0, _jquery.default)(\"#\".concat(datetime, \"-time\"));\n return function (_event) {\n var unix_time = (0, _momentTimezone.default)(\"\".concat(date_picker.val(), \" \").concat(time_picker.val()), \"YYYY-MM-DD HH:mm\").utc().format(\"X\");\n (0, _jquery.default)(\"#\".concat(datetime, \"-preview\")).val(unix_time);\n };\n}\n\nfunction mlcSetup(_event) {\n var params = {\n name: (0, _jquery.default)(\"#ctf_name\").val(),\n type: \"jeopardy\",\n description: (0, _jquery.default)(\"#ctf_description\").val(),\n user_mode: (0, _jquery.default)(\"#user_mode\").val(),\n event_url: window.location.origin + _CTFd.default.config.urlRoot,\n redirect_url: window.location.origin + _CTFd.default.config.urlRoot + \"/redirect\",\n integration_setup_url: window.location.origin + _CTFd.default.config.urlRoot + \"/setup/integrations\",\n start: (0, _jquery.default)(\"#start-preview\").val(),\n end: (0, _jquery.default)(\"#end-preview\").val(),\n platform: \"CTFd\",\n state: window.STATE\n };\n var ret = [];\n\n for (var p in params) {\n ret.push(encodeURIComponent(p) + \"=\" + encodeURIComponent(params[p]));\n }\n\n window.open(\"https://www.majorleaguecyber.org/events/new?\" + ret.join(\"&\"), \"_blank\");\n}\n\n(0, _jquery.default)(function () {\n (0, _jquery.default)(\".tab-next\").click(switchTab);\n (0, _jquery.default)(\"input\").on(\"keypress\", function (e) {\n // Hook Enter button\n if (e.keyCode == 13) {\n e.preventDefault();\n (0, _jquery.default)(e.target).closest(\".tab-pane\").find(\"button[data-href]\").click();\n }\n });\n (0, _jquery.default)(\"#integration-mlc\").click(mlcSetup);\n (0, _jquery.default)(\"#start-date,#start-time\").change(processDateTime(\"start\"));\n (0, _jquery.default)(\"#end-date,#end-time\").change(processDateTime(\"end\"));\n (0, _jquery.default)(\"#config-color-picker\").on(\"input\", function (_e) {\n (0, _jquery.default)(\"#config-color-input\").val((0, _jquery.default)(this).val());\n });\n (0, _jquery.default)(\"#config-color-reset\").click(function () {\n (0, _jquery.default)(\"#config-color-input\").val(\"\");\n (0, _jquery.default)(\"#config-color-picker\").val(\"\");\n });\n window.addEventListener(\"storage\", function (event) {\n if (event.key == \"integrations\" && event.newValue) {\n var integration = JSON.parse(event.newValue);\n\n if (integration[\"name\"] == \"mlc\") {\n (0, _jquery.default)(\"#integration-mlc\").text(\"Already Configured\").attr(\"disabled\", true);\n window.focus();\n localStorage.removeItem(\"integrations\");\n }\n }\n });\n (0, _jquery.default)(\"#setup-form\").submit(function (e) {\n if ((0, _jquery.default)(\"#newsletter-checkbox\").prop(\"checked\")) {\n var email = (0, _jquery.default)(e.target).find(\"input[name=email]\").val();\n\n _jquery.default.ajax({\n type: \"POST\",\n url: \"https://ctfd.us15.list-manage.com/subscribe/post-json?u=6c7fa6feeced52775aec9d015&id=dd1484208e&c=?\",\n data: {\n EMAIL: email,\n subscribe: \"Subscribe\",\n b_6c7fa6feeced52775aec9d015_dd1484208e: \"\"\n },\n dataType: \"jsonp\",\n contentType: \"application/json; charset=utf-8\"\n });\n }\n });\n});\n\n//# sourceURL=webpack:///./CTFd/themes/core/assets/js/pages/setup.js?");
|
||||
|
||||
/***/ })
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -162,7 +162,7 @@
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
;
|
||||
eval("\n\n__webpack_require__(/*! ../main */ \"./CTFd/themes/core/assets/js/pages/main.js\");\n\n__webpack_require__(/*! ../../utils */ \"./CTFd/themes/core/assets/js/utils.js\");\n\nvar _CTFd = _interopRequireDefault(__webpack_require__(/*! ../../CTFd */ \"./CTFd/themes/core/assets/js/CTFd.js\"));\n\n__webpack_require__(/*! bootstrap/js/dist/modal */ \"./node_modules/bootstrap/js/dist/modal.js\");\n\nvar _jquery = _interopRequireDefault(__webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(0, _jquery.default)(function () {\n if (window.team_captain) {\n (0, _jquery.default)(\".edit-team\").click(function () {\n (0, _jquery.default)(\"#team-edit-modal\").modal();\n });\n (0, _jquery.default)(\".edit-captain\").click(function () {\n (0, _jquery.default)(\"#team-captain-modal\").modal();\n });\n }\n\n var form = (0, _jquery.default)(\"#team-info-form\");\n form.submit(function (e) {\n e.preventDefault();\n (0, _jquery.default)(\"#results\").empty();\n var params = (0, _jquery.default)(this).serializeJSON();\n var method = \"PATCH\";\n var url = \"/api/v1/teams/me\";\n\n _CTFd.default.fetch(url, {\n method: method,\n credentials: \"same-origin\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(params)\n }).then(function (response) {\n if (response.status === 400) {\n response.json().then(function (object) {\n if (!object.success) {\n Object.keys(object.errors).map(function (error) {\n var i = form.find(\"input[name={0}]\".format(error));\n var input = (0, _jquery.default)(i);\n input.addClass(\"input-filled-invalid\");\n input.removeClass(\"input-filled-valid\");\n var error_msg = object.errors[error];\n var alert = error_template.format(error_msg);\n (0, _jquery.default)(\"#results\").append(alert);\n });\n }\n });\n } else if (response.status === 200) {\n response.json().then(function (object) {\n if (object.success) {\n window.location.reload();\n }\n });\n }\n });\n });\n (0, _jquery.default)(\"#team-captain-form\").submit(function (e) {\n e.preventDefault();\n var params = (0, _jquery.default)(\"#team-captain-form\").serializeJSON(true);\n\n _CTFd.default.fetch(\"/api/v1/teams/me\", {\n method: \"PATCH\",\n credentials: \"same-origin\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(params)\n }).then(function (response) {\n return response.json();\n }).then(function (response) {\n if (response.success) {\n window.location.reload();\n } else {\n (0, _jquery.default)(\"#team-captain-form > #results\").empty();\n Object.keys(response.errors).forEach(function (key, index) {\n (0, _jquery.default)(\"#team-captain-form > #results\").append(ezbadge({\n type: \"error\",\n body: response.errors[key]\n }));\n var i = (0, _jquery.default)(\"#team-captain-form\").find(\"select[name={0}]\".format(key));\n var input = (0, _jquery.default)(i);\n input.addClass(\"input-filled-invalid\");\n input.removeClass(\"input-filled-valid\");\n });\n }\n });\n });\n});\n\n//# sourceURL=webpack:///./CTFd/themes/core/assets/js/pages/teams/private.js?");
|
||||
eval("\n\n__webpack_require__(/*! ../main */ \"./CTFd/themes/core/assets/js/pages/main.js\");\n\n__webpack_require__(/*! ../../utils */ \"./CTFd/themes/core/assets/js/utils.js\");\n\nvar _CTFd = _interopRequireDefault(__webpack_require__(/*! ../../CTFd */ \"./CTFd/themes/core/assets/js/CTFd.js\"));\n\n__webpack_require__(/*! bootstrap/js/dist/modal */ \"./node_modules/bootstrap/js/dist/modal.js\");\n\nvar _jquery = _interopRequireDefault(__webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\"));\n\nvar _ezq = __webpack_require__(/*! ../../ezq */ \"./CTFd/themes/core/assets/js/ezq.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(0, _jquery.default)(function () {\n if (window.team_captain) {\n (0, _jquery.default)(\".edit-team\").click(function () {\n (0, _jquery.default)(\"#team-edit-modal\").modal();\n });\n (0, _jquery.default)(\".edit-captain\").click(function () {\n (0, _jquery.default)(\"#team-captain-modal\").modal();\n });\n }\n\n var form = (0, _jquery.default)(\"#team-info-form\");\n form.submit(function (e) {\n e.preventDefault();\n (0, _jquery.default)(\"#results\").empty();\n var params = (0, _jquery.default)(this).serializeJSON();\n var method = \"PATCH\";\n var url = \"/api/v1/teams/me\";\n\n _CTFd.default.fetch(url, {\n method: method,\n credentials: \"same-origin\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(params)\n }).then(function (response) {\n if (response.status === 400) {\n response.json().then(function (object) {\n if (!object.success) {\n var error_template = '<div class=\"alert alert-danger alert-dismissable\" role=\"alert\">\\n' + ' <span class=\"sr-only\">Error:</span>\\n' + \" {0}\\n\" + ' <button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-label=\"Close\"><span aria-hidden=\"true\">×</span></button>\\n' + \"</div>\";\n Object.keys(object.errors).map(function (error) {\n var i = form.find(\"input[name={0}]\".format(error));\n var input = (0, _jquery.default)(i);\n input.addClass(\"input-filled-invalid\");\n input.removeClass(\"input-filled-valid\");\n var error_msg = object.errors[error];\n var alert = error_template.format(error_msg);\n (0, _jquery.default)(\"#results\").append(alert);\n });\n }\n });\n } else if (response.status === 200) {\n response.json().then(function (object) {\n if (object.success) {\n window.location.reload();\n }\n });\n }\n });\n });\n (0, _jquery.default)(\"#team-captain-form\").submit(function (e) {\n e.preventDefault();\n var params = (0, _jquery.default)(\"#team-captain-form\").serializeJSON(true);\n\n _CTFd.default.fetch(\"/api/v1/teams/me\", {\n method: \"PATCH\",\n credentials: \"same-origin\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(params)\n }).then(function (response) {\n return response.json();\n }).then(function (response) {\n if (response.success) {\n window.location.reload();\n } else {\n (0, _jquery.default)(\"#team-captain-form > #results\").empty();\n Object.keys(response.errors).forEach(function (key, _index) {\n (0, _jquery.default)(\"#team-captain-form > #results\").append((0, _ezq.ezBadge)({\n type: \"error\",\n body: response.errors[key]\n }));\n var i = (0, _jquery.default)(\"#team-captain-form\").find(\"select[name={0}]\".format(key));\n var input = (0, _jquery.default)(i);\n input.addClass(\"input-filled-invalid\");\n input.removeClass(\"input-filled-valid\");\n });\n }\n });\n });\n});\n\n//# sourceURL=webpack:///./CTFd/themes/core/assets/js/pages/teams/private.js?");
|
||||
|
||||
/***/ })
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user