platform.zedlevel.app
Every clickable control, by role
All 255 buttons, links, toggles and submits in the platform — what each one does, and which role actually sees it.
Show what this role can click
Everything 255
Student 149
Owner 255
Support 211
Teacher 169
Mentor 189
Staff see the student side too. All four staff roles are entitled to every course so they can review content, so the 149 student-facing controls are in every staff role's count.
Signing in
/login · /reset
17 controls
Anyone, signed out
إظهار كلمة المرور field.password_show Reveal what you're typing — screen-reader label on the eye icon. U O S T M
إخفاء كلمة المرور field.password_hide Hide it again. U O S T M
دخول signin.submit Sign in with email and password. U O S T M
…جارٍ الدخول signin.submit_pending Waiting state while signing in. U O S T M
نسيت كلمة المرور؟ signin.forgot_link Open the password-reset form. U O S T M
ما عندك حساب؟ أنشئ واحدًا signin.join_link Switch to sign-up. Hidden entirely when signups are closed. U O S T M
إنشاء الحساب signup.submit Create the account. U O S T M
…جارٍ الإنشاء signup.submit_pending Waiting state while the account is created. U O S T M
عندك حساب؟ سجّل دخولك signup.signin_link Switch to the sign-in form. U O S T M
أرسل لي رمزًا code.send Email a one-time sign-in code instead of using a password. U O S T M
…جارٍ الإرسال code.send_pending Waiting state while the code is sent. U O S T M
تأكيد الرمز code.verify Submit the code and sign in. U O S T M
…جارٍ التحقق code.verify_pending Waiting state while the code is checked. U O S T M
أرسل رابط الاستعادة forgot.submit Email a reset link. U O S T M
→ الرجوع لتسجيل الدخول forgot.back_link Back to sign-in. U O S T M
حفظ كلمة المرور reset.submit Save the new password. U O S T M
…جارٍ الحفظ reset.submit_pending Waiting state while it saves. U O S T M
Student shell
/dashboard · /account
20 controls
Tabs, account, sign-out
مهام اليوم tab.today Switch to today's tasks — the default tab. U O S T M
تصفّح الدورات tab.explore Switch to the course browser. U O S T M
حسابي tab.account Switch to My account. U O S T M
تواصل معنا للتسجيل today.empty_cta WhatsApp the team to enrol. Enrolment is always manual — there is no self-serve payment. U O S T M
شوف الدورات المتاحة ‹ today.empty_explore_link Browse what's on offer instead. U O S T M
ادخل الجلسة today.live_join Join today's live session straight from the task list. U O S T M
تصفّح الدورات account.browse_action Way out of the no-subscriptions state, into the course browser. U O S T M
تسجيل الخروج account.sign_out Sign out. U O S T M
جارٍ تسجيل الخروج… account.sign_out_pending Waiting state while signing out. U O S T M
تواصل عبر واتساب account.contact_action Shown for an expired or paused subscription — opens WhatsApp. U O S T M
جدّد عبر واتساب account.renew_action Shown when a subscription is about to end. Renewal is staff-handled. U O S T M
استأنف عبر واتساب account.resume_action Shown for a paused subscription only — the time is preserved, so it's a resume, not a purchase. U O S T M
اشتراكاتك ومدّتها explore.all_owned_link For a student who already owns everything — jump to My account to see end dates. U O S T M
إخفاء التفاصيل explore.card.hide_details Collapse it again. U O S T M
عرض التفاصيل explore.card.show_details Expand the course card. U O S T M
اشترك عبر واتساب explore.card.wa Subscribe via WhatsApp — a staff member completes it. U O S T M
جارٍ الإعادة… sub.repeat_pending Waiting state while the repeat is filed. U O S T M
أعد أسبوعي sub.repeat_action Ask to repeat the current week. U O S T M
أوقف أسبوعًا sub.pause_action Request a one-week pause. U O S T M
احجز الدورة القادمة sub.next_course_action Book the next course in the track. U O S T M
Course card
/c/[slug]
33 controls
The student's weekly surface
ابدأ المهمة card.action_start Task button — start it. U O S T M
راجع المهمة card.action_review Task button — reopen a finished task. U O S T M
غير متاحة بعد card.action_future Task button, disabled — not open yet. U O S T M
انتهت المهلة card.action_past Task button, disabled — the window closed. U O S T M
عرض النتيجة card.action_result Task button — see the score. U O S T M
افتح الدورة cc.open_course Open the course. U O S T M
افتح cc.open Open a side course. U O S T M
اطلب فتحه مبكرًا cc.request_early File an unlock request for a locked lesson. U O S T M
تمام cc.ok Dismiss the dialog. U O S T M
راجع الدرس cc.review_lesson Reopen a lesson already finished. U O S T M
امسح التقدم cc.clear_progress Clear your own completion on that lesson. U O S T M
نعم ✅ cc.yes_done Yes — confirm you finished it. U O S T M
لا cc.not_yet No — not finished yet. U O S T M
نعم، شوفه cc.yes_open Yes — open it. U O S T M
لا cc.no No — leave it closed. U O S T M
نعم، أعد أسبوعي cc.repeat_yes Confirm repeating the week. U O S T M
لا، أكمّل دروسي cc.repeat_no Decline and carry on with the lessons. U O S T M
🔁 أعد هذا الأسبوع cc.fork_repeat Behind-schedule option — repeat this week. U O S T M
🙋 تواصل مع مشرفك cc.contact_mentor Behind-schedule option — reach your mentor. U O S T M
أرسل الطلب cc.reason_send Send the advance request with your reason attached. U O S T M
لاحقًا cc.later Dismiss and decide later. U O S T M
ابدأ الاختبار cc.gate_quiz_cta Take the quiz the week gate requires. U O S T M
أبلغ مشرفك cc.gate_ask_cta Tell your mentor you're ready — the ask-based gate. U O S T M
📲 تواصل معه واتساب cc.wa_contact Open WhatsApp to your mentor. U O S T M
🙋 أبلغ مشرفك cc.ask_action Flag your mentor from the gate. U O S T M
📲 تواصل معنا cc.course_done_action Course finished — contact the team about what comes next. U O S T M
العودة cc.back Back out of the completion screen. U O S T M
شوف خياراتك cc.see_options Open the behind-schedule choices. U O S T M
كمّل دروسك cc.keep_going Dismiss them and carry on. U O S T M
العودة إلى أسبوعك الحالي cc.back_to_current Leave a past week and return to the current one. U O S T M
راجع هذا الأسبوع cc.review_this_week Reopen this week's material. U O S T M
راجِع cc.cta_review The lesson button — already done, open to review. U O S T M
ابدأ cc.cta_start The lesson button — not started yet. U O S T M
Lessons
/lesson/*
66 controls
Vocab, grammar, listening, writing, foundation, business
↻ رجوع للنص listening.back_to_text Back to the transcript. U O S T M
العودة للدورة ‹ listening.back_to_course Back to the course. U O S T M
إخفاء الترجمة listening.hide_translation Hide it again. U O S T M
إظهار الترجمة listening.show_translation Show the Arabic translation. U O S T M
أنهيت الاستماع listening.cta_done Mark the listening lesson complete. U O S T M
شغّل الفيديو أولًا listening.cta_play_first Disabled state — it genuinely will not work until the video has played. U O S T M
اكشف ترجمة {n} سطر بعد listening.cta_reveal_more Reveal the next batch of translated lines. U O S T M
استمع الآن listenhub.cta Start today's listening card. U O S T M
ابدأ الآن convhub.cta Start today's conversation card. U O S T M
راجع المجموعة مرة أخرى words.again Review the set once more. U O S T M
عد للمجموعات words.back_to_sets Back to the list of sets. U O S T M
أتممت هذه المجموعة words.finish Finish this set of the hundred words. U O S T M
راجع كلمات الدروس السابقة ({n}) deck.more Pull in words from earlier lessons. U O S T M
إعادة التقليب deck.reshuffle Shuffle the deck and go again. U O S T M
أعرفها deck.mark_known Card answer — I know this word. U O S T M
أراجعها deck.mark_review Card answer — keep it for review. U O S T M
إعادة الاختبار deck.quiz_retry Retake the quick quiz. U O S T M
العودة للدورة vocab.back_course Back to the course. U O S T M
🏦 مركز المفردات — راجع واختبر vocab.center Open the vocabulary centre to review and test. U O S T M
الدرس التالي ‹ vocab.next_lesson Straight into the next lesson. U O S T M
تواصل معنا لمعرفة خطوتك التالية vocab.next_ask Contact the team about what to study next. U O S T M
↩ الرجوع لمحتوى الدرس vocab.back_content Back to the lesson content. U O S T M
فهمت، لنبدأ vocab.intro_go Dismiss the lesson intro and begin. U O S T M
بطاقات vocab.view_cards Show the learn tab as cards. U O S T M
شبكة vocab.view_grid Show it as a grid. U O S T M
أعرفها ✓ vocab.mark_known Mark the word known. U O S T M
أراجعها vocab.mark_review Keep the word for review. U O S T M
🏁 أتممت الدرس vocab.finish_done Mark the vocabulary lesson complete. U O S T M
← الرجوع لتبويب تدرّب واختبر vocab.back_practice Back to the practise-and-test tab. U O S T M
▶ تشغيل الكل vocab.play_all Play every word's audio in sequence. U O S T M
إخفاء الكل vocab.hide_all Hide them all again. U O S T M
كشف الكل vocab.show_all Reveal every translation at once. U O S T M
تمت - التالي vocab.next_tab Finish this tab and move to the next. U O S T M
↩ الرجوع للمراجعة review.back_review Back to the review screen. U O S T M
🙈 إخفاء الكل review.hide_all Hide it all again. U O S T M
👁 كشف الكل review.show_all Reveal everything at once. U O S T M
التالي: 🍃 كل الكلمات ‹ review.next_words Move on to all the week's words. U O S T M
أضفها لبنك المراجعة 🔁 review.add_bank Add the word to your review bank. U O S T M
التالي: ⚡ اختبر نفسك ‹ review.next_quiz Move on to the self-test. U O S T M
🏁 أتممت المراجعة review.finish_done Mark the week's review complete. U O S T M
مراجعة center.mode_review Vocabulary centre in review mode. U O S T M
اختبار center.mode_quiz Vocabulary centre in test mode. U O S T M
راجع الدرس مرة أخرى foundation.again Review the lesson once more. U O S T M
نعم، تابع foundation.unseen_yes Yes — carry on past the clip. U O S T M
لا، أرجع foundation.unseen_no No — go back and watch it. U O S T M
أنهيت الدرس foundation.finish Mark the foundation lesson complete. U O S T M
استمع للكلمات foundation.listen_words Play the words' audio. U O S T M
أعد المحاولة foundation.retry Try the exercise again. U O S T M
متحرك (Vowel) foundation.drill_vowel Letter drill answer — vowel. U O S T M
ساكن (Consonant) foundation.drill_consonant Letter drill answer — consonant. U O S T M
ابدأ الاختبار foundation.exam_start Start the course exam. U O S T M
العودة foundation.exam_back Leave the exam screen. U O S T M
مثال آخر hr.another_example Show another conversation example. U O S T M
العودة لمسارك hr.back_track Back to your track. U O S T M
ارجع لكلمات هذا الدرس ({n}) hr.tail_back Return to this lesson's own words after the cumulative tail. U O S T M
أنهيت الدرس hr.finish Mark the business-English lesson complete. U O S T M
راجع الدرس مرة أخرى hr.again Review the lesson once more. U O S T M
أتقنتها ✓ hr.mastered Retire a word from the star bank. U O S T M
إعادة الاختبار hr.quiz_retry Retake the week's quiz. U O S T M
عرض النتيجة hr.quiz_result See the quiz score. U O S T M
درس القواعد التالي ‹ gram.next_lesson Straight into the next grammar lesson. U O S T M
↩ الرجوع للشرح gram.back_explain Back to the explanation. U O S T M
إعادة التدريب ↻ gram.retry Run the grammar drill again. U O S T M
🏁 أتممت الدرس gram.finish_done Mark the grammar lesson complete. U O S T M
إرسال للتقييم writing.submit Send the writing task for marking. U O S T M
العودة للدورة writing.back_course Back to the course. U O S T M
Live rooms
/rooms
7 controls
The student's side of a session
افتح ‹ rooms.open Open a room from your list. U O S T M
ادخل الجلسة 🎥 room.join Join the live session. Pressing this IS the attendance record — there is no manual marking anywhere. U O S T M
اعتذار عن الجلسة room.excuse Excuse yourself from the session in advance. U O S T M
🚩 واجهت مشكلة بالدخول room.flag_open Open the «I couldn't get in» form. U O S T M
أبلغ عن المشكلة room.flag_submit Report the entry problem — a human reviews it. U O S T M
أرسل room.rate_submit Send your rating of the session. U O S T M
تخطّي room.rate_skip Skip rating it. U O S T M
Shared chrome
everywhere
6 controls
Video, back links, renew, contact
جدّد action.renew Opens WhatsApp — renewal is handled by a staff member, never self-serve. U O S T M
تواصل معنا action.contact Opens WhatsApp. Appears in three places: the room list, an empty room, and the explore card. U O S T M
العودة للرئيسية notfound.home Home, from a 404. U O S T M
→ دوراتي back.courses Back to today's tasks. U O S T M
→ {course} back.to Back to the named course. U O S T M
شغّل المقطع video.play Play the clip. U O S T M
Cockpit chrome
/cockpit/*
8 controls
Present on every staff screen
› السابق pager.prev Previous page. U O S T M
التالي ‹ pager.next Next page. U O S T M
تحديد كل هذه الصفحة table.select_all Selects only the rows on this page — and says so, because a silent partial selection is worse than none. U O S T M
إلغاء تحديد الكل table.deselect_all Clear the selection. U O S T M
واتساب 💬 table.wa Open WhatsApp to this student. Needs PII, so the Teacher never sees it. U O S T M
كل الدورات filter.all_courses Clear the course filter. U O S T M
حفظ action.save The save button on every cockpit form. U O S T M
تسجيل الخروج shell.sign_out Sign out of the cockpit. U O S T M
Daily follow-up
/cockpit/radar
5 controls
The front door
افتح الطلبات ← radar.queue.requests_cta Jump to the requests screen, already filtered. U O S T M
مدّدها دفعةً ← radar.queue.expiring_cta Bulk-extend the subscriptions about to lapse. U O S T M
افتح التسجيلات ← radar.queue.silent_cta Open the silence workbench. U O S T M
افتح متابعة الأسابيع ← radar.queue.behind_cta Open weekly follow-up on whoever is behind. U O S T M
اعرض الأسماء ← radar.wont_finish.reveal Expand the predicted won't-finish list — the number's own rows, not a different query. U O S T M
Students
/cockpit/students
5 controls
Roster
+ إضافة طالب جديد students.add_summary Expand the add-student form. U O S T M
إضافة الطالب وإرسال الدعوة students.add_submit Create the account and email the invitation immediately. U O S T M
إرسال تنبيه students.bulk_send Notify everyone currently selected. U O S T M
إلغاء التحديد students.bulk_cancel Drop the selection. U O S T M
⬇︎ CSV لهذه الصفحة students.export_csv Export this page only — the label says so on purpose. U O S T M
Student profile
/cockpit/students/[id]
15 controls
One student, every lever
→ {name} profile.back Back to the roster. U O S T M
↩︎ تراجع عن التصفير profile.undo_reset Restore progress from that archive. Work re-done since keeps its newer time. U O S T M
💬 واتساب profile.wa Open WhatsApp to this student. U O S T M
👁️ شكل شاشة الطالب profile.view_as_student See the screen exactly as the student sees it. U O S T M
منح profile.badge_submit Award an achievement badge. U O S T M
تعيين profile.mentor_submit Assign or re-assign the mentor. The previous one loses access and stops getting alerts. U O S T M
أعِده إلى الأسبوع {n} profile.hold_restore End the hold and put them back where they were. U O S T M
أبقِه هنا واستأنف profile.hold_keep End the hold and leave them where the move put them. U O S T M
نقل profile.move_submit Move them to another week and freeze them there. U O S T M
فتح profile.opening_submit Grant a content opening for this student, with an expiry date. U O S T M
تطبيق profile.points_submit Apply a trophy adjustment — bounded to ±1000 and pinned to you. U O S T M
إرسال profile.alert_submit Send an in-app alert to this student. U O S T M
▶️ استئناف الطالب profile.resume_submit Resume, reviving only what this action paused. U O S T M
⏸️ إيقاف مؤقت profile.pause_submit Stop everything — every course this student holds. U O S T M
↺ تصفير التقدّم profile.reset_submit Wipe their progress on a course. Recoverable from the archive. U O S T M
Enrolments & subscriptions
/cockpit/enrollments · /cockpit/subs
11 controls
Silence workbench and the subs sheet
الكل enrollments.silence_all Clear the silence filter. U O S T M
لم يبدأ enrollments.silence_never_chip Only those who never started. U O S T M
30+ يومًا enrollments.silence_d30_chip Silent 30 days or more. U O S T M
14+ يومًا enrollments.silence_d14_chip Silent 14 days or more. U O S T M
أسبوع+ enrollments.silence_d7_chip Silent a week or more. U O S T M
نشط enrollments.silence_recent_chip Recently active. U O S T M
تابِع للمعاينة enrollments.bulk_continue Take the selection to the preview. Executes nothing on its own. U O S T M
الكل subs.state_all Clear the status filter. U O S T M
تمديد subs.extend Push one course's end date out — 7, 30 or 90 days. U O S T M
استئناف ▶️ subs.resume Resume this one course. U O S T M
إيقاف ⏸️ subs.pause Pause this one course. U O S T M
Requests
/cockpit/requests
2 controls
Unlock and advance decisions
موافقة requests.approve Approve the request. U O S T M
رفض requests.refuse Refuse it. A reason is required — SQL raises without one. U O S T M
Weekly pacing
/cockpit/weekly
14 controls
Week-by-week follow-up
الكل weekly.status_all Clear the status filter. U O S T M
موافقة weekly.approve Approve the move to the next week, with or without a filed request. U O S T M
رفض… weekly.refuse_open Open the refusal form. U O S T M
وش الوضع؟ 👀 weekly.nudge Send the check-in ping to someone who has fallen behind. U O S T M
رفض الطلب weekly.refuse_submit Refuse, with the reason attached. U O S T M
إعفاء من الأسبوع weekly.excuse_submit Excuse the week — it stops counting and they move on without it. U O S T M
السماح بالانتقال 🔓 weekly.allow_submit Open the next week although this one is unfinished. U O S T M
نقل إلى أسبوع آخر weekly.move_open Open the move-to-another-week form. U O S T M
نقل weekly.move_submit Commit the week move. U O S T M
استئناف الدورة ▶️ weekly.resume_submit Resume it from here. U O S T M
إيقاف مؤقت ⏸️ weekly.pause_submit Pause the course from here. U O S T M
ملف الطالب ‹ weekly.open_profile Open this student's full profile. U O S T M
تحميل المزيد ⌄ weekly.load_more Load the next page of rows. U O S T M
↺ من البداية weekly.restart Back to the first page. U O S T M
Pacing rules
/cockpit/pacing
6 controls
Course-wide rules, calendar, intakes
{name} ← pacing.weekly_link Open weekly follow-up for that course. U O S T M
أضف pacing.add Add a block to the course calendar — a holiday or pause, label required. U O S T M
حذف pacing.period_delete Remove a block. This is how a pause ends early. U O S T M
تأكيد الحذف pacing.period_delete_confirm Confirm the removal — the audit log keeps a copy of what was there. U O S T M
طبّق التاريخ… pacing.intake_apply_open Open the apply-intake step. U O S T M
تأكيد التطبيق pacing.intake_apply_confirm Put the intake date on members, and report how many it skipped. U O S T M
Rooms
/cockpit/rooms
21 controls
Live sessions, membership, attendance
غرفة جديدة ⌄ rooms.new_room Expand the new-room form. U O S T M
أنشئ الغرفة rooms.create_submit Create the room. U O S T M
‹ {name} room.back Back to the room list. U O S T M
إعدادات الغرفة ⌄ room.settings Expand the room's settings. U O S T M
تعيين room.assign_teacher Assign the teacher who will then run its sessions. U O S T M
إزالة room.remove_teacher Unassign them. U O S T M
جلسة جديدة ⌄ room.new_session Expand the new-session form. U O S T M
أنشئ الجلسة room.create_session Schedule the session. U O S T M
المنتهية ({n}) ⌄ room.past_sessions Expand the finished sessions. U O S T M
إضافة طلاب ⌄ room.add_students Expand the add-students panel. U O S T M
ابحث room.search_submit Search for students to add. U O S T M
أضف المحدَّدين room.add_selected Add the selected students. Over capacity warns, it does not block. U O S T M
تفعيل room.activate Set a member back to active. U O S T M
إيقاف مؤقت room.pause Pause a member. Pausing is the teacher's; removing is not. U O S T M
إزالة room.remove_member Remove them from the room. U O S T M
تسجيل عذر بعد المراجعة ⌄ room.excuse_heading Expand the after-review excuse form. U O S T M
سجّل العذر room.excuse_submit Record the excuse — the session stops counting against the student. U O S T M
السجل ⌄ room.log_heading Expand the room's own log. U O S T M
تعديل ⌄ room.session_edit Edit the session, including its meeting link. U O S T M
إلغاء الجلسة room.cancel_session Cancel the session. U O S T M
جلسة تعويضية room.makeup_submit Duplicate it forward as a make-up session. U O S T M
Bulk operations
/cockpit/bulk · /cockpit/subs/bulk
10 controls
Preview → confirm → undo
← كل العمليات bulk.back Back to the operation picker. U O S T M
عرض المعاينة bulk.preview_submit Show what would happen, before anything runs. U O S T M
نفّذ على {n} bulk.run Execute on the previewed targets. U O S T M
نفّذ الدفعة التالية bulk.next_batch Run the next batch — the work is split to stay inside the request ceiling. U O S T M
تراجع عن العملية bulk.undo Undo the whole operation, inside its window. U O S T M
الشريحة التالية bulk.next_slice Move to the next slice of targets. U O S T M
عملية جديدة bulk.new_op Start a fresh operation. U O S T M
معاينة bulkenroll.preview Preview the pasted list before enrolling anyone. U O S T M
تأكيد التسجيل bulkenroll.confirm Enrol everyone in the preview. U O S T M
إلغاء bulkenroll.cancel Abandon it. U O S T M
Broadcast, settings, copy, audit
/cockpit/notifications · /settings · /copy · /audit
9 controls
Platform-wide
إرسال broadcast.submit Send the announcement to the filtered audience. U O S T M
ماذا تمنح كل صلاحية؟ settings.roles_explain Expand the explanation of what each role grants. U O S T M
تصفية audit.filter Filter the log by actor. U O S T M
عرض الكل audit.show_all Drop the actor filter. U O S T M
› الأحدث audit.newer Newer entries. U O S T M
الأقدم ‹ audit.older Older entries. U O S T M
الكل copy.state_all Clear the review-state filter. U O S T M
اعتماد copy.approve Approve the wording as reviewed. U O S T M
استعادة النص الأصلي copy.reset Delete the override so the key follows the catalog default again. U O S T M
Where the role split is sharper than it looks
Rooms are split down the middle. The Teacher may create, edit, cancel and duplicate sessions , and pause or activate a member — but the room itself, its teacher, adding students and removing a member are Owner only.
The Mentor cannot use the profile's move, hold or opening buttons. Those three actions check pacing.override exactly, and the Mentor holds only pacing.override.assigned — so they redirect. The Mentor's pacing lives on the weekly screen instead.
Points and badges are role checks, not capability checks. adjustTrophy() and awardBadge() are gated in RLS by admin, or mentor on their own student — no capability is involved, so they don't follow the matrix.
The Teacher has no student read and no PII. No roster, no profile, no WhatsApp button — their students are reached through the room roster only.
Extending is Owner only. Support can pause and resume but never change a date: enroll.modify sits on the Owner alone.
Chips say who is offered the control, not who can complete it. Rendering is decided in lib/capabilities.ts; RLS in Postgres is what actually permits the write, and it re-checks every row.
255 entries where kind: "action" in lib/copy/catalog.ts · nav links and headings excluded · role attribution from lib/capabilities.ts and the per-action guards