ADH JRT

Taking you to the sign-in page…

Sign in

{{ sessionName }}
{{ sessionRole }}
Account
{{ sessionName }}
{{ sessionRole }}
View manager area Draw ← Main site
Registrations
Tournament configuration
Site admin
{{ dataError }}
Loading registrations and accounts…
Registration window

When clubs and parents can use the entry forms on the public site. All times are Abu Dhabi time. Registration opens at the start of the opening day and closes at the end of the closing day. Changing these does not need a deploy — save here and the public page follows. Nothing changes until you press Save.

{{ rWhichNote }}

{{ rError }}
{{ rSuccess }}
Fix these before saving
• {{ rp }}
Worth a look — you can still save
• {{ rw }}
The dates

Leave a date empty to leave it undecided. With no opening date, registration stays closed — which is what you want until the date is agreed. The date under each box is what the public page will print, spelled out, so a mis-typed month is visible straight away.

{{ rOpensEcho }}
{{ rClosesEcho }}
Which one is in charge

One switch, not a date and an on/off toggle — two of those end up disagreeing and nobody can tell which one won. Force open is how you test the real forms before the opening date; the public page shows a TEST MODE strip the whole time it is on, so a test can never be mistaken for the real thing.

What the public page says
Preview of your unsaved changes

Right now, on this clock. The public page works this out every second, so it changes over at the moment the date does — nobody has to reload it.

{{ rPreviewPill }}
{{ rPreviewBlurb }}
{{ rPreviewButtons }}
Test mode strip is showing on the public page
Ceremonies
Loading…
The presentation could not load. This is not the same as nothing being set up — try Refresh in a moment.
{{ presError }}
No ceremonies yet. Press + New ceremony, name it (for example “Minis, after lunch”) and pick the age groups presented at it.
{{ presProgress }}
No awards yet. An age group's awards appear once its fixtures are published; add others with Add an award by hand.
{{ r.groupName }}
{{ r.award }} Joint Added by hand
{{ r.winner }}
{{ r.awaiting }}
{{ r.detail }}
{{ r.score }} {{ r.presentedLine }}
{{ presEditHeading }}
Age groups presented here

An age group is in one ceremony at a time, so nothing is read out twice. The order runs youngest first, Shield → Plate → Bowl → Cup, then the spirit award; change it with Reorder.

{{ presXHeading }}

Staff only: it never appears on a public page.

Share a document

Managers see these on their own dashboard. Choose who each one is for — a manager only sees documents tagged for everyone or for their own age group. PDF, PNG, JPG, XLSX or DOCX, up to 4 MB. Nothing here is ever public.

{{ docDropLabel }}
PDF, PNG, JPG, XLSX or DOCX · up to 4 MB
{{ docFileLabel }}
{{ docsMsg }}
Shared documents
Documents could not load. This is not the same as there being none — try again in a moment.
No documents yet. Upload one above and every manager it is tagged for will see it.
{{ row.title }}Not shared
{{ row.description }}
{{ row.meta }} · {{ row.when }}
For: {{ row.who }}
{{ docViewTitle }}
Opening…
{{ docViewError }}
{{ docViewTitle }}
Delete “{{ purgeTitle }}” for good?

This removes the file itself. There is no undo — unlike Stop sharing, which only takes it off the managers’ list. Type the document’s title to confirm.

Emergencies
A manager's Injury alert turns every signed-in organiser's screen red, with an alarm, until someone acknowledges it. The alert is an addition to a phone call, never a replacement: keep a desk screen open, and tap anywhere on it each morning so the alarm can sound (a small "Alarm off" tag shows until you do).
Desk phone number (shown to managers when they raise an alert)
{{ emPlayStatus }}
{{ emMsg }}
Ambulance alerts, last 12 hours ({{ emAlertCount }})
{{ ea.text }}
None.
Match-day banner
A short message shown at the top of the homepage, /scores and the app - for example "Play suspended for lightning. Updates here." It stays up until you clear it. Up to 200 characters, plain text.
{{ bnStatus }}
{{ bnMsg }}
Match-day dashboard
Open Tournament HQ
{{ mdChecked }}
{{ mdFailedNote }}
No score yet, kick-off passed ({{ mdOverdueCount }})
{{ mo.text }}
None.
Waiting for the referee's sign-off ({{ mdUnsignedCount }})
{{ mu.text }}
None.
Pitches running late today ({{ mdLateCount }})
{{ ml.text }}
None running {{ mdLateFloor }}+ minutes late.
Scoring for {{ tournAgeName }}
Tick what can be scored at this age group. Managers only see the boxes you leave ticked, and totals are worked out from them — the server uses the same setting, so the two cannot drift apart.
{{ scoringMsg }}
All age groups
Publish or withdraw every age group in one go. “Publish all” publishes each group that has a saved draw; any group with nothing saved yet is skipped and reported.
{{ bulkMsg }}
Simulate a tournament
For testing only. Publishes every age group, records a walkover (the first team listed wins) for every pool match, generates the knockout stage from the resulting standings and walks that over too — finals included — then publishes again so the finished bracket is visible everywhere.
This overwrites any score already recorded for a match, real or otherwise. Reset the simulation undoes it — unpublishes every group, removes every result and clears the generated bracket — but leaves saved pools and team assignments untouched.
It is a tournament day, so this is switched off. Nothing here can be pressed on 7 or 8 November.
{{ simProgress }}
{{ simMsg }}
Fixtures & tables

A read-only look at any age group's draw, results and standings — including before it is published. To change this draw, use Open draw; to enter a score, use /manager.

Open draw
Awaiting review
{{ r.name }} — sent by {{ r.requestedBy }}, {{ r.when }}
{{ r.noteLine }}
Open draw
Loading…
Could not load
The draw for {{ fxvAgeName }} could not be fetched. Pick the age group again to retry.
{{ fxvNoteTitle }}
{{ fxvNoteBody }}
Nothing drawn yet
There is no saved draw for {{ fxvAgeName }} and nothing published.
No matches
Nothing is scheduled for {{ fxvAgeName }} yet.
{{ g.name }}
{{ r.time }}
{{ r.pitch }}
{{ r.teams }}
{{ r.score }}
Knockout
{{ r.time }}
{{ r.pitch }}
{{ r.meta }}{{ r.teams }}
{{ r.score }}
Festival age group
{{ fxvFestivalBlurb }}
{{ tc.name }} — table
# Team P W D L PF PA +/− Pts
{{ t.pos }} {{ t.team }} {{ t.P }} {{ t.W }} {{ t.D }} {{ t.L }} {{ t.PF }} {{ t.PA }} {{ t.diff }} {{ t.pts }}
Green edge = qualifies for the knockout stage.
Show which day each age group plays

{{ dsStatus }} Staff pages always show it. Turn it on once the split is final, and before fixtures are published.

{{ dsMsg }}
Venue & days

The pitches running on each day, and which day each age group plays. An age group's day comes from where it has pitches — move it to the other day and it moves on the fixtures, the app and the public site. Nothing here changes until you press Save.

{{ vError }}
{{ vSuccess }}
Fix these before saving
• {{ pr }}
Worth a look — you can still save
• {{ wn }}
Where each group plays — {{ vDayViewLabel }}

Every pitch as its own cell — the view with room for the names, and the one that reads on a phone. It redraws as you edit below, before you save. A pitch used by two groups is a time-share, not a clash.

The real Zayed Sports City map. Unlock, then drag each block to where it actually is — the starting positions are the code's guess and you know better than it does. Positions are shared across both days, because a block is the same field on Saturday as on Sunday — that is why they still show regardless of which day tab is selected above. Save with the button at the top of the tab.

Blocks move when you drag them — lock again when you're done.
{{ vm.summary }}
No pitches on this day yet, so there is nothing to draw.
Zayed Sports City pitch map
{{ blk.name }}
{{ blk.mapSplit }}
{{ mg.code }}
{{ blk.mapWho }}
Not on the map yet
{{ blk.name }}
{{ pp.name }}
{{ pp.who }}
{{ nt.text }}
Pitches — {{ d.label }}
{{ d.summary }}

{{ d.hint }}

{{ mp.name }}
{{ mp.surfaceLabel }}
{{ mp.usageLabel }}
Nothing is in use on this day yet.
Age groups — {{ vDayViewLabel }}

Click a group to open it and tick its pitches. Changing a group's day clears its pitches, because the other day has different ones. Two groups can share a pitch — D4 and D5 run U6 in the morning and U7 in the afternoon, which is a time-share, not a clash.

{{ g.expandArrow }}
{{ g.name }}
{{ g.pickedLabel }}
Open draw
No pitches chosen yet
Create a login

Makes an account that can sign in straight away — no invite code, no approval step. You type the password and tell them yourself; nothing is emailed.

{{ cmRoleNote }}

Passwords are at least {{ cmMinPassword }} characters.
{{ cmError }}
{{ cmSuccess }}
Pending approval
{{ acctApproveError }}
{{ a.name }} — {{ a.username }}
{{ a.roleLabel }} · requested {{ a.createdAtDisplay }}
Revoked
{{ a.name }} — {{ a.username }}
{{ a.roleLabel }} · revoked {{ a.revokedAtDisplay }}
All accounts
Name Username Role Status
{{ a.name }} {{ a.username }} {{ a.roleLabel }} Active
No approved accounts yet.
Managers by age group
{{ grp.name }}
{{ mgr.label }}
No manager yet
Club invite link

The link you email to club contacts. It is deliberately not published anywhere on the site, and the key on the end of it is the only thing keeping the form private — send it to clubs directly, never post it publicly.

{{ clubLinkShown }}
{{ clubLinkStatusText }}
{{ clubLinkError }}
Clubs — declared vs registered

Clubs declare how many teams they expect to bring, months before teams register one by one. This compares the two. Anything marked Short or Over is a club worth a phone call — a plan that has changed still changes pools, pitches and the draw. Declarations are estimates, not commitments.

The club declarations sheet could not be read, so this tab is showing nothing rather than guessing. Teams and Players are unaffected. Check GOOGLE_SHEET_ID_CLUBS in Netlify and that the sheet is still shared with the service account.
No club has sent a declaration yet. They arrive through the link you email clubs — nothing on the site links to that form.
{{ clubsDeclaredCount }} clubs declared
{{ clubsDeclaredTeams }} teams declared
{{ clubsRegisteredTeams }} teams registered
{{ clubNamesError }}
{{ clubMergeNote }}
Club Declared Registered Status Club list Contact
{{ c.club }} {{ c.declaredTotal }} {{ c.registeredTotal }} {{ c.statusLabel }}
{{ c.hintText }}
{{ c.namedBadge }}
{{ c.contactName }}
{{ c.contactEmail }}
{{ c.contactPhone }}

They said: {{ c.notes }}

{{ pg.name }}{{ pf.text }}
This declaration has no pool picks (sent before pools were asked for).
POOL APOOL BPOOL CPOOL D Declared{{ dc.n }} Asked{{ ac.n }} In draw{{ wc.n }}
{{ pt.code }}Asked {{ pt.asked }}In draw {{ pt.draw }}{{ pt.tag }}
Age group Declared Registered
{{ g.name }} {{ g.declared }} {{ g.registered }}
Every club that declared has registered exactly what it said. Nothing to chase.
Registered, but never declared

These clubs have teams in the tournament and no declaration on file. Either they skipped the declaration, or they typed their club name differently on the two forms — worth a look before you chase them.

{{ u.club }} — {{ u.registeredTotal }} registered
{{ h }}
{{ g.club }} ({{ g.count }})Rehearsal
{{ r.submittedAtDisplay }}
{{ r.club }} {{ r.teamName }}
{{ r.editedLabel }}
{{ r.shortLabel }}
{{ r.overLimitLabel }}
{{ r.ageGroup }} {{ c.label }} — {{ r.preferredPool }} {{ r.headCoachName }} {{ r.headCoachEmail }} {{ r.headCoachMobile }} {{ r.managerName }} {{ r.managerMobile }} {{ r.notes }}
Squad ({{ r.rosterCount }})
No players listed yet.
{{ p.name }} ({{ p.dob }}) {{ p.flag }}
Changes, newest first
{{ e.atDisplay }} · by edit link
{{ ch }}
{{ r.registeredDisplay }} · registered
{{ r.linkMsg }}
No team registrations match your filters.
Playing up {{ playUpCount }} of the players in view are playing up an age group.
{{ h }}
{{ g.club }} ({{ g.count }})Rehearsal
{{ r.submittedAtDisplay }}
{{ r.playerName }} {{ r.dob }} {{ r.sexDisplay }} {{ r.club }} {{ r.ageGroup }} {{ r.parentName }} {{ r.parentEmail }} {{ r.parentMobile }} {{ r.emergencyContact }} {{ r.emergencyMobile }} {{ r.medicalDisplay }} {{ r.consent }} Playing up — U18 third year — club holds proof of school enrolment
No player registrations match your filters.
Removed bin ({{ binCount }})

Removed registrations wait here for 30 days. Any organiser can restore one; after 30 days it is deleted for good. Test registrations are the ones made while a form was on Force open, or under a club name starting “Rehearsal”.

{{ binMsg }}

Loading the bin…

Nothing in the bin.

{{ b.label }}
{{ b.meta }}
{{ acctHeading }}
Loading your account…
{{ acctLoadError }}
Name
{{ acctName }}
{{ acctUsernameLabel }}
{{ acctUsername }}
Role
{{ acctRoleLabel }}
Sign-in method
{{ acctSignInMethod }}
Member since
{{ acctMemberSince }}
Last sign in
{{ acctLastSignIn }}
Awaiting approval - cannot sign in yet.
You sign in with the Quins Club Hub, so there is no password here. To change your password, change it in the Club Hub.
Change password
Passwords are at least {{ acctMinPassword }} characters.
{{ acctError }}
{{ acctSuccess }}
Organiser actions

Resetting a password does not ask for their old one - the point is that it is lost. Tell them the new one yourself; nothing is emailed.

Signs in through the Quins Club Hub — no password to reset. Choose a role in the Pending list to approve this Club Hub login.
Draw rights

Off by default. Pools and teams are local to one age group; kickoff times and pitches are shared across the day, so grant those only to a manager who will run the clash check with you.

{{ acctRightsMsg }}
Also manages

Tick the age groups this organiser is also the named manager of. This does not change what they can do — organisers already run every group — it lists them as the group’s manager and opens that group in their manager view.

{{ acctManagesMsg }}
Role

{{ acctRoleChangeBlurb }}

{{ modalTitle }}