mirror of
https://github.com/aljazceru/CTFd.git
synced 2026-02-06 14:54:21 +01:00
Added side nav pills to config page (#171)
This commit is contained in:
committed by
Kevin Chung
parent
62edea1c98
commit
4f4d6cae22
@@ -4,300 +4,318 @@
|
||||
<div class="row">
|
||||
<br>
|
||||
<h1>Config</h1>
|
||||
<div class="col-md-8 col-md-offset-2">
|
||||
{% for error in errors %}
|
||||
<div class="alert alert-danger alert-dismissable" role="alert">
|
||||
<span class="sr-only">Error:</span>
|
||||
{{ error }}
|
||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span
|
||||
aria-hidden="true">×</span></button>
|
||||
</div>
|
||||
{% endfor %}
|
||||
<form method="POST">
|
||||
<form method="POST">
|
||||
<div class="col-md-2 col-md-offset-2">
|
||||
<ul class="nav nav-pills nav-stacked">
|
||||
<li role="presentation" class="active">
|
||||
<a href="#appearance-section" aria-controls="appearance-section" role="tab" data-toggle="tab">Appearance</a>
|
||||
</li>
|
||||
<li role="presentation">
|
||||
<a href="#accounts-section" aria-controls="accounts-section" role="tab" data-toggle="tab">Accounts</a>
|
||||
</li>
|
||||
<li role="presentation">
|
||||
<a href="#email-section" aria-controls="email-section" role="tab" data-toggle="tab">Email</a>
|
||||
</li>
|
||||
<li role="presentation">
|
||||
<a href="#ctftime-section" aria-controls="ctftime-section" role="tab" data-toggle="tab">CTF Time</a>
|
||||
</li>
|
||||
</ul>
|
||||
<br><br>
|
||||
<button type="submit" id="submit" tabindex="5" class="btn btn-md btn-primary btn-theme btn-outlined pull-left">Update</button>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
{% for error in errors %}
|
||||
<div class="alert alert-danger alert-dismissable" role="alert">
|
||||
<span class="sr-only">Error:</span>
|
||||
{{ error }}
|
||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span
|
||||
aria-hidden="true">×</span></button>
|
||||
</div>
|
||||
{% endfor %}
|
||||
<input name='nonce' type='hidden' value="{{ nonce }}">
|
||||
|
||||
<div class="form-group">
|
||||
<label for="ctf_name">CTF Name:</label>
|
||||
<input class="form-control" id='ctf_name' name='ctf_name' type='text' placeholder="CTF Name" {% if ctf_name is defined and ctf_name != None %}value="{{ ctf_name }}"{% endif %}>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="ctf_theme">Theme:</label>
|
||||
<select class="form-control" id="ctf_theme" name="ctf_theme">
|
||||
<option>{{ ctf_theme_config }}</option>
|
||||
{% for theme in themes %}
|
||||
<option>{{ theme }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="max_tries">Maximum Attempts Per Challenge (0 to disable):</label>
|
||||
<input class="form-control" id='max_tries' name='max_tries' type='text' placeholder="0" {% if max_tries is defined and max_tries != None %}value="{{ max_tries }}"{% endif %}>
|
||||
</div>
|
||||
|
||||
|
||||
<ul class="nav nav-tabs" role="tablist">
|
||||
<li role="presentation" class="active">
|
||||
<a href="#mailserver" aria-controls="mailserver" role="tab" data-toggle="tab">Mail Server</a>
|
||||
</li>
|
||||
<li role="presentation">
|
||||
<a href="#mailgun" aria-controls="mailgun" role="tab" data-toggle="tab">Mailgun</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="start">Mail From Address:</label>
|
||||
<input class="form-control" id='mailfrom_addr' name='mailfrom_addr' type='text'
|
||||
placeholder="Email address used to send email"
|
||||
{% if mailfrom_addr is defined and mailfrom_addr != None %}value="{{ mailfrom_addr }}"{% endif %}>
|
||||
</div>
|
||||
|
||||
<div class="tab-content">
|
||||
<div role="tabpanel" class="tab-pane active" id="mailserver">
|
||||
|
||||
<div role="tabpanel" class="tab-pane active" id="appearance-section">
|
||||
<div class="form-group">
|
||||
<label for="start">Mail Server Address:</label>
|
||||
<input class="form-control" id='mail_server' name='mail_server' type='text'
|
||||
placeholder="Mail Server Address"
|
||||
{% if mail_server is defined and mail_server != None %}value="{{ mail_server }}"{% endif %}>
|
||||
<label for="ctf_name">CTF Name:</label>
|
||||
<input class="form-control" id='ctf_name' name='ctf_name' type='text' placeholder="CTF Name" {% if ctf_name is defined and ctf_name != None %}value="{{ ctf_name }}"{% endif %}>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="start">Mail Server Port:</label>
|
||||
<input class="form-control" id='mail_port' name='mail_port' type='text'
|
||||
placeholder="Mail Server Port"
|
||||
{% if mail_port is defined and mail_port != None %}value="{{ mail_port }}"{% endif %}>
|
||||
<label for="ctf_theme">Theme:</label>
|
||||
<select class="form-control" id="ctf_theme" name="ctf_theme">
|
||||
<option>{{ ctf_theme_config }}</option>
|
||||
{% for theme in themes %}
|
||||
<option>{{ theme }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div role="tabpanel" class="tab-pane" id="accounts-section">
|
||||
<div class="form-group">
|
||||
<label for="start">Username:</label>
|
||||
<input class="form-control" id='mail_username' name='mail_username' type='text'
|
||||
placeholder="Username"
|
||||
{% if mail_username is defined and mail_username != None %}value="{{ mail_username }}"{% endif %}>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="start">Password:</label>
|
||||
<input class="form-control" id='mail_password' name='mail_password' type='password'
|
||||
placeholder="Password"
|
||||
{% if mail_password is defined and mail_password != None %}value="{{ mail_password }}"{% endif %}>
|
||||
<label for="max_tries">Maximum Attempts Per Challenge (0 to disable):</label>
|
||||
<input class="form-control" id='max_tries' name='max_tries' type='text' placeholder="0" {% if max_tries is defined and max_tries != None %}value="{{ max_tries }}"{% endif %}>
|
||||
</div>
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input id="mail_ssl" name="mail_ssl" type="checkbox" {% if mail_ssl %}checked{% endif %}>
|
||||
SSL
|
||||
<input id="verify_emails" name="verify_emails" type="checkbox" {% if verify_emails %}checked{% endif %}>
|
||||
Only allow users with verified emails
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input id="mail_tls" name="mail_tls" type="checkbox" {% if mail_tls %}checked{% endif %}>
|
||||
TLS
|
||||
<input id="view_challenges_unregistered" name="view_challenges_unregistered" type="checkbox" {% if view_challenges_unregistered %}checked{% endif %}>
|
||||
Unregistered users can view challenges
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input id="view_scoreboard_if_authed" name="view_scoreboard_if_authed" type="checkbox"
|
||||
{% if view_scoreboard_if_authed %}checked{% endif %}>
|
||||
Scoreboard can only be viewed by logged in users
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input id="prevent_registration" name="prevent_registration" type="checkbox" {% if prevent_registration %}checked{% endif %}>
|
||||
Prevent public registration
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input id="prevent_name_change" name="prevent_name_change" type="checkbox" {% if prevent_name_change %}checked{% endif %}>
|
||||
Prevent team name changes
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div role="tabpanel" class="tab-pane" id="email-section">
|
||||
<ul class="nav nav-tabs" role="tablist">
|
||||
<li role="presentation" class="active">
|
||||
<a href="#mailserver" aria-controls="mailserver" role="tab" data-toggle="tab">Mail Server</a>
|
||||
</li>
|
||||
<li role="presentation">
|
||||
<a href="#mailgun" aria-controls="mailgun" role="tab" data-toggle="tab">Mailgun</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="start">Mail From Address:</label>
|
||||
<input class="form-control" id='mailfrom_addr' name='mailfrom_addr' type='text'
|
||||
placeholder="Email address used to send email"
|
||||
{% if mailfrom_addr is defined and mailfrom_addr != None %}value="{{ mailfrom_addr }}"{% endif %}>
|
||||
</div>
|
||||
|
||||
<div class="tab-content">
|
||||
<div role="tabpanel" class="tab-pane active" id="mailserver">
|
||||
|
||||
<div class="form-group">
|
||||
<label for="start">Mail Server Address:</label>
|
||||
<input class="form-control" id='mail_server' name='mail_server' type='text'
|
||||
placeholder="Mail Server Address"
|
||||
{% if mail_server is defined and mail_server != None %}value="{{ mail_server }}"{% endif %}>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="start">Mail Server Port:</label>
|
||||
<input class="form-control" id='mail_port' name='mail_port' type='text'
|
||||
placeholder="Mail Server Port"
|
||||
{% if mail_port is defined and mail_port != None %}value="{{ mail_port }}"{% endif %}>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="start">Username:</label>
|
||||
<input class="form-control" id='mail_username' name='mail_username' type='text'
|
||||
placeholder="Username"
|
||||
{% if mail_username is defined and mail_username != None %}value="{{ mail_username }}"{% endif %}>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="start">Password:</label>
|
||||
<input class="form-control" id='mail_password' name='mail_password' type='password'
|
||||
placeholder="Password"
|
||||
{% if mail_password is defined and mail_password != None %}value="{{ mail_password }}"{% endif %}>
|
||||
</div>
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input id="mail_ssl" name="mail_ssl" type="checkbox" {% if mail_ssl %}checked{% endif %}>
|
||||
SSL
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input id="mail_tls" name="mail_tls" type="checkbox" {% if mail_tls %}checked{% endif %}>
|
||||
TLS
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div role="tabpanel" class="tab-pane" id="mailgun">
|
||||
|
||||
<div class="form-group">
|
||||
<label for="start">Mailgun API Base URL:</label>
|
||||
<input class="form-control" id='mg_base_url' name='mg_base_url' type='text'
|
||||
placeholder="Mailgun API Base URL"
|
||||
{% if mg_base_url is defined and mg_base_url != None %}value="{{ mg_base_url }}"{% endif %}>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="start">Mailgun API Key:</label>
|
||||
<input class="form-control" id='mg_api_key' name='mg_api_key' type='text'
|
||||
placeholder="Mailgun API Key"
|
||||
{% if mg_api_key is defined and mg_api_key != None %}value="{{ mg_api_key }}"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div role="tabpanel" class="tab-pane" id="ctftime-section">
|
||||
<div>
|
||||
<ul class="nav nav-tabs" role="tablist">
|
||||
<li role="presentation" class="active">
|
||||
<a href="#start-date" aria-controls="start-date" role="tab" data-toggle="tab">Start Time</a>
|
||||
</li>
|
||||
<li role="presentation">
|
||||
<a href="#end-date" aria-controls="end-date" role="tab" data-toggle="tab">End Time</a>
|
||||
</li>
|
||||
<sub style="float:right;">* All time fields required</sub>
|
||||
</ul>
|
||||
|
||||
<div class="tab-content">
|
||||
<div role="tabpanel" class="tab-pane active" id="start-date">
|
||||
<div class="row" id="start-date">
|
||||
<div class="form-group col-xs-2">
|
||||
<label for="start-month">Month:</label>
|
||||
<input class="form-control start-date" id='start-month' name='start-month' min="1" max="12" type='number'>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-xs-2">
|
||||
<label for="start-day">Day:</label>
|
||||
<input class="form-control start-date" id='start-day' name='start-day' min="1" max="31" type='number'>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-xs-2">
|
||||
<label for="start-year">Year:</label>
|
||||
<input class="form-control start-date" id='start-year' name='start-year' type='number'>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-xs-2">
|
||||
<label for="start-hour">Hour:</label>
|
||||
<input class="form-control start-date" id='start-hour' name='start-hour' min="0" max="23" type='number'>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-xs-2">
|
||||
<label for="start-minute">Minute:</label>
|
||||
<input class="form-control start-date" id='start-minute' name='start-minute' min="0" max="59" type='number'>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-xs-4">
|
||||
<label for="start-timezone">Timezone:</label>
|
||||
<select class="form-control start-date" id="start-timezone">
|
||||
<script>
|
||||
document.write('<option>' + moment.tz.guess() + '</option>');
|
||||
var tz_names = moment.tz.names();
|
||||
for (var i = 0; i < tz_names.length; i++) {
|
||||
document.write('<option>' + tz_names[i] + '</option>');
|
||||
}
|
||||
</script>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-xs-12">
|
||||
<label for="start-local">Local Time:</label>
|
||||
<input class="form-control" id='start-local' type='text'
|
||||
placeholder="Start Date (Local Time)" readonly>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-xs-12">
|
||||
<label for="start-zonetime">Timezone Time:</label>
|
||||
<input class="form-control" id='start-zonetime' type='text'
|
||||
placeholder="Start Date (Timezone Time)" readonly>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-xs-12">
|
||||
<label for="start">UTC Timestamp:</label>
|
||||
<input class="form-control" id='start' name='start' type='text'
|
||||
placeholder="Start Date (UTC timestamp)"
|
||||
{% if start is defined and start != None %}value="{{ start }}"{% endif %} readonly>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div role="tabpanel" class="tab-pane" id="end-date">
|
||||
<div class="row" id="end-date">
|
||||
<div class="form-group col-xs-2">
|
||||
<label for="end-month">Month:</label>
|
||||
<input class="form-control end-date" id='end-month' name='end-month' min="1" max="12"
|
||||
type='number'>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-xs-2">
|
||||
<label for="end-day">Day:</label>
|
||||
<input class="form-control end-date" id='end-day' name='end-day' min="1" max="31"
|
||||
type='number'>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-xs-2">
|
||||
<label for="end-year">Year:</label>
|
||||
<input class="form-control end-date" id='end-year' name='end-year' type='number'>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-xs-2">
|
||||
<label for="end-hour">Hour:</label>
|
||||
<input class="form-control end-date" id='end-hour' name='end-hour' min="0" max="23"
|
||||
type='number'>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-xs-2">
|
||||
<label for="end-minute">Minute:</label>
|
||||
<input class="form-control end-date" id='end-minute' name='end-minute' min="0"
|
||||
max="59" type='number'>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-xs-4">
|
||||
<label for="end-timezone">Timezone:</label>
|
||||
<select class="form-control end-date" id="end-timezone">
|
||||
<script>
|
||||
document.write('<option>' + moment.tz.guess() + '</option>');
|
||||
var tz_names = moment.tz.names();
|
||||
for (var i = 0; i < tz_names.length; i++) {
|
||||
document.write('<option>' + tz_names[i] + '</option>');
|
||||
}
|
||||
</script>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-xs-12">
|
||||
<label for="end-local">Local Time:</label>
|
||||
<input class="form-control" id='end-local' type='text'
|
||||
placeholder="End Date (Local Time)" readonly>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-xs-12">
|
||||
<label for="end-zonetime">Timezone Time:</label>
|
||||
<input class="form-control" id='end-zonetime' type='text'
|
||||
placeholder="End Date (Timezone Time)" readonly>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-xs-12">
|
||||
<label for="end">UTC Timestamp:</label>
|
||||
<input class="form-control" id='end' name='end' type='text'
|
||||
placeholder="End Date (UTC timestamp)"
|
||||
{% if end is defined and end != None %}value="{{ end }}"{% endif %} readonly>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input id="view_after_ctf" name="view_after_ctf" type="checkbox" {% if view_after_ctf %}checked{% endif %}>
|
||||
Allow challenges to be viewed after CTF end
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div role="tabpanel" class="tab-pane" id="mailgun">
|
||||
|
||||
<div class="form-group">
|
||||
<label for="start">Mailgun API Base URL:</label>
|
||||
<input class="form-control" id='mg_base_url' name='mg_base_url' type='text'
|
||||
placeholder="Mailgun API Base URL"
|
||||
{% if mg_base_url is defined and mg_base_url != None %}value="{{ mg_base_url }}"{% endif %}>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="start">Mailgun API Key:</label>
|
||||
<input class="form-control" id='mg_api_key' name='mg_api_key' type='text'
|
||||
placeholder="Mailgun API Key"
|
||||
{% if mg_api_key is defined and mg_api_key != None %}value="{{ mg_api_key }}"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<br>
|
||||
|
||||
<div>
|
||||
<ul class="nav nav-tabs" role="tablist">
|
||||
<li role="presentation" class="active">
|
||||
<a href="#start-date" aria-controls="start-date" role="tab" data-toggle="tab">Start Time</a>
|
||||
</li>
|
||||
<li role="presentation">
|
||||
<a href="#end-date" aria-controls="end-date" role="tab" data-toggle="tab">End Time</a>
|
||||
</li>
|
||||
<sub style="float:right;">* All time fields required</sub>
|
||||
</ul>
|
||||
|
||||
<div class="tab-content">
|
||||
<div role="tabpanel" class="tab-pane active" id="start-date">
|
||||
<div class="row" id="start-date">
|
||||
<div class="form-group col-xs-2">
|
||||
<label for="start-month">Month:</label>
|
||||
<input class="form-control start-date" id='start-month' name='start-month' min="1" max="12" type='number'>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-xs-2">
|
||||
<label for="start-day">Day:</label>
|
||||
<input class="form-control start-date" id='start-day' name='start-day' min="1" max="31" type='number'>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-xs-2">
|
||||
<label for="start-year">Year:</label>
|
||||
<input class="form-control start-date" id='start-year' name='start-year' type='number'>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-xs-2">
|
||||
<label for="start-hour">Hour:</label>
|
||||
<input class="form-control start-date" id='start-hour' name='start-hour' min="0" max="23" type='number'>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-xs-2">
|
||||
<label for="start-minute">Minute:</label>
|
||||
<input class="form-control start-date" id='start-minute' name='start-minute' min="0" max="59" type='number'>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-xs-4">
|
||||
<label for="start-timezone">Timezone:</label>
|
||||
<select class="form-control start-date" id="start-timezone">
|
||||
<script>
|
||||
document.write('<option>' + moment.tz.guess() + '</option>');
|
||||
var tz_names = moment.tz.names();
|
||||
for (var i = 0; i < tz_names.length; i++) {
|
||||
document.write('<option>' + tz_names[i] + '</option>');
|
||||
}
|
||||
</script>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-xs-12">
|
||||
<label for="start-local">Local Time:</label>
|
||||
<input class="form-control" id='start-local' type='text'
|
||||
placeholder="Start Date (Local Time)" readonly>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-xs-12">
|
||||
<label for="start-zonetime">Timezone Time:</label>
|
||||
<input class="form-control" id='start-zonetime' type='text'
|
||||
placeholder="Start Date (Timezone Time)" readonly>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-xs-12">
|
||||
<label for="start">UTC Timestamp:</label>
|
||||
<input class="form-control" id='start' name='start' type='text'
|
||||
placeholder="Start Date (UTC timestamp)"
|
||||
{% if start is defined and start != None %}value="{{ start }}"{% endif %} readonly>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div role="tabpanel" class="tab-pane" id="end-date">
|
||||
<div class="row" id="end-date">
|
||||
<div class="form-group col-xs-2">
|
||||
<label for="end-month">Month:</label>
|
||||
<input class="form-control end-date" id='end-month' name='end-month' min="1" max="12"
|
||||
type='number'>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-xs-2">
|
||||
<label for="end-day">Day:</label>
|
||||
<input class="form-control end-date" id='end-day' name='end-day' min="1" max="31"
|
||||
type='number'>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-xs-2">
|
||||
<label for="end-year">Year:</label>
|
||||
<input class="form-control end-date" id='end-year' name='end-year' type='number'>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-xs-2">
|
||||
<label for="end-hour">Hour:</label>
|
||||
<input class="form-control end-date" id='end-hour' name='end-hour' min="0" max="23"
|
||||
type='number'>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-xs-2">
|
||||
<label for="end-minute">Minute:</label>
|
||||
<input class="form-control end-date" id='end-minute' name='end-minute' min="0"
|
||||
max="59" type='number'>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-xs-4">
|
||||
<label for="end-timezone">Timezone:</label>
|
||||
<select class="form-control end-date" id="end-timezone">
|
||||
<script>
|
||||
document.write('<option>' + moment.tz.guess() + '</option>');
|
||||
var tz_names = moment.tz.names();
|
||||
for (var i = 0; i < tz_names.length; i++) {
|
||||
document.write('<option>' + tz_names[i] + '</option>');
|
||||
}
|
||||
</script>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-xs-12">
|
||||
<label for="end-local">Local Time:</label>
|
||||
<input class="form-control" id='end-local' type='text'
|
||||
placeholder="End Date (Local Time)" readonly>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-xs-12">
|
||||
<label for="end-zonetime">Timezone Time:</label>
|
||||
<input class="form-control" id='end-zonetime' type='text'
|
||||
placeholder="End Date (Timezone Time)" readonly>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-xs-12">
|
||||
<label for="end">UTC Timestamp:</label>
|
||||
<input class="form-control" id='end' name='end' type='text'
|
||||
placeholder="End Date (UTC timestamp)"
|
||||
{% if end is defined and end != None %}value="{{ end }}"{% endif %} readonly>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input id="view_after_ctf" name="view_after_ctf" type="checkbox" {% if view_after_ctf %}checked{% endif %}>
|
||||
Allow challenges to be viewed after CTF end
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input id="verify_emails" name="verify_emails" type="checkbox" {% if verify_emails %}checked{% endif %}>
|
||||
Only allow users with verified emails
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input id="view_challenges_unregistered" name="view_challenges_unregistered" type="checkbox" {% if view_challenges_unregistered %}checked{% endif %}>
|
||||
Unregistered users can view challenges
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input id="view_scoreboard_if_authed" name="view_scoreboard_if_authed" type="checkbox"
|
||||
{% if view_scoreboard_if_authed %}checked{% endif %}>
|
||||
Scoreboard can only be viewed by logged in users
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input id="prevent_registration" name="prevent_registration" type="checkbox" {% if prevent_registration %}checked{% endif %}>
|
||||
Prevent public registration
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input id="prevent_name_change" name="prevent_name_change" type="checkbox" {% if prevent_name_change %}checked{% endif %}>
|
||||
Prevent team name changes
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<button type="submit" id="submit" tabindex="5" class="btn btn-md btn-primary btn-theme btn-outlined pull-right">Update</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user