Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 25 additions & 3 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -994,6 +994,15 @@
border-top: 1px solid var(--border);
}

.case-card-links {
margin-bottom: var(--space-md);
}

.case-card-link {
font-size: 0.75rem;
padding: var(--space-xs) var(--space-md);
}

.case-card-meta-item {
display: flex;
flex-direction: column;
Expand Down Expand Up @@ -2053,8 +2062,17 @@ <h3 id="add-case-title">Add New Case</h3>

<script>
const USCIS_BASE="https://my.uscis.gov/account/case-service/api/cases/";
const USCIS_CASE_STATUS_BASE="https://my.uscis.gov/account/case-service/api/case_status/I";
const TZ="America/New_York";

function buildCasesApiUrl(receiptNumber) {
return USCIS_BASE + encodeURIComponent(receiptNumber);
}

function buildCaseStatusApiUrl(receiptNumber) {
return USCIS_CASE_STATUS_BASE + encodeURIComponent(receiptNumber);
}

function loadReceipts(){return JSON.parse(localStorage.getItem("receipts")||"[]")}
function saveReceipts(r){localStorage.setItem("receipts",JSON.stringify(r))}
function loadCases(){return JSON.parse(localStorage.getItem("cases")||"{}")}
Expand Down Expand Up @@ -2275,12 +2293,12 @@ <h3 id="add-case-title">Add New Case</h3>
function openAllApiTabs() {
const rec=loadReceipts();
if(rec.length===0) return alert("Add receipts first");
rec.forEach((r,i)=>setTimeout(()=>window.open(USCIS_BASE+encodeURIComponent(r),"_blank"),i*300));
rec.forEach((r,i)=>setTimeout(()=>window.open(buildCasesApiUrl(r),"_blank"),i*300));
}

// open single API tab for a specific receipt
function openSingleApiTab(receiptNumber) {
window.open(USCIS_BASE+encodeURIComponent(receiptNumber),"_blank");
window.open(buildCasesApiUrl(receiptNumber),"_blank");
}

document.getElementById("openTabsBtn").onclick = openAllApiTabs;
Expand Down Expand Up @@ -2594,7 +2612,7 @@ <h3 id="add-case-title">Add New Case</h3>
updateProgress();

// Open API tab
window.open(USCIS_BASE+encodeURIComponent(val),"_blank");
window.open(buildCasesApiUrl(val),"_blank");

// Close modal
closeAddCaseModal();
Expand Down Expand Up @@ -3005,6 +3023,7 @@ <h3 id="add-case-title">Add New Case</h3>
Object.values(cases).forEach(caseData => {
const latestSnapshot = caseData.history[caseData.history.length - 1];
const data = latestSnapshot.data;
const caseStatusApiUrl = buildCaseStatusApiUrl(data.receiptNumber);
const daysSinceSubmission = data.submissionTimestamp ? daysSince(data.submissionTimestamp) : null;
const daysSinceUpdate = data.updatedAtTimestamp ? daysSince(data.updatedAtTimestamp) : null;
const isCompleted = data.closed === true;
Expand All @@ -3023,6 +3042,9 @@ <h3 id="add-case-title">Add New Case</h3>
}
</div>
<div class="case-card-status">${data.caseStatus || 'No status available'}</div>
<div class="case-card-links">
<a href="${caseStatusApiUrl}" target="_blank" rel="noopener" class="quick-link case-card-link">Open case_status API</a>
</div>
<div class="case-card-meta">
${daysSinceSubmission !== null ? `
<div class="case-card-meta-item">
Expand Down