Checking session…

PCS FZC

Admin sign-in

{{ signInError }}

PCS Admin

Add Exam Date

A text row keeps whichever flag you set — there are no dates for the countdown to work from.

A row with real dates shows whatever Status Settings gives it today; the flag you pick here only decides rows the dates have not reached yet.

Will show on the site as {{ formPreview }}.

Active Exam Dates ({{ scheduleList.length }})

No exam dates listed.
{{ displayDate(item) }} stored "{{ item.status }}" — not a current tag stored {{ item.status }} — dates still decide

Add Document

Saves as the share link. Students see it embedded here: Drive preview.

That is not a Google Drive file link, so the Library page will not be able to embed it.

Library ({{ documentList.length }})

No documents in library.
{{ doc.badge || categoryBadgeMap[doc.category] }} {{ doc.title }} {{ doc.revision }} no revision

Saves as the share link. Students see it embedded here: Drive preview.

That is not a Google Drive file link, so the Library page will not be able to embed it.

Status tags, colours and auto-calculation

Saved straight to the database, so the ICAO to EASA table follows the same list.

Rows are stage order — earliest stage first — and the lowest row whose window covers today wins, so a later stage takes the day over from an earlier one.

Each tag owns its own window and the ladder cannot clash: more than 60 days before the start day, between 60 and 20 days before, within 20 days of the start day covers every day once and never twice.

unsaved changes
No status tags. Add one, or restore the built-in set.
to days
{{ s.label || 'Preview' }}

{{ usageCount(s.label) }} row{{ usageCount(s.label) === 1 ? '' : 's' }} stored with it

Empty window — the first number is how far ahead it opens, so it has to be the larger one. This tag never shows.

Manual only — the dates never pick this one; you set it on the row.

{{ statusNotice }}

Until the status-config read rule is published in Firebase, the public table keeps its built-in set — it never goes blank because these values ship inside both pages.