function gangsDialog(oldGangs) { return new Promise((resolve, reject) => { let inputGangsModal = $("#input-gangs-dialog-modal") inputGangsModal.modal("show"); $("#input-gang-search").val(""); $.post(`https://${resName}/getAllGangs`, JSON.stringify({}), function (gangs) { let gangListDiv = $("#gangs-list"); gangListDiv.empty(); for(const[gangName, gangData] of Object.entries(gangs)) { let gangDiv = $(`

${gangData.label}

`); for(let [grade, gradeData] of Object.entries(gangData.grades)) { // QB-Core if(gradeData.grade == undefined) { gradeData.grade = grade; gradeData.label = gradeData.name; } let rankDiv = $(`
`); gangDiv.find(".gang-grades").append(rankDiv); } gangListDiv.append(gangDiv); } // Disables and uncheck grades checkbox if the entire gang is selected $("#gangs-list").find(`[data-type="gang"]`).change(function() { let isChecked = $(this).prop("checked"); if(isChecked) { $(this).parent().find(".gang-grades").find("input").prop("checked", false).prop("disabled", true); } else { $(this).parent().find(".gang-grades").find("input").prop("disabled", false); } }) if(oldGangs) { for(let [gangName, allowedGrades] of Object.entries(oldGangs)) { if(allowedGrades === true) { $("#gangs-list").find(`[data-type="gang"][data-gang-name="${gangName}"]`).prop("checked", true).change(); } else { for(let [grade, _] of Object.entries(allowedGrades)) { $("#gangs-list").find(`[data-type="gang-grade"][data-gang-name="${gangName}"][data-grade="${grade}"]`).prop("checked", true); } } } } // Unbinds the button and rebinds it to callback the selected gangs $("#input-gangs-confirm-btn").unbind().click(function() { let selectedGangs = {}; let isThereAnyGang = false; gangListDiv.find("input:checked").each(function() { let checkBoxType = $(this).data("type"); isThereAnyGang = true; let gangName = $(this).data("gangName"); switch(checkBoxType) { case "gang": selectedGangs[gangName] = true; break; case "gang-grade": let grade = $(this).data("grade"); if(!selectedGangs[gangName]) { selectedGangs[gangName] = {}; } selectedGangs[gangName][grade] = true; break; default: console.log("Unknown checkbox type: " + checkBoxType + " in gangs dialog"); break; } }); inputGangsModal.modal("hide"); resolve(isThereAnyGang ? selectedGangs : false); }) }); }) } $("#input-gang-search").on("keyup", function() { let text = $(this).val().toLowerCase(); $("#gangs-list .form-check").filter(function() { $(this).toggle($(this).text().toLowerCase().indexOf(text) > -1) }); }) function toggleCursor(enabled) { if (enabled) { $.post(`https://${resName}/enableCursor`, JSON.stringify({})); } else { $.post(`https://${resName}/disableCursor`, JSON.stringify({})); } } function loadDialog(dialogName) { var script = document.createElement('script'); console.log(`../utils/dialogs/${dialogName}/${dialogName}.js`) script.setAttribute('src',`../utils/dialogs/${dialogName}/${dialogName}.js`); document.head.appendChild(script); } // Messages received by client window.addEventListener('message', (event) => { let data = event.data; let action = data.action; switch(action) { case "loadDialog": { var script = document.createElement('script'); script.setAttribute('src',`../utils/dialogs/${data.dialogName}/${data.dialogName}.js`); document.head.appendChild(script); break; } } }) $.post(`https://${resName}/nuiReady`, JSON.stringify({}));