function ensurePcTypeSelectionModalOnBody() { var modals = document.querySelectorAll('#pcTypeSelectionModal'); if (modals.length > 1) { for (var di = 1; di < modals.length; di++) { modals[di].parentNode.removeChild(modals[di]); } } var modalEl = document.getElementById('pcTypeSelectionModal'); if (modalEl && modalEl.parentElement !== document.body) { document.body.appendChild(modalEl); } } window.ensurePcTypeSelectionModalOnBody = ensurePcTypeSelectionModalOnBody; function bindPcTypeSelectionFocusTrap($modal) { $modal.off('keydown.pmsPcTypeFocusTrap'); $modal.on('keydown.pmsPcTypeFocusTrap', function(event) { if (event.key !== 'Tab') { return; } var $focusable = $modal.find( 'button:not([disabled]), [href], input:not([disabled]):not([type="hidden"]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])' ).filter(':visible'); if (!$focusable.length) { return; } var first = $focusable.first()[0]; var last = $focusable.last()[0]; if (event.shiftKey && document.activeElement === first) { event.preventDefault(); last.focus(); } else if (!event.shiftKey && document.activeElement === last) { event.preventDefault(); first.focus(); } }); } function isPcTypeSelectionStackedContext() { return $('#projectDetailsModal').hasClass('show'); } window.pmsOpenPcTypeSelectionModal = function(options) { options = options || {}; ensurePcTypeSelectionModalOnBody(); var $modal = $('#pcTypeSelectionModal'); var stacked = options.stacked === true || (options.stacked !== false && isPcTypeSelectionStackedContext()); if (stacked) { document.body.classList.add('pc-type-selection-stacked-open'); } else { document.body.classList.remove('pc-type-selection-stacked-open'); } if ($modal.hasClass('show')) { return; } $modal.modal({ backdrop: true, keyboard: true, focus: true, show: true }); }; function setPcTypeSelectionLoadingState(message) { window.__pmsPcRevFlags = null; $('input[name="pc_type_choice"]').prop('checked', false); $('#pcTypeSelectionProceed').prop('disabled', true); $('#pcTypeSelectionHelp').text(''); // Hide create cards until eligibility returns — avoids flash of PC-II…PC-V on UR/revised schemes. $('#pcTypeSelectionModal .pc-type-card-item').hide(); setPcTypeCardEnabled($('#pcTypeOptionConcept'), false); setPcTypeCardEnabled($('#pcTypeOption1'), false); setPcTypeCardEnabled($('#pcTypeOption2'), false); setPcTypeCardEnabled($('#pcTypeOption3'), false); setPcTypeCardEnabled($('#pcTypeOption4'), false); setPcTypeCardEnabled($('#pcTypeOption5'), false); } /** * Prepare project context and open Select PC (scheme details → Generate PC). * * @param {string|number|null} projectId */ window.pmsPrepareAndOpenPcTypeSelectionModal = function(projectId) { ensurePcTypeSelectionModalOnBody(); $('input[name="pc_type_choice"]').prop('checked', false); $('#pcTypeSelectionProceed').prop('disabled', true); if (projectId != null && String(projectId) !== '') { $('#pcTypeSelectionProjectId').val(String(projectId)); // Scheme-scoped: do not enable all cards before eligibility API applies. setPcTypeSelectionLoadingState(); } else { $('#pcTypeSelectionProjectId').val(''); $('#pcTypeSelectionHelp').text(''); resetPcTypeSelectionModalLabels(); } window.pmsOpenPcTypeSelectionModal({ stacked: isPcTypeSelectionStackedContext() }); }; $('#pcTypeSelectionModal').on('show.bs.modal', function() { document.body.classList.add('pc-type-selection-modal-active'); if (isPcTypeSelectionStackedContext()) { document.body.classList.add('pc-type-selection-stacked-open'); } }); function syncPcTypeModalBackdropStack() { var $backdrops = $('body > .modal-backdrop'); var modalCount = $('.modal.show').length; $backdrops.each(function(index) { var $backdrop = $(this); $backdrop.css('z-index', ''); if (document.body.classList.contains('pc-type-selection-stacked-open')) { $backdrop.css('z-index', index === 0 ? 1045 : 1080); } else if (index === $backdrops.length - 1) { $backdrop.css('z-index', 1045); } }); if (modalCount > 0 && $backdrops.length > modalCount) { $backdrops.slice(modalCount).remove(); } } function cleanupPcTypeModalUiState() { document.body.classList.remove('pc-type-selection-modal-active'); document.body.classList.remove('pc-type-selection-stacked-open'); $('#pcTypeSelectionModal').css('z-index', '').off('keydown.pmsPcTypeFocusTrap'); var openModals = $('.modal.show').length; var backdrops = $('body > .modal-backdrop').length; if (openModals === 0 && backdrops > 0) { $('body > .modal-backdrop').remove(); $('body').removeClass('modal-open').css({ overflow: '', 'padding-right': '' }); } else if (openModals > 0 && backdrops > openModals) { $('body > .modal-backdrop').slice(openModals).remove(); } if ($('#projectDetailsModal').hasClass('show')) { $('body').addClass('modal-open'); } } $('#pcTypeSelectionModal').on('shown.bs.modal', function() { var $modal = $('#pcTypeSelectionModal'); if (isPcTypeSelectionStackedContext()) { document.body.classList.add('pc-type-selection-stacked-open'); } syncPcTypeModalBackdropStack(); bindPcTypeSelectionFocusTrap($modal); var $firstChoice = $modal.find('.pc-type-card-input:not(:disabled)').first(); if ($firstChoice.length) { $firstChoice.focus(); } else { $modal.find('.close').trigger('focus'); } }); $('#pcTypeSelectionModal').on('hidden.bs.modal.pmsPcTypeUi', function() { cleanupPcTypeModalUiState(); }); var PMS_CAN_CREATE_CONCEPT_NOTE = @json(can('project-concept-notes', 'add')); function syncConceptNoteCardVisibility() { var $item = $('#pcTypeCardItemConcept'); if (!$item.length) { return; } if (!PMS_CAN_CREATE_CONCEPT_NOTE) { $item.hide(); $('#pcTypeOptionConcept').prop('checked', false).prop('disabled', true); return; } $item.show(); setPcTypeCardEnabled($('#pcTypeOptionConcept'), true); } function resetPcTypeSelectionModalLabels() { var $t1 = $('#pcTypeCardText1'); if ($t1.length) { $t1.text('PC-1'); } window.__pmsPcRevFlags = null; $('#pcTypeSelectionModal .pc-type-card-item').show(); syncConceptNoteCardVisibility(); setPcTypeCardEnabled($('#pcTypeOption1'), true); setPcTypeCardEnabled($('#pcTypeOption2'), true); setPcTypeCardEnabled($('#pcTypeOption3'), true); setPcTypeCardEnabled($('#pcTypeOption4'), true); setPcTypeCardEnabled($('#pcTypeOption5'), true); } function disableAllPcTypeCardsForAvailabilityError(message) { window.__pmsPcRevFlags = null; $('#pcTypeSelectionModal .pc-type-card-item').show(); syncConceptNoteCardVisibility(); setPcTypeCardEnabled($('#pcTypeOptionConcept'), false, null); setPcTypeCardEnabled($('#pcTypeOption1'), false, null); setPcTypeCardEnabled($('#pcTypeOption2'), false, null); setPcTypeCardEnabled($('#pcTypeOption3'), false, null); setPcTypeCardEnabled($('#pcTypeOption4'), false, null); setPcTypeCardEnabled($('#pcTypeOption5'), false, null); $('input[name="pc_type_choice"]').prop('checked', false); $('#pcTypeSelectionHelp').text(''); syncPcTypeSelectionProceedState(); } function setPcTypeCardEnabled($input, enabled, disabledTitle) { if (!$input || !$input.length) { return; } var $item = $input.closest('.pc-type-card-item'); var $label = $item.find('label.pc-type-card'); $input.prop('disabled', !enabled); $item.toggleClass('pc-type-card-item--disabled', !enabled); $input.attr('aria-disabled', enabled ? 'false' : 'true'); if (!enabled) { if ($input.prop('checked')) { $input.prop('checked', false); } } // Do not show eligibility messages on Generate PC cards / tooltips. $label.removeAttr('title'); $item.removeAttr('title'); } function syncPcTypeSelectionProceedState() { var $checked = $('input[name="pc_type_choice"]:checked:not(:disabled)'); var selectedType = $checked.val(); if (selectedType === 'concept_note' || selectedType === 'pc1' || selectedType === 'pc2' || selectedType === 'pc3' || selectedType === 'pc4' || selectedType === 'pc5') { $('#pcTypeSelectionProceed').prop('disabled', false); return; } $('#pcTypeSelectionProceed').prop('disabled', true); } function applyPcRevisionAvailabilityToModal(data, projectId) { var payload = data && typeof data === 'object' ? Object.assign({}, data) : {}; if (projectId != null && projectId !== '') { payload._project_id = String(projectId); } window.__pmsPcRevFlags = payload; syncConceptNoteCardVisibility(); var isRevisedPc1 = !!(data && data.pc1); var $t1 = $('#pcTypeCardText1'); if ($t1.length && isRevisedPc1) { $t1.text('Revised PC-I'); } else if ($t1.length) { $t1.text('PC-1'); } var pc1InProgress = !!(data && data.pc1_hidden); $('#pcTypeSelectionModal .pc-type-card-item').show(); var conceptAllowed = !(data && data.concept_note === false); setPcTypeCardEnabled($('#pcTypeOptionConcept'), conceptAllowed && PMS_CAN_CREATE_CONCEPT_NOTE, null); if (!conceptAllowed && $('#pcTypeOptionConcept').prop('checked')) { $('#pcTypeOptionConcept').prop('checked', false); } var $pc1Input = $('#pcTypeOption1'); var blockNewPc1Only = !isRevisedPc1 && !pc1InProgress && !(data && data.pc1_new_eligible); var pc1Allowed = isRevisedPc1 || (!pc1InProgress && !blockNewPc1Only); setPcTypeCardEnabled($pc1Input, pc1Allowed, null); var pc2Allowed = !!(data && data.pc2); setPcTypeCardEnabled($('#pcTypeOption2'), pc2Allowed, null); if (!pc2Allowed && data && data.pc2 === false) { $('#pcTypeOption2').prop('checked', false); } var pc3Allowed = !!(data && data.pc3); setPcTypeCardEnabled($('#pcTypeOption3'), pc3Allowed, null); var pc4Allowed = !!(data && data.pc4); setPcTypeCardEnabled($('#pcTypeOption4'), pc4Allowed, null); var pc5Allowed = !!(data && data.pc5); setPcTypeCardEnabled($('#pcTypeOption5'), pc5Allowed, null); // Revised PC-I path (UR / approved baseline): only show Revised PC-I — hide other create cards. if (isRevisedPc1) { $('#pcTypeCardItemConcept').hide(); $('#pcTypeOption2').closest('.pc-type-card-item').hide(); $('#pcTypeOption3').closest('.pc-type-card-item').hide(); $('#pcTypeOption4').closest('.pc-type-card-item').hide(); $('#pcTypeOption5').closest('.pc-type-card-item').hide(); $('#pcTypeOptionConcept, #pcTypeOption2, #pcTypeOption3, #pcTypeOption4, #pcTypeOption5').prop('checked', false); } else { var hidePc3 = !!(data && data.pc3_hidden) || !pc3Allowed; var hidePc4 = !!(data && data.pc4_hidden) || !pc4Allowed; var hidePc5 = !!(data && data.pc5_hidden) || !pc5Allowed; $('#pcTypeOption3').closest('.pc-type-card-item').toggle(!hidePc3); $('#pcTypeOption4').closest('.pc-type-card-item').toggle(!hidePc4); $('#pcTypeOption5').closest('.pc-type-card-item').toggle(!hidePc5); if (!conceptAllowed || !PMS_CAN_CREATE_CONCEPT_NOTE) { $('#pcTypeCardItemConcept').hide(); } if (!pc2Allowed) { $('#pcTypeOption2').closest('.pc-type-card-item').hide(); } } if (!pc1Allowed && $pc1Input.prop('checked')) { $pc1Input.prop('checked', false); } if (!pc3Allowed && $('#pcTypeOption3').prop('checked')) { $('#pcTypeOption3').prop('checked', false); } if (!pc4Allowed && $('#pcTypeOption4').prop('checked')) { $('#pcTypeOption4').prop('checked', false); } if (!pc5Allowed && $('#pcTypeOption5').prop('checked')) { $('#pcTypeOption5').prop('checked', false); } $('#pcTypeSelectionHelp').text(''); syncPcTypeSelectionProceedState(); } function pmsFetchPcRevisionAvailability(projectId) { var url = window.pmsPcRevisionAvailabilityUrl; if (!url || !projectId) { resetPcTypeSelectionModalLabels(); return; } var pendingPid = String(projectId); setPcTypeSelectionLoadingState(); $.getJSON(url, { project_id: projectId }) .done(function(data) { if (String($('#pcTypeSelectionProjectId').val() || '') !== pendingPid) { return; } applyPcRevisionAvailabilityToModal(data, pendingPid); if ($('#pcIiiSubSelectionModal').hasClass('show')) { applyPcIiiSubAvailabilityToModal(data, { preserveSelection: true }); } }) .fail(function(xhr) { if (String($('#pcTypeSelectionProjectId').val() || '') !== pendingPid) { return; } disableAllPcTypeCardsForAvailabilityError(''); }); } $('#pcTypeSelectionModal').on('show.bs.modal.pmsPcTypeData', function() { var projectId = $('#pcTypeSelectionProjectId').val(); if (!projectId) { resetPcTypeSelectionModalLabels(); return; } setPcTypeSelectionLoadingState(); pmsFetchPcRevisionAvailability(projectId); }); $('#pcTypeSelectionModal').on('hidden.bs.modal.pmsPcTypeReset', function() { $('#pcTypeSelectionModal .pc-type-card-item').show(); setPcTypeCardEnabled($('#pcTypeOption1'), true); setPcTypeCardEnabled($('#pcTypeOption2'), true); setPcTypeCardEnabled($('#pcTypeOption3'), true); setPcTypeCardEnabled($('#pcTypeOption4'), true); setPcTypeCardEnabled($('#pcTypeOption5'), true); $('#pcTypeSelectionHelp').text(''); if (!isPcTypeSelectionStackedContext()) { $('#pcTypeSelectionProjectId').val(''); } }); $(document).on('change', 'input[name="pc_type_choice"]', function() { var $radio = $(this); if ($radio.prop('disabled')) { $radio.prop('checked', false); return; } var selectedType = $('input[name="pc_type_choice"]:checked:not(:disabled)').val(); if (selectedType === 'concept_note' || selectedType === 'pc1' || selectedType === 'pc2' || selectedType === 'pc3' || selectedType === 'pc4' || selectedType === 'pc5') { $('#pcTypeSelectionHelp').text(''); $('#pcTypeSelectionProceed').prop('disabled', false); return; } $('#pcTypeSelectionHelp').text(''); $('#pcTypeSelectionProceed').prop('disabled', true); }); function ensurePcIiiSubSelectionModalOnBody() { var modals = document.querySelectorAll('#pcIiiSubSelectionModal'); if (modals.length > 1) { for (var di = 1; di < modals.length; di++) { modals[di].parentNode.removeChild(modals[di]); } } var modalEl = document.getElementById('pcIiiSubSelectionModal'); if (modalEl && modalEl.parentElement !== document.body) { document.body.appendChild(modalEl); } } var pmsPcIiiCreateNavInFlight = false; function applyPcIiiSubAvailabilityToModal(data, options) { options = options || {}; var preserveSelection = !!options.preserveSelection; var flags = data && typeof data === 'object' ? data : {}; var projectId = ($('#pcTypeSelectionProjectId').val() || '').trim(); var prevSelected = preserveSelection ? String($('input[name="pc_iii_sub_choice"]:checked:not(:disabled)').val() || '') : ''; if (!preserveSelection) { $('input[name="pc_iii_sub_choice"]').prop('checked', false); $('#pcIiiSubSelectionProceed').prop('disabled', true); } if (!projectId) { setPcTypeCardEnabled($('#pcIiiSubOptionA'), true); setPcTypeCardEnabled($('#pcIiiSubOptionB'), true); $('#pcIiiSubSelectionHelp').text(''); pmsRestorePcIiiSubSelection(prevSelected); return; } var availabilityReady = String(flags._project_id || '') === String(projectId); if (!availabilityReady) { setPcTypeCardEnabled($('#pcIiiSubOptionA'), true); setPcTypeCardEnabled($('#pcIiiSubOptionB'), true); $('#pcIiiSubSelectionHelp').text(''); pmsRestorePcIiiSubSelection(prevSelected); return; } var pc3aAllowed = !!flags.pc3a; var pc3bAllowed = !!flags.pc3b; setPcTypeCardEnabled($('#pcIiiSubOptionA'), pc3aAllowed, null); setPcTypeCardEnabled($('#pcIiiSubOptionB'), pc3bAllowed, null); $('#pcIiiSubSelectionHelp').text(''); pmsRestorePcIiiSubSelection(prevSelected); } function pmsRestorePcIiiSubSelection(prevSelected) { if (prevSelected !== 'pc3a' && prevSelected !== 'pc3b') { if (!$('input[name="pc_iii_sub_choice"]:checked:not(:disabled)').length) { $('#pcIiiSubSelectionProceed').prop('disabled', true); } return; } var $input = $('input[name="pc_iii_sub_choice"][value="' + prevSelected + '"]:not(:disabled)'); if ($input.length) { $input.prop('checked', true); $('#pcIiiSubSelectionProceed').prop('disabled', false); return; } $('input[name="pc_iii_sub_choice"]').prop('checked', false); $('#pcIiiSubSelectionProceed').prop('disabled', true); } function pmsCleanupPcSelectionModalsUi() { var $main = $('#pcTypeSelectionModal'); var $sub = $('#pcIiiSubSelectionModal'); $main.removeClass('show').css('display', 'none').attr('aria-hidden', 'true'); $sub.removeClass('show').css('display', 'none').attr('aria-hidden', 'true'); $('body > .modal-backdrop').remove(); $('body').removeClass('modal-open').css({ overflow: '', 'padding-right': '' }); cleanupPcTypeModalUiState(); } function pmsNavigateToPcIiiCreate(selected) { if (pmsPcIiiCreateNavInFlight) { return; } if (selected !== 'pc3a' && selected !== 'pc3b') { return; } var projectId = ($('#pcTypeSelectionProjectId').val() || '').trim(); var createUrl = selected === 'pc3a' ? @json(url('pc-forms/create-pc-iii-a')) : @json(url('pc-forms/create-pc-iii-b')); if (projectId) { document.cookie = 'selected_project_id_for_pc_form=' + encodeURIComponent(projectId) + '; path=/; max-age=1800; SameSite=Lax'; createUrl += (createUrl.indexOf('?') >= 0 ? '&' : '?') + 'project_id=' + encodeURIComponent(projectId); } pmsPcIiiCreateNavInFlight = true; $('#pcIiiSubSelectionProceed').prop('disabled', true); var $sub = $('#pcIiiSubSelectionModal'); var navigate = function() { pmsCleanupPcSelectionModalsUi(); window.location.assign(createUrl); }; if ($sub.hasClass('show')) { $sub.one('hidden.bs.modal.pmsPcIiiNav', function() { $sub.off('hidden.bs.modal.pmsPcIiiNav'); navigate(); }).modal('hide'); window.setTimeout(function() { if (pmsPcIiiCreateNavInFlight && $sub.hasClass('show')) { navigate(); } }, 400); return; } navigate(); } function pmsOpenPcIiiSubSelectionModal() { ensurePcIiiSubSelectionModalOnBody(); pmsPcIiiCreateNavInFlight = false; var projectId = ($('#pcTypeSelectionProjectId').val() || '').trim(); if (projectId) { var flags = window.__pmsPcRevFlags || {}; if (String(flags._project_id || '') !== String(projectId)) { pmsFetchPcRevisionAvailability(projectId); } } applyPcIiiSubAvailabilityToModal(window.__pmsPcRevFlags || {}); var $sub = $('#pcIiiSubSelectionModal'); if ($sub.hasClass('show')) { return; } $sub.modal({ backdrop: true, keyboard: true, focus: true, show: true }); } $('#pcIiiSubSelectionModal').on('show.bs.modal.pmsPcIiiSubUi', function() { document.body.classList.add('pc-type-selection-modal-active'); }); $('#pcIiiSubSelectionModal').on('hidden.bs.modal.pmsPcIiiSubReset', function() { if (pmsPcIiiCreateNavInFlight) { return; } $('input[name="pc_iii_sub_choice"]').prop('checked', false); $('#pcIiiSubSelectionProceed').prop('disabled', true); $('#pcIiiSubSelectionHelp').text(''); if (!$('#pcTypeSelectionModal').hasClass('show')) { cleanupPcTypeModalUiState(); } }); $(document).on('change', 'input[name="pc_iii_sub_choice"]', function() { var selected = $('input[name="pc_iii_sub_choice"]:checked:not(:disabled)').val(); $('#pcIiiSubSelectionProceed').prop('disabled', !(selected === 'pc3a' || selected === 'pc3b')); $('#pcIiiSubSelectionHelp').text(''); }); $(document).on('click', '#pcIiiSubSelectionBack', function() { if (pmsPcIiiCreateNavInFlight) { return; } var $sub = $('#pcIiiSubSelectionModal'); $sub.one('hidden.bs.modal.pmsPcIiiBack', function() { $sub.off('hidden.bs.modal.pmsPcIiiBack'); window.pmsOpenPcTypeSelectionModal({ stacked: isPcTypeSelectionStackedContext() }); }).modal('hide'); }); $(document).on('click', '#pcIiiSubSelectionProceed', function() { if (pmsPcIiiCreateNavInFlight) { return; } var selected = $('input[name="pc_iii_sub_choice"]:checked:not(:disabled)').val(); if (selected !== 'pc3a' && selected !== 'pc3b') { return; } pmsNavigateToPcIiiCreate(selected); }); function pmsTransitionToPcIiiSubSelectionModal() { var $mainModal = $('#pcTypeSelectionModal'); if (!$mainModal.hasClass('show')) { pmsOpenPcIiiSubSelectionModal(); return; } $mainModal.one('hidden.bs.modal.pmsPcIiiSub', function() { $mainModal.off('hidden.bs.modal.pmsPcIiiSub'); pmsOpenPcIiiSubSelectionModal(); }).modal('hide'); } $(document).on('click', '#pcTypeSelectionProceed', function() { var selectedType = $('input[name="pc_type_choice"]:checked:not(:disabled)').val(); if (selectedType === 'concept_note') { var conceptCreateUrl = @json(route('project-concept-notes.create')); var conceptEligibilityUrl = @json(route('project-concept-notes.scheme-eligibility')); var conceptProjectId = ($('#pcTypeSelectionProjectId').val() || '').trim(); if (!conceptProjectId) { window.location.href = conceptCreateUrl; return; } $.getJSON(conceptEligibilityUrl, { project_id: conceptProjectId }) .done(function (data) { if (data && (data.eligible || data.modified_eligible)) { window.location.href = conceptCreateUrl + '?project_id=' + encodeURIComponent(conceptProjectId); return; } $('#pcTypeSelectionHelp').text(''); }) .fail(function () { $('#pcTypeSelectionHelp').text(''); }); return; } if (selectedType === 'pc3') { var flags = window.__pmsPcRevFlags || {}; var projectId = ($('#pcTypeSelectionProjectId').val() || '').trim(); if (projectId && !flags.pc3) { return; } pmsTransitionToPcIiiSubSelectionModal(); return; } if (selectedType === 'pc4') { var flagsPc4 = window.__pmsPcRevFlags || {}; var projectIdPc4 = ($('#pcTypeSelectionProjectId').val() || '').trim(); if (projectIdPc4 && !flagsPc4.pc4) { return; } var createPcIvUrl = @json(url('pc-forms/create-pc-iv')); if (projectIdPc4) { document.cookie = 'selected_project_id_for_pc_form=' + encodeURIComponent(projectIdPc4) + '; path=/; max-age=1800; SameSite=Lax'; createPcIvUrl += (createPcIvUrl.indexOf('?') >= 0 ? '&' : '?') + 'project_id=' + encodeURIComponent(projectIdPc4); } window.location.href = createPcIvUrl; return; } if (selectedType === 'pc5') { var flagsPc5 = window.__pmsPcRevFlags || {}; var projectIdPc5 = ($('#pcTypeSelectionProjectId').val() || '').trim(); if (projectIdPc5 && !flagsPc5.pc5) { return; } var createPcVUrl = @json(url('pc-forms/create-pc-v')); if (projectIdPc5) { document.cookie = 'selected_project_id_for_pc_form=' + encodeURIComponent(projectIdPc5) + '; path=/; max-age=1800; SameSite=Lax'; createPcVUrl += (createPcVUrl.indexOf('?') >= 0 ? '&' : '?') + 'project_id=' + encodeURIComponent(projectIdPc5); } window.location.href = createPcVUrl; return; } if (selectedType !== 'pc1' && selectedType !== 'pc2') return; var projectId = ($('#pcTypeSelectionProjectId').val() || '').trim(); var flags = window.__pmsPcRevFlags || {}; if (projectId && String(flags._project_id || '') !== String(projectId)) { return; } if (selectedType === 'pc1' && !flags.pc1 && (flags.pc1_hidden || flags.pc1_new_eligible === false)) { return; } if (selectedType === 'pc2' && projectId && flags.pc2 === false) { return; } var createUrl = selectedType === 'pc2' ? @json(url('pc-forms/create-pc-ii')) : @json(url('pc-forms/create')); if (projectId) { var beginUrl = window.pmsPcBeginApprovedRevisionUrl; if (selectedType === 'pc1' && flags.pc1 && flags.approved_pc_form_id && beginUrl && String(flags._project_id || '') === String(projectId)) { window.location.href = beginUrl + '?pc_form_id=' + encodeURIComponent(String(flags.approved_pc_form_id)); return; } document.cookie = 'selected_project_id_for_pc_form=' + encodeURIComponent(projectId) + '; path=/; max-age=1800; SameSite=Lax'; createUrl += (createUrl.indexOf('?') >= 0 ? '&' : '?') + 'project_id=' + encodeURIComponent(projectId); } else if (selectedType === 'pc2') { // Schemeless PC-II (no BPMS scheme) — same idea as Concept Note without scheme. createUrl += (createUrl.indexOf('?') >= 0 ? '&' : '?') + 'without_scheme=1'; } window.location.href = createUrl; }); $(document).on('click', '#pci-index-open-pc-type-modal', function() { window.pmsPrepareAndOpenPcTypeSelectionModal(null); }); $(function() { ensurePcTypeSelectionModalOnBody(); ensurePcIiiSubSelectionModalOnBody(); });