JS cleanup [read comment]
Moved global js to new file custom.js and documented teams.js
This commit is contained in:
parent
78e4361452
commit
79d391d171
@ -3,8 +3,8 @@
|
||||
"model": "mainapp.member",
|
||||
"pk": 1,
|
||||
"fields": {
|
||||
"first_name": "Shaquita",
|
||||
"last_name": "Nichols",
|
||||
"first_name": "Robert",
|
||||
"last_name": "Reid",
|
||||
"team": 1,
|
||||
"peg_number": null
|
||||
}
|
||||
@ -13,8 +13,8 @@
|
||||
"model": "mainapp.member",
|
||||
"pk": 2,
|
||||
"fields": {
|
||||
"first_name": "Tawanna",
|
||||
"last_name": "Kingsbury",
|
||||
"first_name": "Ronald",
|
||||
"last_name": "Jones",
|
||||
"team": 1,
|
||||
"peg_number": null
|
||||
}
|
||||
@ -23,8 +23,8 @@
|
||||
"model": "mainapp.member",
|
||||
"pk": 3,
|
||||
"fields": {
|
||||
"first_name": "Ricardo",
|
||||
"last_name": "Benton",
|
||||
"first_name": "Casey",
|
||||
"last_name": "Cohen",
|
||||
"team": 1,
|
||||
"peg_number": null
|
||||
}
|
||||
@ -33,8 +33,8 @@
|
||||
"model": "mainapp.member",
|
||||
"pk": 4,
|
||||
"fields": {
|
||||
"first_name": "David",
|
||||
"last_name": "Moore",
|
||||
"first_name": "James",
|
||||
"last_name": "Scudder",
|
||||
"team": 2,
|
||||
"peg_number": null
|
||||
}
|
||||
@ -43,8 +43,8 @@
|
||||
"model": "mainapp.member",
|
||||
"pk": 5,
|
||||
"fields": {
|
||||
"first_name": "Patricia",
|
||||
"last_name": "Mader",
|
||||
"first_name": "Randall",
|
||||
"last_name": "Young",
|
||||
"team": 2,
|
||||
"peg_number": null
|
||||
}
|
||||
@ -53,8 +53,8 @@
|
||||
"model": "mainapp.member",
|
||||
"pk": 6,
|
||||
"fields": {
|
||||
"first_name": "Sue",
|
||||
"last_name": "Coleman",
|
||||
"first_name": "Helen",
|
||||
"last_name": "Doak",
|
||||
"team": 2,
|
||||
"peg_number": null
|
||||
}
|
||||
@ -63,8 +63,8 @@
|
||||
"model": "mainapp.member",
|
||||
"pk": 7,
|
||||
"fields": {
|
||||
"first_name": "Brandon",
|
||||
"last_name": "Goodwin",
|
||||
"first_name": "Brenda",
|
||||
"last_name": "Powell",
|
||||
"team": 3,
|
||||
"peg_number": null
|
||||
}
|
||||
@ -73,8 +73,8 @@
|
||||
"model": "mainapp.member",
|
||||
"pk": 8,
|
||||
"fields": {
|
||||
"first_name": "Travis",
|
||||
"last_name": "Walls",
|
||||
"first_name": "Constance",
|
||||
"last_name": "Abild",
|
||||
"team": 3,
|
||||
"peg_number": null
|
||||
}
|
||||
@ -83,8 +83,8 @@
|
||||
"model": "mainapp.member",
|
||||
"pk": 9,
|
||||
"fields": {
|
||||
"first_name": "Donna",
|
||||
"last_name": "Sanders",
|
||||
"first_name": "Patsy",
|
||||
"last_name": "Branham",
|
||||
"team": 3,
|
||||
"peg_number": null
|
||||
}
|
||||
@ -93,8 +93,8 @@
|
||||
"model": "mainapp.member",
|
||||
"pk": 10,
|
||||
"fields": {
|
||||
"first_name": "Debra",
|
||||
"last_name": "Lu",
|
||||
"first_name": "Cheryl",
|
||||
"last_name": "Sears",
|
||||
"team": 4,
|
||||
"peg_number": null
|
||||
}
|
||||
@ -103,8 +103,8 @@
|
||||
"model": "mainapp.member",
|
||||
"pk": 11,
|
||||
"fields": {
|
||||
"first_name": "Edwin",
|
||||
"last_name": "Goldberger",
|
||||
"first_name": "Justin",
|
||||
"last_name": "Cramer",
|
||||
"team": 4,
|
||||
"peg_number": null
|
||||
}
|
||||
@ -113,8 +113,8 @@
|
||||
"model": "mainapp.member",
|
||||
"pk": 12,
|
||||
"fields": {
|
||||
"first_name": "Peggy",
|
||||
"last_name": "Lane",
|
||||
"first_name": "Theodore",
|
||||
"last_name": "Wilson",
|
||||
"team": 4,
|
||||
"peg_number": null
|
||||
}
|
||||
@ -123,8 +123,8 @@
|
||||
"model": "mainapp.member",
|
||||
"pk": 13,
|
||||
"fields": {
|
||||
"first_name": "Dora",
|
||||
"last_name": "Eye",
|
||||
"first_name": "Geneva",
|
||||
"last_name": "Low",
|
||||
"team": 5,
|
||||
"peg_number": null
|
||||
}
|
||||
@ -133,8 +133,8 @@
|
||||
"model": "mainapp.member",
|
||||
"pk": 14,
|
||||
"fields": {
|
||||
"first_name": "Christopher",
|
||||
"last_name": "Delap",
|
||||
"first_name": "John",
|
||||
"last_name": "Burtt",
|
||||
"team": 5,
|
||||
"peg_number": null
|
||||
}
|
||||
@ -143,8 +143,8 @@
|
||||
"model": "mainapp.member",
|
||||
"pk": 15,
|
||||
"fields": {
|
||||
"first_name": "John",
|
||||
"last_name": "Reyes",
|
||||
"first_name": "Alfred",
|
||||
"last_name": "Diaz",
|
||||
"team": 5,
|
||||
"peg_number": null
|
||||
}
|
||||
@ -153,8 +153,8 @@
|
||||
"model": "mainapp.member",
|
||||
"pk": 16,
|
||||
"fields": {
|
||||
"first_name": "Robert",
|
||||
"last_name": "Reveles",
|
||||
"first_name": "Arthur",
|
||||
"last_name": "Alton",
|
||||
"team": 6,
|
||||
"peg_number": null
|
||||
}
|
||||
@ -163,8 +163,8 @@
|
||||
"model": "mainapp.member",
|
||||
"pk": 17,
|
||||
"fields": {
|
||||
"first_name": "Cheryl",
|
||||
"last_name": "Jones",
|
||||
"first_name": "Vicki",
|
||||
"last_name": "Greer",
|
||||
"team": 6,
|
||||
"peg_number": null
|
||||
}
|
||||
@ -173,8 +173,8 @@
|
||||
"model": "mainapp.member",
|
||||
"pk": 18,
|
||||
"fields": {
|
||||
"first_name": "Anne",
|
||||
"last_name": "Thomas",
|
||||
"first_name": "Lewis",
|
||||
"last_name": "Segovia",
|
||||
"team": 6,
|
||||
"peg_number": null
|
||||
}
|
||||
@ -183,8 +183,8 @@
|
||||
"model": "mainapp.member",
|
||||
"pk": 19,
|
||||
"fields": {
|
||||
"first_name": "Erika",
|
||||
"last_name": "Dolfi",
|
||||
"first_name": "Vince",
|
||||
"last_name": "Robinson",
|
||||
"team": 7,
|
||||
"peg_number": null
|
||||
}
|
||||
@ -193,8 +193,8 @@
|
||||
"model": "mainapp.member",
|
||||
"pk": 20,
|
||||
"fields": {
|
||||
"first_name": "Scott",
|
||||
"last_name": "Hines",
|
||||
"first_name": "Blake",
|
||||
"last_name": "Mueller",
|
||||
"team": 7,
|
||||
"peg_number": null
|
||||
}
|
||||
@ -203,8 +203,8 @@
|
||||
"model": "mainapp.member",
|
||||
"pk": 21,
|
||||
"fields": {
|
||||
"first_name": "Min",
|
||||
"last_name": "Baker",
|
||||
"first_name": "Luis",
|
||||
"last_name": "Hazel",
|
||||
"team": 7,
|
||||
"peg_number": null
|
||||
}
|
||||
@ -213,8 +213,8 @@
|
||||
"model": "mainapp.member",
|
||||
"pk": 22,
|
||||
"fields": {
|
||||
"first_name": "Laura",
|
||||
"last_name": "Cleaves",
|
||||
"first_name": "Diane",
|
||||
"last_name": "Lloyd",
|
||||
"team": 8,
|
||||
"peg_number": null
|
||||
}
|
||||
@ -223,8 +223,8 @@
|
||||
"model": "mainapp.member",
|
||||
"pk": 23,
|
||||
"fields": {
|
||||
"first_name": "Deborah",
|
||||
"last_name": "Pence",
|
||||
"first_name": "Jamey",
|
||||
"last_name": "Mendes",
|
||||
"team": 8,
|
||||
"peg_number": null
|
||||
}
|
||||
@ -233,8 +233,8 @@
|
||||
"model": "mainapp.member",
|
||||
"pk": 24,
|
||||
"fields": {
|
||||
"first_name": "Harvey",
|
||||
"last_name": "Cabello",
|
||||
"first_name": "Virgilio",
|
||||
"last_name": "Nixon",
|
||||
"team": 8,
|
||||
"peg_number": null
|
||||
}
|
||||
@ -243,8 +243,8 @@
|
||||
"model": "mainapp.member",
|
||||
"pk": 25,
|
||||
"fields": {
|
||||
"first_name": "Shawn",
|
||||
"last_name": "Mabe",
|
||||
"first_name": "Rodney",
|
||||
"last_name": "White",
|
||||
"team": 9,
|
||||
"peg_number": null
|
||||
}
|
||||
@ -253,8 +253,8 @@
|
||||
"model": "mainapp.member",
|
||||
"pk": 26,
|
||||
"fields": {
|
||||
"first_name": "Donald",
|
||||
"last_name": "Duryea",
|
||||
"first_name": "Kathleen",
|
||||
"last_name": "Ashe",
|
||||
"team": 9,
|
||||
"peg_number": null
|
||||
}
|
||||
@ -263,8 +263,8 @@
|
||||
"model": "mainapp.member",
|
||||
"pk": 27,
|
||||
"fields": {
|
||||
"first_name": "John",
|
||||
"last_name": "Mcinturff",
|
||||
"first_name": "Stephanie",
|
||||
"last_name": "Taylor",
|
||||
"team": 9,
|
||||
"peg_number": null
|
||||
}
|
||||
@ -273,8 +273,8 @@
|
||||
"model": "mainapp.member",
|
||||
"pk": 28,
|
||||
"fields": {
|
||||
"first_name": "Ivette",
|
||||
"last_name": "Paterson",
|
||||
"first_name": "John",
|
||||
"last_name": "Brennan",
|
||||
"team": 10,
|
||||
"peg_number": null
|
||||
}
|
||||
@ -283,8 +283,8 @@
|
||||
"model": "mainapp.member",
|
||||
"pk": 29,
|
||||
"fields": {
|
||||
"first_name": "Mary",
|
||||
"last_name": "Sussman",
|
||||
"first_name": "Kenneth",
|
||||
"last_name": "Duff",
|
||||
"team": 10,
|
||||
"peg_number": null
|
||||
}
|
||||
@ -293,8 +293,8 @@
|
||||
"model": "mainapp.member",
|
||||
"pk": 30,
|
||||
"fields": {
|
||||
"first_name": "Peter",
|
||||
"last_name": "Faison",
|
||||
"first_name": "Matthew",
|
||||
"last_name": "Whitesell",
|
||||
"team": 10,
|
||||
"peg_number": null
|
||||
}
|
||||
|
@ -3,70 +3,70 @@
|
||||
"model": "mainapp.team",
|
||||
"pk": 1,
|
||||
"fields": {
|
||||
"section_letter": "P"
|
||||
"section_letter": "D"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "mainapp.team",
|
||||
"pk": 2,
|
||||
"fields": {
|
||||
"section_letter": "C"
|
||||
"section_letter": "P"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "mainapp.team",
|
||||
"pk": 3,
|
||||
"fields": {
|
||||
"section_letter": "Y"
|
||||
"section_letter": "L"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "mainapp.team",
|
||||
"pk": 4,
|
||||
"fields": {
|
||||
"section_letter": "B"
|
||||
"section_letter": "M"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "mainapp.team",
|
||||
"pk": 5,
|
||||
"fields": {
|
||||
"section_letter": "T"
|
||||
"section_letter": "Z"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "mainapp.team",
|
||||
"pk": 6,
|
||||
"fields": {
|
||||
"section_letter": "K"
|
||||
"section_letter": "Y"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "mainapp.team",
|
||||
"pk": 7,
|
||||
"fields": {
|
||||
"section_letter": "N"
|
||||
"section_letter": "J"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "mainapp.team",
|
||||
"pk": 8,
|
||||
"fields": {
|
||||
"section_letter": "S"
|
||||
"section_letter": "W"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "mainapp.team",
|
||||
"pk": 9,
|
||||
"fields": {
|
||||
"section_letter": "Z"
|
||||
"section_letter": "T"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "mainapp.team",
|
||||
"pk": 10,
|
||||
"fields": {
|
||||
"section_letter": "U"
|
||||
"section_letter": "F"
|
||||
}
|
||||
}
|
||||
]
|
22
src/static/js/custom.js
Normal file
22
src/static/js/custom.js
Normal file
@ -0,0 +1,22 @@
|
||||
/**
|
||||
* Custom javascript for the entire website.
|
||||
* Add to this file for javascript that will be ran globally.
|
||||
*/
|
||||
|
||||
|
||||
$(document).ready(() => {
|
||||
// Enable all tooltips on the page
|
||||
const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]')
|
||||
const tooltipList = [...tooltipTriggerList].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl))
|
||||
});
|
||||
|
||||
|
||||
/**
|
||||
* Returns boolean if the string is empty or only contains whitespace.
|
||||
*
|
||||
* @param {string} string - The string to check against.
|
||||
* @returns {boolean} - The result as boolean
|
||||
*/
|
||||
function isEmptyOrSpaces(string) {
|
||||
return string === null || string.match(/^ *$/) !== null;
|
||||
}
|
@ -5,15 +5,12 @@ jQuery.expr[':'].icontains = function(a, i, m) {
|
||||
|
||||
$(document).ready(() => {
|
||||
|
||||
// Enable all tooltips on the page
|
||||
const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]')
|
||||
const tooltipList = [...tooltipTriggerList].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl))
|
||||
|
||||
teamsLoading(true); // show the loading icon
|
||||
|
||||
// Search functionality
|
||||
var searchTimeout = null;
|
||||
|
||||
// Bind searching to when a key is lifted on the searchbar
|
||||
$("#search").keyup(() => {
|
||||
clearTimeout(searchTimeout);
|
||||
teamsLoading(true);
|
||||
@ -23,17 +20,20 @@ $(document).ready(() => {
|
||||
}, 500)
|
||||
});
|
||||
|
||||
// Bind searching to the search button
|
||||
$("#searchButton").on("click", () => {
|
||||
fetchAndLoadTeams(...getFilters());
|
||||
});
|
||||
|
||||
// Bind searching to the sort buttons
|
||||
$("#sortForm input").on("click", function() {
|
||||
const name = $(this).attr("name");
|
||||
localStorage.setItem(name, $(`input[name='${name}']:checked`, "#sortForm").val());7
|
||||
localStorage.setItem(name, $(`input[name='${name}']:checked`, "#sortForm").val());
|
||||
|
||||
fetchAndLoadTeams(...getFilters());
|
||||
});
|
||||
|
||||
// Load the last saved sort settings TODO: use local storage so it only saves on one reload
|
||||
const sortTeamsValue = localStorage.getItem("sortTeams");
|
||||
if (sortTeamsValue !== null) {
|
||||
$("#sortForm input[name='sortTeams']").val([sortTeamsValue]);
|
||||
@ -44,10 +44,8 @@ $(document).ready(() => {
|
||||
$("#sortForm input[name='sortMembers']").val([sortMembersValue]);
|
||||
}
|
||||
|
||||
// Edit member form validation options
|
||||
$("#editMemberForm").validate({
|
||||
errorClass: "text-danger mb-2"
|
||||
})
|
||||
// Customize form validation for the edit members form
|
||||
$("#editMemberForm").validate({ errorClass: "text-danger mb-2" });
|
||||
|
||||
// Prevent dropdowns from closing when clicking inside
|
||||
$('.dropdown-menu').on('hide.bs.dropdown', function (e) {
|
||||
@ -59,10 +57,16 @@ $(document).ready(() => {
|
||||
}
|
||||
});
|
||||
|
||||
fetchAndLoadTeams(...getFilters()); // load the teams with default filters
|
||||
// load the teams with default filters
|
||||
fetchAndLoadTeams(...getFilters());
|
||||
|
||||
});
|
||||
|
||||
/**
|
||||
* Returns an array of search filters in this order [search, sortTeams, sortMembers]
|
||||
*
|
||||
* @returns {Array} The array of filters, each filter is a string.
|
||||
*/
|
||||
function getFilters() {
|
||||
return [
|
||||
$("#search").val(),
|
||||
@ -71,14 +75,6 @@ function getFilters() {
|
||||
]
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns bool if the string is empty or only contains whitespace
|
||||
*
|
||||
* **/
|
||||
function isEmptyOrSpaces(string) {
|
||||
return string === null || string.match(/^ *$/) !== null;
|
||||
}
|
||||
|
||||
function loadTeams(teams, highlightText="") {
|
||||
$("#teamsContainer").html(""); // Clear the previous listed teams
|
||||
|
||||
@ -113,7 +109,7 @@ function loadTeams(teams, highlightText="") {
|
||||
</div>`
|
||||
);
|
||||
|
||||
// Whilimage.pnge we have the team, iterate over and add it's members
|
||||
// While we have the team, iterate over and add it's members
|
||||
team.members.forEach((member) => {
|
||||
const fullname = member.first + " " + member.last;
|
||||
|
||||
@ -139,7 +135,7 @@ function loadTeams(teams, highlightText="") {
|
||||
</button>
|
||||
</div>
|
||||
</li>`
|
||||
);
|
||||
)
|
||||
});
|
||||
});
|
||||
|
||||
@ -153,6 +149,10 @@ function loadTeams(teams, highlightText="") {
|
||||
|
||||
// Bind edit team modal to the edit team button
|
||||
$(".team > h3 > button").on("click", function() {
|
||||
$(this).addClass("active");
|
||||
$("#editTeamModal").off("hidden.bs.modal").on("hidden.bs.modal", function() {
|
||||
$("#teamsContainer").find(".team").find("button.active").removeClass("active");
|
||||
});
|
||||
openEditTeamModal($(this).parent().parent().data("number"));
|
||||
});
|
||||
|
||||
|
@ -20,6 +20,7 @@
|
||||
<script src="{% static 'js/jquery-3.6.3.min.js' %}"></script>
|
||||
<script src="{% static 'js/jquery.validate.min.js' %}"></script>
|
||||
<script src="{% static 'js/bootstrap.bundle.min.js' %}"></script>
|
||||
<script src="{% static 'js/custom.js' %}"></script>
|
||||
{% block scripts %}
|
||||
{% endblock scripts %}
|
||||
</body>
|
||||
|
Loading…
x
Reference in New Issue
Block a user