Merge immortal/main into audit/securite-maintenabilite-standards
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 148 KiB |
@@ -96,6 +96,7 @@ a:hover { color: var(--primary-dark); }
|
|||||||
}
|
}
|
||||||
|
|
||||||
.logo i { color: var(--primary); font-size: 1.6rem; }
|
.logo i { color: var(--primary); font-size: 1.6rem; }
|
||||||
|
.logo-img { height: 40px; width: auto; }
|
||||||
|
|
||||||
.user-badge {
|
.user-badge {
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -621,6 +622,12 @@ a:hover { color: var(--primary-dark); }
|
|||||||
margin-bottom: 12px;
|
margin-bottom: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.auth-logo-img {
|
||||||
|
height: 80px;
|
||||||
|
width: auto;
|
||||||
|
margin-bottom: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
.auth-header h2 {
|
.auth-header h2 {
|
||||||
font-size: 1.6rem;
|
font-size: 1.6rem;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 148 KiB |
@@ -1,5 +1,5 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% block title %}{{ _('400 Bad Request') }} - TryoutPro{% endblock %}
|
{% block title %}{{ _('400 Bad Request') }} - UdeS team manager{% endblock %}
|
||||||
{% block page_title %}{{ _('Bad Request') }}{% endblock %}
|
{% block page_title %}{{ _('Bad Request') }}{% endblock %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="error-container">
|
<div class="error-container">
|
||||||
@@ -12,4 +12,4 @@
|
|||||||
<i class="fas fa-arrow-left"></i> {{ _('Go Back') }}
|
<i class="fas fa-arrow-left"></i> {{ _('Go Back') }}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% block title %}{{ _('403 Forbidden') }} - TryoutPro{% endblock %}
|
{% block title %}{{ _('403 Forbidden') }} - UdeS team manager{% endblock %}
|
||||||
{% block page_title %}{{ _('Access Denied') }}{% endblock %}
|
{% block page_title %}{{ _('Access Denied') }}{% endblock %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="error-container">
|
<div class="error-container">
|
||||||
@@ -12,4 +12,4 @@
|
|||||||
<i class="fas fa-arrow-left"></i> {{ _('Go Back') }}
|
<i class="fas fa-arrow-left"></i> {{ _('Go Back') }}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% block title %}{{ _('404 Not Found') }} - TryoutPro{% endblock %}
|
{% block title %}{{ _('404 Not Found') }} - UdeS team manager{% endblock %}
|
||||||
{% block page_title %}{{ _('Page Not Found') }}{% endblock %}
|
{% block page_title %}{{ _('Page Not Found') }}{% endblock %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="error-container">
|
<div class="error-container">
|
||||||
@@ -12,4 +12,4 @@
|
|||||||
<i class="fas fa-home"></i> {{ _('Return Home') }}
|
<i class="fas fa-home"></i> {{ _('Return Home') }}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% block title %}{{ _('429 Too Many Requests') }} - TryoutPro{% endblock %}
|
{% block title %}{{ _('429 Too Many Requests') }} - UdeS team manager{% endblock %}
|
||||||
{% block page_title %}{{ _('Rate Limit Exceeded') }}{% endblock %}
|
{% block page_title %}{{ _('Rate Limit Exceeded') }}{% endblock %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="error-container">
|
<div class="error-container">
|
||||||
@@ -12,4 +12,4 @@
|
|||||||
<i class="fas fa-arrow-left"></i> {{ _('Go Back') }}
|
<i class="fas fa-arrow-left"></i> {{ _('Go Back') }}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% block title %}{{ _('500 Server Error') }} - TryoutPro{% endblock %}
|
{% block title %}{{ _('500 Server Error') }} - UdeS team manager{% endblock %}
|
||||||
{% block page_title %}{{ _('Internal Server Error') }}{% endblock %}
|
{% block page_title %}{{ _('Internal Server Error') }}{% endblock %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="error-container">
|
<div class="error-container">
|
||||||
@@ -18,4 +18,4 @@
|
|||||||
<i class="fas fa-redo-alt"></i> {{ _('Try Again') }}
|
<i class="fas fa-redo-alt"></i> {{ _('Try Again') }}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>{% block title %}Team Tryout Management{% endblock %}</title>
|
<title>{% block title %}UdeS team manager{% endblock %}</title>
|
||||||
{# Subresource integrity (QUA-004). Without it, whoever controls the CDN
|
{# Subresource integrity (QUA-004). Without it, whoever controls the CDN
|
||||||
controls what runs on every page of this site — and the CSP names these
|
controls what runs on every page of this site — and the CSP names these
|
||||||
hosts as allowed, so it would not object.
|
hosts as allowed, so it would not object.
|
||||||
@@ -28,8 +28,8 @@
|
|||||||
<nav class="sidebar" id="sidebar">
|
<nav class="sidebar" id="sidebar">
|
||||||
<div class="sidebar-header">
|
<div class="sidebar-header">
|
||||||
<div class="logo">
|
<div class="logo">
|
||||||
<i class="fas fa-trophy"></i>
|
<img src="{{ url_for('static', filename='images/UdeS_logo.png') }}" alt="UdeS Logo" class="logo-img">
|
||||||
<span>TryoutPro</span>
|
<span>UdeS team manager</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="user-badge">
|
<div class="user-badge">
|
||||||
<div class="user-avatar">
|
<div class="user-avatar">
|
||||||
@@ -100,12 +100,6 @@
|
|||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if current_user.role == 'coach' %}
|
{% if current_user.role == 'coach' %}
|
||||||
<li>
|
|
||||||
<a href="{{ url_for('users.manage_coach_availability') }}" class="{% if request.endpoint == 'users.manage_coach_availability' %}active{% endif %}">
|
|
||||||
<i class="fas fa-clock"></i>
|
|
||||||
<span>{{ _('Availability') }}</span>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
<li>
|
||||||
<a href="{{ url_for('users.notes_dashboard') }}" class="{% if request.endpoint == 'users.notes_dashboard' or request.endpoint == 'users.manage_team_notes' or request.endpoint == 'users.manage_personal_notes' %}active{% endif %}">
|
<a href="{{ url_for('users.notes_dashboard') }}" class="{% if request.endpoint == 'users.notes_dashboard' or request.endpoint == 'users.manage_team_notes' or request.endpoint == 'users.manage_personal_notes' %}active{% endif %}">
|
||||||
<i class="fas fa-sticky-note"></i>
|
<i class="fas fa-sticky-note"></i>
|
||||||
@@ -194,9 +188,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="auth-container">
|
<div class="auth-container">
|
||||||
<div class="auth-header">
|
<div class="auth-header">
|
||||||
<i class="fas fa-trophy"></i>
|
<img src="{{ url_for('static', filename='images/UdeS_logo.png') }}" alt="UdeS Logo" class="auth-logo-img">
|
||||||
<h2>TryoutPro</h2>
|
<h2>UdeS team manager</h2>
|
||||||
<p>{{ _('Team Tryout Management System') }}</p>
|
<p>{{ _('UdeS team manager') }}</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="auth-language">
|
<div class="auth-language">
|
||||||
{% include "layouts/_language_switcher.html" %}
|
{% include "layouts/_language_switcher.html" %}
|
||||||
@@ -223,4 +217,4 @@
|
|||||||
<script src="{{ url_for('static', filename='js/main.js') }}"></script>
|
<script src="{{ url_for('static', filename='js/main.js') }}"></script>
|
||||||
{% block scripts %}{% endblock %}
|
{% block scripts %}{% endblock %}
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
{# Page Header Macro - renders title and breadcrumb #}
|
{# Page Header Macro - renders title and breadcrumb #}
|
||||||
{% macro page_header(title, breadcrumb) %}
|
{% macro page_header(title, breadcrumb) %}
|
||||||
{% block title %}{{ title }} - TryoutPro{% endblock %}
|
{% block title %}{{ title }} - UdeS team manager{% endblock %}
|
||||||
{% block page_title %}{{ title }}{% endblock %}
|
{% block page_title %}{{ title }}{% endblock %}
|
||||||
{% block breadcrumb %}<span class="breadcrumb">{{ breadcrumb }}</span>{% endblock %}
|
{% block breadcrumb %}<span class="breadcrumb">{{ breadcrumb }}</span>{% endblock %}
|
||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% block title %}{{ _('Add Personal Note') }} - TryoutPro{% endblock %}
|
{% block title %}{{ _('Add Personal Note') }} - UdeS team manager{% endblock %}
|
||||||
{% block page_title %}{{ _('Add Personal Note') }}{% endblock %}
|
{% block page_title %}{{ _('Add Personal Note') }}{% endblock %}
|
||||||
{% block breadcrumb %}
|
{% block breadcrumb %}
|
||||||
<span class="breadcrumb">
|
<span class="breadcrumb">
|
||||||
@@ -149,4 +149,4 @@
|
|||||||
font-style: italic;
|
font-style: italic;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% block title %}{{ _('Calendar') }} - TryoutPro{% endblock %}
|
{% block title %}{{ _('Calendar') }} - UdeS team manager{% endblock %}
|
||||||
{% block page_title %}{{ _('Calendar') }}{% endblock %}
|
{% block page_title %}{{ _('Calendar') }}{% endblock %}
|
||||||
{% block breadcrumb %}<span class="breadcrumb">Home / Calendar</span>{% endblock %}
|
{% block breadcrumb %}<span class="breadcrumb">Home / Calendar</span>{% endblock %}
|
||||||
|
|
||||||
@@ -459,4 +459,4 @@ registerActions({
|
|||||||
'hide-event-modal': hideEventModal,
|
'hide-event-modal': hideEventModal,
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% block title %}{{ _('Manage Availability') }} - TryoutPro{% endblock %}
|
{% block title %}{{ _('Manage Availability') }} - UdeS team manager{% endblock %}
|
||||||
{% block page_title %}{{ _('Manage Availability') }}{% endblock %}
|
{% block page_title %}{{ _('Manage Availability') }}{% endblock %}
|
||||||
{% block breadcrumb %}<span class="breadcrumb">Home / Coach Availability</span>{% endblock %}
|
{% block breadcrumb %}<span class="breadcrumb">Home / Coach Availability</span>{% endblock %}
|
||||||
|
|
||||||
@@ -15,6 +15,9 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-actions mt-4">
|
<div class="form-actions mt-4">
|
||||||
|
<button type="button" class="btn btn-primary" data-action="save-availability">
|
||||||
|
<i class="fas fa-save"></i> {{ _('Save Availability') }}
|
||||||
|
</button>
|
||||||
<button type="button" class="btn btn-secondary" data-action="clear-availability">
|
<button type="button" class="btn btn-secondary" data-action="clear-availability">
|
||||||
<i class="fas fa-trash"></i> {{ _('Clear All') }}
|
<i class="fas fa-trash"></i> {{ _('Clear All') }}
|
||||||
</button>
|
</button>
|
||||||
@@ -170,13 +173,18 @@ function saveAvailability() {
|
|||||||
|
|
||||||
fetch('{{ url_for("users.manage_coach_availability") }}', {
|
fetch('{{ url_for("users.manage_coach_availability") }}', {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: { 'Content-Type': 'application/json' },
|
headers: {
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
'X-CSRFToken': '{{ csrf_token() }}'
|
||||||
|
},
|
||||||
body: JSON.stringify({ slots: slots })
|
body: JSON.stringify({ slots: slots })
|
||||||
})
|
})
|
||||||
.then(response => response.json())
|
.then(response => response.json())
|
||||||
.then(data => {
|
.then(data => {
|
||||||
if (data.success) {
|
if (data.success) {
|
||||||
flash('Availability saved!', 'success');
|
flash('Availability saved!', 'success');
|
||||||
|
} else {
|
||||||
|
flash(data.error || 'Error saving availability.', 'danger');
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(function(error) {
|
.catch(function(error) {
|
||||||
@@ -190,7 +198,10 @@ function clearAllAvailability() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
fetch('{{ url_for("users.clear_coach_availability") }}', { method: 'POST' })
|
fetch('{{ url_for("users.clear_coach_availability") }}', {
|
||||||
|
method: 'POST',
|
||||||
|
headers: { 'X-CSRFToken': '{{ csrf_token() }}' }
|
||||||
|
})
|
||||||
.then(response => response.json())
|
.then(response => response.json())
|
||||||
.then(data => {
|
.then(data => {
|
||||||
if (data.success) {
|
if (data.success) {
|
||||||
@@ -222,8 +233,9 @@ document.addEventListener('click', function(e) {
|
|||||||
// dispatched by the delegated listener in main.js. This replaces inline
|
// dispatched by the delegated listener in main.js. This replaces inline
|
||||||
// onclick attributes, which no CSP nonce is able to authorise.
|
// onclick attributes, which no CSP nonce is able to authorise.
|
||||||
registerActions({
|
registerActions({
|
||||||
|
'save-availability': saveAvailability,
|
||||||
'clear-availability': clearAllAvailability,
|
'clear-availability': clearAllAvailability,
|
||||||
'toggle-slot': toggleSlot,
|
'toggle-slot': toggleSlot,
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% block title %}{{ _('Contracts') }} - TryoutPro{% endblock %}
|
{% block title %}{{ _('Contracts') }} - UdeS team manager{% endblock %}
|
||||||
{% block page_title %}{{ _('Contracts') }}{% endblock %}
|
{% block page_title %}{{ _('Contracts') }}{% endblock %}
|
||||||
{% block breadcrumb %}<span class="breadcrumb">Home / <a href="{{ url_for('users.profile') }}">Profile</a> / Contracts</span>{% endblock %}
|
{% block breadcrumb %}<span class="breadcrumb">Home / <a href="{{ url_for('users.profile') }}">Profile</a> / Contracts</span>{% endblock %}
|
||||||
|
|
||||||
@@ -127,4 +127,4 @@ registerActions({
|
|||||||
'hide-upload-signed': hideUploadSignedForm,
|
'hide-upload-signed': hideUploadSignedForm,
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% block title %}{{ _('Create User') }} - TryoutPro{% endblock %}
|
{% block title %}{{ _('Create User') }} - UdeS team manager{% endblock %}
|
||||||
{% block page_title %}{{ _('Create User') }}{% endblock %}
|
{% block page_title %}{{ _('Create User') }}{% endblock %}
|
||||||
{% block breadcrumb %}<span class="breadcrumb">Home / <a href="{{ url_for('users.list_users') }}">Users</a> / Create</span>{% endblock %}
|
{% block breadcrumb %}<span class="breadcrumb">Home / <a href="{{ url_for('users.list_users') }}">Users</a> / Create</span>{% endblock %}
|
||||||
|
|
||||||
@@ -49,4 +49,4 @@
|
|||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% block title %}{{ _('Dashboard') }} - TryoutPro{% endblock %}
|
{% block title %}{{ _('Dashboard') }} - UdeS team manager{% endblock %}
|
||||||
{% block page_title %}{{ _('Dashboard') }}{% endblock %}
|
{% block page_title %}{{ _('Dashboard') }}{% endblock %}
|
||||||
{% block breadcrumb %}<span class="breadcrumb">Home / Dashboard</span>{% endblock %}
|
{% block breadcrumb %}<span class="breadcrumb">Home / Dashboard</span>{% endblock %}
|
||||||
|
|
||||||
@@ -378,4 +378,4 @@
|
|||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% block title %}{{ _('Edit Profile') }} - TryoutPro{% endblock %}
|
{% block title %}{{ _('Edit Profile') }} - UdeS team manager{% endblock %}
|
||||||
{% block page_title %}{{ _('Edit Profile') }}{% endblock %}
|
{% block page_title %}{{ _('Edit Profile') }}{% endblock %}
|
||||||
{% block breadcrumb %}<span class="breadcrumb">Home / <a href="{{ url_for('users.profile') }}">Profile</a> / Edit</span>{% endblock %}
|
{% block breadcrumb %}<span class="breadcrumb">Home / <a href="{{ url_for('users.profile') }}">Profile</a> / Edit</span>{% endblock %}
|
||||||
|
|
||||||
@@ -148,4 +148,4 @@ document.addEventListener('DOMContentLoaded', function() {
|
|||||||
toggleGamertagInputs();
|
toggleGamertagInputs();
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% block title %}Edit {{ user.username }} - TryoutPro{% endblock %}
|
{% block title %}Edit {{ user.username }} - UdeS team manager{% endblock %}
|
||||||
{% block page_title %}{{ _('Edit User') }}{% endblock %}
|
{% block page_title %}{{ _('Edit User') }}{% endblock %}
|
||||||
{% block breadcrumb %}<span class="breadcrumb">Home / <a href="{{ url_for('users.list_users') }}">Users</a> / Edit</span>{% endblock %}
|
{% block breadcrumb %}<span class="breadcrumb">Home / <a href="{{ url_for('users.list_users') }}">Users</a> / Edit</span>{% endblock %}
|
||||||
|
|
||||||
@@ -148,4 +148,4 @@ document.addEventListener('DOMContentLoaded', function() {
|
|||||||
toggleGamertagInputs();
|
toggleGamertagInputs();
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% block title %}Evaluate {{ player.username }} - TryoutPro{% endblock %}
|
{% block title %}Evaluate {{ player.username }} - UdeS team manager{% endblock %}
|
||||||
{% block page_title %}Evaluate {{ player.username }}{% endblock %}
|
{% block page_title %}Evaluate {{ player.username }}{% endblock %}
|
||||||
{% block breadcrumb %}<span class="breadcrumb">Home / <a href="{{ url_for('tryouts.view_tryout', tryout_id=tryout.id) }}">{{ tryout.title }}</a> / Evaluate</span>{% endblock %}
|
{% block breadcrumb %}<span class="breadcrumb">Home / <a href="{{ url_for('tryouts.view_tryout', tryout_id=tryout.id) }}">{{ tryout.title }}</a> / Evaluate</span>{% endblock %}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% import 'layouts/_pagination.html' as pager %}
|
{% import 'layouts/_pagination.html' as pager %}
|
||||||
{% block title %}{{ _('Evaluations') }} - TryoutPro{% endblock %}
|
{% block title %}{{ _('Evaluations') }} - UdeS team manager{% endblock %}
|
||||||
{% block page_title %}{{ _('Evaluations') }}{% endblock %}
|
{% block page_title %}{{ _('Evaluations') }}{% endblock %}
|
||||||
{% block breadcrumb %}<span class="breadcrumb">Home / Evaluations</span>{% endblock %}
|
{% block breadcrumb %}<span class="breadcrumb">Home / Evaluations</span>{% endblock %}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% block title %}{{ _('Login') }} - TryoutPro{% endblock %}
|
{% block title %}{{ _('Login') }} - UdeS team manager{% endblock %}
|
||||||
{% block auth_content %}
|
{% block auth_content %}
|
||||||
<form method="POST" action="{{ url_for('auth.login') }}" class="auth-form">
|
<form method="POST" action="{{ url_for('auth.login') }}" class="auth-form">
|
||||||
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}"/>
|
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}"/>
|
||||||
@@ -14,4 +14,4 @@
|
|||||||
<button type="submit" class="btn btn-primary btn-block">{{ _('Sign In') }}</button>
|
<button type="submit" class="btn btn-primary btn-block">{{ _('Sign In') }}</button>
|
||||||
<p class="auth-link">{{ _("Don't have an account?") }} <a href="{{ url_for('auth.register') }}">{{ _('Register here') }}</a></p>
|
<p class="auth-link">{{ _("Don't have an account?") }} <a href="{{ url_for('auth.register') }}">{{ _('Register here') }}</a></p>
|
||||||
</form>
|
</form>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% block title %}{% if match %}Edit Match{% else %}Schedule Match{% endif %} - {{ tryout.title }} - TryoutPro{% endblock %}
|
{% block title %}{% if match %}Edit Match{% else %}Schedule Match{% endif %} - {{ tryout.title }} - UdeS team manager{% endblock %}
|
||||||
{% block page_title %}{% if match %}Edit Match{% else %}Schedule Match{% endif %}{% endblock %}
|
{% block page_title %}{% if match %}Edit Match{% else %}Schedule Match{% endif %}{% endblock %}
|
||||||
{% block breadcrumb %}
|
{% block breadcrumb %}
|
||||||
<span class="breadcrumb">
|
<span class="breadcrumb">
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% block title %}{{ _('My Team(s)') }} - TryoutPro{% endblock %}
|
{% block title %}{{ _('My Team(s)') }} - UdeS team manager{% endblock %}
|
||||||
{% block page_title %}{{ _('My Team(s)') }}{% endblock %}
|
{% block page_title %}{{ _('My Team(s)') }}{% endblock %}
|
||||||
{% block breadcrumb %}<span class="breadcrumb">Home / My Team(s)</span>{% endblock %}
|
{% block breadcrumb %}<span class="breadcrumb">Home / My Team(s)</span>{% endblock %}
|
||||||
|
|
||||||
@@ -282,4 +282,4 @@ registerActions({
|
|||||||
color: #fcd34d;
|
color: #fcd34d;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% block title %}{{ _('Notes') }} - TryoutPro{% endblock %}
|
{% block title %}{{ _('Notes') }} - UdeS team manager{% endblock %}
|
||||||
{% block page_title %}{{ _('Notes') }}{% endblock %}
|
{% block page_title %}{{ _('Notes') }}{% endblock %}
|
||||||
{% block breadcrumb %}<span class="breadcrumb">Home / Notes</span>{% endblock %}
|
{% block breadcrumb %}<span class="breadcrumb">Home / Notes</span>{% endblock %}
|
||||||
|
|
||||||
@@ -283,4 +283,4 @@ registerActions({
|
|||||||
'hide-reject-modal': hideRejectModal,
|
'hide-reject-modal': hideRejectModal,
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% block title %}{{ _('One on One') }} - TryoutPro{% endblock %}
|
{% block title %}{{ _('One on One') }} - UdeS team manager{% endblock %}
|
||||||
{% block page_title %}{{ _('One on One') }}{% endblock %}
|
{% block page_title %}{{ _('One on One') }}{% endblock %}
|
||||||
{% block breadcrumb %}<span class="breadcrumb">Home / One on One</span>{% endblock %}
|
{% block breadcrumb %}<span class="breadcrumb">Home / One on One</span>{% endblock %}
|
||||||
|
|
||||||
@@ -314,4 +314,4 @@ registerActions({
|
|||||||
'update-end-times': updateEndTimeOptions,
|
'update-end-times': updateEndTimeOptions,
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% block title %}{{ _('Personal Notes') }} - TryoutPro{% endblock %}
|
{% block title %}{{ _('Personal Notes') }} - UdeS team manager{% endblock %}
|
||||||
{% block page_title %}{{ _('Personal Notes') }}{% endblock %}
|
{% block page_title %}{{ _('Personal Notes') }}{% endblock %}
|
||||||
{% block breadcrumb %}<span class="breadcrumb">Home / Personal Notes</span>{% endblock %}
|
{% block breadcrumb %}<span class="breadcrumb">Home / Personal Notes</span>{% endblock %}
|
||||||
|
|
||||||
@@ -61,4 +61,4 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% block title %}{{ _('My Notes') }} - TryoutPro{% endblock %}
|
{% block title %}{{ _('My Notes') }} - UdeS team manager{% endblock %}
|
||||||
{% block page_title %}{{ _('My Notes') }}{% endblock %}
|
{% block page_title %}{{ _('My Notes') }}{% endblock %}
|
||||||
{% block breadcrumb %}<span class="breadcrumb">Home / One on One / My Notes</span>{% endblock %}
|
{% block breadcrumb %}<span class="breadcrumb">Home / One on One / My Notes</span>{% endblock %}
|
||||||
|
|
||||||
@@ -82,4 +82,4 @@
|
|||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% block title %}{{ _('Players to Evaluate') }} - TryoutPro{% endblock %}
|
{% block title %}{{ _('Players to Evaluate') }} - UdeS team manager{% endblock %}
|
||||||
{% block page_title %}{{ _('Players to Evaluate') }}{% endblock %}
|
{% block page_title %}{{ _('Players to Evaluate') }}{% endblock %}
|
||||||
{% block breadcrumb %}<span class="breadcrumb">Home / <a href="{{ url_for('tryouts.view_tryout', tryout_id=tryout.id) }}">{{ tryout.title }}</a> / Evaluate</span>{% endblock %}
|
{% block breadcrumb %}<span class="breadcrumb">Home / <a href="{{ url_for('tryouts.view_tryout', tryout_id=tryout.id) }}">{{ tryout.title }}</a> / Evaluate</span>{% endblock %}
|
||||||
|
|
||||||
@@ -56,4 +56,4 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% block title %}{{ _('My Profile') }} - TryoutPro{% endblock %}
|
{% block title %}{{ _('My Profile') }} - UdeS team manager{% endblock %}
|
||||||
{% block page_title %}{{ _('My Profile') }}{% endblock %}
|
{% block page_title %}{{ _('My Profile') }}{% endblock %}
|
||||||
{% block breadcrumb %}<span class="breadcrumb">Home / Profile</span>{% endblock %}
|
{% block breadcrumb %}<span class="breadcrumb">Home / Profile</span>{% endblock %}
|
||||||
|
|
||||||
@@ -357,7 +357,10 @@ function saveCoachAvailability() {
|
|||||||
}
|
}
|
||||||
fetch('{{ url_for("users.manage_coach_availability") }}', {
|
fetch('{{ url_for("users.manage_coach_availability") }}', {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: { 'Content-Type': 'application/json' },
|
headers: {
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
'X-CSRFToken': '{{ csrf_token() }}'
|
||||||
|
},
|
||||||
body: JSON.stringify({ slots: slots })
|
body: JSON.stringify({ slots: slots })
|
||||||
})
|
})
|
||||||
.then(r => r.json())
|
.then(r => r.json())
|
||||||
@@ -376,7 +379,10 @@ function saveCoachAvailability() {
|
|||||||
|
|
||||||
function clearAllAvailability() {
|
function clearAllAvailability() {
|
||||||
if (!confirm('Are you sure you want to clear all your availability slots?')) return;
|
if (!confirm('Are you sure you want to clear all your availability slots?')) return;
|
||||||
fetch('{{ url_for("users.clear_coach_availability") }}', { method: 'POST' })
|
fetch('{{ url_for("users.clear_coach_availability") }}', {
|
||||||
|
method: 'POST',
|
||||||
|
headers: { 'X-CSRFToken': '{{ csrf_token() }}' }
|
||||||
|
})
|
||||||
.then(r => r.json())
|
.then(r => r.json())
|
||||||
.then(data => {
|
.then(data => {
|
||||||
if (data.success) {
|
if (data.success) {
|
||||||
@@ -610,4 +616,4 @@ registerActions({
|
|||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% block title %}{{ _('Register') }} - TryoutPro{% endblock %}
|
{% block title %}{{ _('Register') }} - UdeS team manager{% endblock %}
|
||||||
{% block auth_content %}
|
{% block auth_content %}
|
||||||
<form method="POST" action="{{ url_for('auth.register') }}" class="auth-form">
|
<form method="POST" action="{{ url_for('auth.register') }}" class="auth-form">
|
||||||
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}"/>
|
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}"/>
|
||||||
@@ -53,7 +53,7 @@
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<a href="{{ url_for('auth.discord_login') }}" class="btn btn-sm btn-outline discord-reconnect">
|
<a href="{{ url_for('auth.discord_login') }}" class="btn btn-sm btn-outline discord-reconnect" data-action="save-form-draft">
|
||||||
<i class="fas fa-sync-alt"></i> {{ _('Reconnect') }}
|
<i class="fas fa-sync-alt"></i> {{ _('Reconnect') }}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
@@ -65,7 +65,7 @@
|
|||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<div class="form-group discord-connect-section">
|
<div class="form-group discord-connect-section">
|
||||||
<a href="{{ url_for('auth.discord_login') }}" class="btn btn-discord btn-block">
|
<a href="{{ url_for('auth.discord_login') }}" class="btn btn-discord btn-block" data-action="save-form-draft">
|
||||||
<i class="fab fa-discord"></i> {{ _('Connect Discord Account') }}
|
<i class="fab fa-discord"></i> {{ _('Connect Discord Account') }}
|
||||||
</a>
|
</a>
|
||||||
<small class="form-text text-muted">{{ _('Connect to pre-fill your gamertags from Steam, Battle.net, Xbox, etc.') }}</small>
|
<small class="form-text text-muted">{{ _('Connect to pre-fill your gamertags from Steam, Battle.net, Xbox, etc.') }}</small>
|
||||||
@@ -170,8 +170,62 @@ function toggleGamertagInput(checkbox) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// On page load, ensure gamertag groups match checkbox state
|
// Save form draft to sessionStorage before navigating to Discord OAuth
|
||||||
|
function saveFormDraft() {
|
||||||
|
var draft = {};
|
||||||
|
var form = document.querySelector('.auth-form');
|
||||||
|
if (!form) return;
|
||||||
|
var inputs = form.querySelectorAll('input, select, textarea');
|
||||||
|
inputs.forEach(function(input) {
|
||||||
|
if (!input.name) return;
|
||||||
|
if (input.type === 'checkbox') {
|
||||||
|
if (!draft[input.name]) draft[input.name] = [];
|
||||||
|
if (input.checked) draft[input.name].push(input.value);
|
||||||
|
} else if (input.type === 'password') {
|
||||||
|
// Never save passwords
|
||||||
|
} else {
|
||||||
|
draft[input.name] = input.value;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
sessionStorage.setItem('register_form_draft', JSON.stringify(draft));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Restore form draft from sessionStorage on page load
|
||||||
|
function restoreFormDraft() {
|
||||||
|
var saved = sessionStorage.getItem('register_form_draft');
|
||||||
|
if (!saved) return;
|
||||||
|
try {
|
||||||
|
var draft = JSON.parse(saved);
|
||||||
|
var hasServerData = document.querySelector('.auth-form input[name="full_name"]').value !== '';
|
||||||
|
if (hasServerData) return;
|
||||||
|
for (var key in draft) {
|
||||||
|
if (key === 'games') {
|
||||||
|
var values = draft[key];
|
||||||
|
var checkboxes = document.querySelectorAll('input[name="games"]');
|
||||||
|
checkboxes.forEach(function(cb) {
|
||||||
|
cb.checked = values.indexOf(cb.value) !== -1;
|
||||||
|
toggleGamertagInput(cb);
|
||||||
|
});
|
||||||
|
} else if (key === 'csrf_token' || key.indexOf('password') !== -1) {
|
||||||
|
// Skip CSRF token and passwords
|
||||||
|
} else {
|
||||||
|
var input = document.querySelector('input[name="' + key + '"], textarea[name="' + key + '"]');
|
||||||
|
if (input) input.value = draft[key];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch(e) {
|
||||||
|
// Invalid JSON, ignore
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Clear draft on successful form submission
|
||||||
|
document.querySelector('.auth-form').addEventListener('submit', function() {
|
||||||
|
sessionStorage.removeItem('register_form_draft');
|
||||||
|
});
|
||||||
|
|
||||||
|
// On page load, ensure gamertag groups match checkbox state and restore draft
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
|
restoreFormDraft();
|
||||||
var checkboxes = document.querySelectorAll('input[name="games"]');
|
var checkboxes = document.querySelectorAll('input[name="games"]');
|
||||||
checkboxes.forEach(function(checkbox) {
|
checkboxes.forEach(function(checkbox) {
|
||||||
toggleGamertagInput(checkbox);
|
toggleGamertagInput(checkbox);
|
||||||
@@ -182,6 +236,7 @@ document.addEventListener('DOMContentLoaded', function() {
|
|||||||
// dispatched by the delegated listener in main.js. This replaces inline
|
// dispatched by the delegated listener in main.js. This replaces inline
|
||||||
// onclick attributes, which no CSP nonce is able to authorise.
|
// onclick attributes, which no CSP nonce is able to authorise.
|
||||||
registerActions({
|
registerActions({
|
||||||
|
'save-form-draft': saveFormDraft,
|
||||||
'toggle-gamertag': toggleGamertagInput,
|
'toggle-gamertag': toggleGamertagInput,
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
@@ -301,4 +356,4 @@ registerActions({
|
|||||||
color: #57F287 !important;
|
color: #57F287 !important;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% block title %}{% if match %}Edit{% else %}Schedule{% endif %} Team Match - TryoutPro{% endblock %}
|
{% block title %}{% if match %}Edit{% else %}Schedule{% endif %} Team Match - UdeS team manager{% endblock %}
|
||||||
{% block page_title %}{% if match %}Edit{% else %}Schedule{% endif %} Team Match{% endblock %}
|
{% block page_title %}{% if match %}Edit{% else %}Schedule{% endif %} Team Match{% endblock %}
|
||||||
{% block breadcrumb %}<span class="breadcrumb">Home / <a href="{{ url_for('team_matches.list_matches') }}">Team Matches</a> / {% if match %}Edit{% else %}New{% endif %}</span>{% endblock %}
|
{% block breadcrumb %}<span class="breadcrumb">Home / <a href="{{ url_for('team_matches.list_matches') }}">Team Matches</a> / {% if match %}Edit{% else %}New{% endif %}</span>{% endblock %}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% import 'layouts/_pagination.html' as pager %}
|
{% import 'layouts/_pagination.html' as pager %}
|
||||||
{% block title %}{{ _('Team Matches') }} - TryoutPro{% endblock %}
|
{% block title %}{{ _('Team Matches') }} - UdeS team manager{% endblock %}
|
||||||
{% block page_title %}{{ _('Team Matches') }}{% endblock %}
|
{% block page_title %}{{ _('Team Matches') }}{% endblock %}
|
||||||
{% block breadcrumb %}<span class="breadcrumb">Home / Team Matches</span>{% endblock %}
|
{% block breadcrumb %}<span class="breadcrumb">Home / Team Matches</span>{% endblock %}
|
||||||
|
|
||||||
@@ -236,4 +236,4 @@ registerActions({
|
|||||||
margin-left: 4px;
|
margin-left: 4px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% block title %}{{ _('Team Notes') }} - TryoutPro{% endblock %}
|
{% block title %}{{ _('Team Notes') }} - UdeS team manager{% endblock %}
|
||||||
{% block page_title %}{{ _('Team Notes') }}{% endblock %}
|
{% block page_title %}{{ _('Team Notes') }}{% endblock %}
|
||||||
{% block breadcrumb %}<span class="breadcrumb">Home / Team Notes</span>{% endblock %}
|
{% block breadcrumb %}<span class="breadcrumb">Home / Team Notes</span>{% endblock %}
|
||||||
|
|
||||||
@@ -55,4 +55,4 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% block title %}{{ _('Teams') }} - TryoutPro{% endblock %}
|
{% block title %}{{ _('Teams') }} - UdeS team manager{% endblock %}
|
||||||
{% block page_title %}{{ _('Teams') }}{% endblock %}
|
{% block page_title %}{{ _('Teams') }}{% endblock %}
|
||||||
{% block breadcrumb %}<span class="breadcrumb">Home / Teams</span>{% endblock %}
|
{% block breadcrumb %}<span class="breadcrumb">Home / Teams</span>{% endblock %}
|
||||||
|
|
||||||
@@ -548,4 +548,4 @@ registerActions({
|
|||||||
color: var(--text-primary);
|
color: var(--text-primary);
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% block title %}{% if tryout %}Edit Tryout{% else %}Create Tryout{% endif %} - TryoutPro{% endblock %}
|
{% block title %}{% if tryout %}Edit Tryout{% else %}Create Tryout{% endif %} - UdeS team manager{% endblock %}
|
||||||
{% block page_title %}{% if tryout %}Edit Tryout{% else %}Create Tryout{% endif %}{% endblock %}
|
{% block page_title %}{% if tryout %}Edit Tryout{% else %}Create Tryout{% endif %}{% endblock %}
|
||||||
{% block breadcrumb %}
|
{% block breadcrumb %}
|
||||||
<span class="breadcrumb">
|
<span class="breadcrumb">
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% block title %}{{ _('Tryouts') }} - TryoutPro{% endblock %}
|
{% block title %}{{ _('Tryouts') }} - UdeS team manager{% endblock %}
|
||||||
{% block page_title %}{{ _('Tryouts') }}{% endblock %}
|
{% block page_title %}{{ _('Tryouts') }}{% endblock %}
|
||||||
{% block breadcrumb %}<span class="breadcrumb">Home / Tryouts</span>{% endblock %}
|
{% block breadcrumb %}<span class="breadcrumb">Home / Tryouts</span>{% endblock %}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% block title %}{{ _('Upload Contract') }} - TryoutPro{% endblock %}
|
{% block title %}{{ _('Upload Contract') }} - UdeS team manager{% endblock %}
|
||||||
{% block page_title %}{{ _('Upload Contract') }}{% endblock %}
|
{% block page_title %}{{ _('Upload Contract') }}{% endblock %}
|
||||||
{% block breadcrumb %}<span class="breadcrumb">Home / <a href="{{ url_for('users.list_contracts') }}">Contracts</a> / Upload</span>{% endblock %}
|
{% block breadcrumb %}<span class="breadcrumb">Home / <a href="{{ url_for('users.list_contracts') }}">Contracts</a> / Upload</span>{% endblock %}
|
||||||
|
|
||||||
@@ -42,4 +42,4 @@
|
|||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% import 'layouts/_pagination.html' as pager %}
|
{% import 'layouts/_pagination.html' as pager %}
|
||||||
{% block title %}{{ _('Manage Users') }} - TryoutPro{% endblock %}
|
{% block title %}{{ _('Manage Users') }} - UdeS team manager{% endblock %}
|
||||||
{% block page_title %}{{ _('Manage Users') }}{% endblock %}
|
{% block page_title %}{{ _('Manage Users') }}{% endblock %}
|
||||||
{% block breadcrumb %}<span class="breadcrumb">Home / Users</span>{% endblock %}
|
{% block breadcrumb %}<span class="breadcrumb">Home / Users</span>{% endblock %}
|
||||||
|
|
||||||
@@ -67,4 +67,4 @@
|
|||||||
{{ pager.controls(pagination) }}
|
{{ pager.controls(pagination) }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% block title %}{{ tryout.title }} - TryoutPro{% endblock %}
|
{% block title %}{{ tryout.title }} - UdeS team manager{% endblock %}
|
||||||
{% block page_title %}{{ tryout.title }}{% endblock %}
|
{% block page_title %}{{ tryout.title }}{% endblock %}
|
||||||
{% block breadcrumb %}<span class="breadcrumb">Home / <a href="{{ url_for('tryouts.list_tryouts') }}">Tryouts</a> / {{ tryout.title }}</span>{% endblock %}
|
{% block breadcrumb %}<span class="breadcrumb">Home / <a href="{{ url_for('tryouts.list_tryouts') }}">Tryouts</a> / {{ tryout.title }}</span>{% endblock %}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends "layouts/base.html" %}
|
||||||
{% block title %}{{ profile_user.username }} - TryoutPro{% endblock %}
|
{% block title %}{{ profile_user.username }} - UdeS team manager{% endblock %}
|
||||||
{% block page_title %}{{ profile_user.username }}{% endblock %}
|
{% block page_title %}{{ profile_user.username }}{% endblock %}
|
||||||
{% block breadcrumb %}<span class="breadcrumb">Home / <a href="#" data-action="history-back">Back</a> / {{ profile_user.username }}</span>{% endblock %}
|
{% block breadcrumb %}<span class="breadcrumb">Home / <a href="#" data-action="history-back">Back</a> / {{ profile_user.username }}</span>{% endblock %}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user