الانتقال إلى المحتوى
الأقسام
اللغة، حاليًا العربية
نظام تصميم Rastrillo

المسار

القطع التي تكون استجابة كاملة لا جزءًا من استجابة.

كل مثال يعمل فعلًا، لكن روابطه لا تؤدي إلى أي مكان. يعرض HTML الترميز الجاهز للنسخ.

error-page

جسد استجابة الخطأ كاملًا: الحالة، وجملة صادقة واحدة، وطريق للعودة، ومراجع الخطأ 500 التي يفيد منها المشرف.

404: غير موجود

معاينة
<div rst-error>
  <p rst-error-status>404</p>
  <h1 rst-error-title>لم نعثر على تلك الصفحة</h1>
  <p rst-error-body>قد يكون الرابط قديمًا، أو تكون الصفحة قد نُقلت. تحقق من العنوان، أو ارجع إلى البداية.</p>
  <p rst-error-cta>
    <a rst-btn="primary" href="/">صفحة البداية</a>
  </p>
</div>
{{template "error-page" dict "Status" 404 "HomeHref" "/"}}

403: ممنوع

معاينة
<div rst-error>
  <p rst-error-status>403</p>
  <h1 rst-error-title>لا يمكنك الاطلاع على هذا</h1>
  <p rst-error-body>لا يملك حسابك صلاحية الوصول هنا. إذا كنت ترى أنه ينبغي أن يملكها، فاسأل من يدير هذا الموقع.</p>
  <p rst-error-cta>
    <a rst-btn="primary" href="/">صفحة البداية</a>
    <a rst-btn href="/posts">رجوع</a>
  </p>
</div>
{{template "error-page" dict "Status" 403 "HomeHref" "/" "BackHref" "/posts"}}

422: تعذّرت المعالجة

معاينة
<div rst-error>
  <p rst-error-status>422</p>
  <h1 rst-error-title>لم يتم إرسال ذلك</h1>
  <p rst-error-body>هناك خطأ في بعض ما تم إرساله. ارجع وحاول مرة أخرى؛ لم يُحفظ أي شيء.</p>
  <p rst-error-cta>
    <a rst-btn="primary" href="/">صفحة البداية</a>
    <a rst-btn href="/posts/1/edit">رجوع</a>
  </p>
</div>
{{template "error-page" dict
    "Status" 422
    "HomeHref" "/"
    "BackHref" "/posts/1/edit"}}

500: خطأ في الخادم

معاينة
<div rst-error>
  <p rst-error-status>500</p>
  <h1 rst-error-title>حدث خطأ من جانبنا</h1>
  <p rst-error-body>المشكلة ليست منك. تم تسجيل المشكلة. حاول مرة أخرى بعد قليل؛ وإذا تكرر ذلك، فاذكر الرقم المرجعي أدناه.</p>
  <p rst-error-cta>
    <a rst-btn="primary" href="/">صفحة البداية</a>
  </p>
  <p class="rst-mono" rst-error-ref dir="auto">الرقم المرجعي: k3f9tq</p>
</div>
{{template "error-page" dict "Status" 500 "HomeHref" "/" "Ref" "k3f9tq"}}

الحالة 500 هي الوحيدة التي تحمل رقمًا مرجعيًا: يمكن لمن يدير النظام البحث عنه في السجلات بـ grep.

503: غير متاح

معاينة
<div rst-error>
  <p rst-error-status>503</p>
  <h1 rst-error-title>الخدمة غير متاحة لفترة قصيرة</h1>
  <p rst-error-body>يجري تحديث الموقع أو أنه مشغول. حاول مرة أخرى بعد دقيقة.</p>
  <p rst-error-cta>
    <a rst-btn="primary" href="/">صفحة البداية</a>
  </p>
</div>
{{template "error-page" dict "Status" 503 "HomeHref" "/"}}

أي حالة أخرى: الزوج العام

معاينة
<div rst-error>
  <p rst-error-status>418</p>
  <h1 rst-error-title>هناك خطأ ما</h1>
  <p rst-error-body>تعذّر إتمام هذا الطلب. ارجع وحاول مرة أخرى.</p>
  <p rst-error-cta>
    <a rst-btn="primary" href="/">صفحة البداية</a>
  </p>
</div>
{{template "error-page" dict "Status" 418 "HomeHref" "/"}}

خمس حالات مصاغة في فهرس الإطار. أما السادسة فترتدّ إلى الزوج العام بدل أن تعرض على القارئ اسم مفتاح مفقود.

back-nav

رابط العودة مستوى واحدًا لأعلى، فوق شاشة العرض أو التحرير.

العودة إلى سجل

معاينة
<nav rst-back-nav>
  <a href="/orders/1">← الطلب AB3PX</a>
</nav>
{{template "back-nav" dict "Href" "/orders/1" "Label" "الطلب AB3PX"}}

locale-menu

مبدّل اللغة: قائمة details من نماذج POST بحقل واحد إلى ‎/_locale‎، فيستقر الاختيار في ملفّ تعريف اللغة ويبقى القارئ على المسار نفسه.

اثنتا عشرة لغة، والحالية مميّزة.

معاينة
<details rst-dropdown rst-locale name="rst-menus">
  <summary>
    اللغة
    <span rst-caret aria-hidden="true">
      <svg class="icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m6 9 6 6 6-6"/></svg>
    </span>
  </summary>
  <div rst-dropdown-menu>
    <form method="post" action="/_locale">
      <input type="hidden" name="locale" value="en">
      <input type="hidden" name="return" value="/">
      <button type="submit" lang="en">English</button>
    </form>
    <form method="post" action="/_locale">
      <input type="hidden" name="locale" value="ga">
      <input type="hidden" name="return" value="/">
      <button type="submit" lang="ga">Gaeilge</button>
    </form>
    <form method="post" action="/_locale">
      <input type="hidden" name="locale" value="zh-Hans">
      <input type="hidden" name="return" value="/">
      <button type="submit" lang="zh-Hans">简体中文</button>
    </form>
    <form method="post" action="/_locale">
      <input type="hidden" name="locale" value="es">
      <input type="hidden" name="return" value="/">
      <button type="submit" lang="es">Español</button>
    </form>
    <form method="post" action="/_locale">
      <input type="hidden" name="locale" value="hi">
      <input type="hidden" name="return" value="/">
      <button type="submit" lang="hi">हिन्दी</button>
    </form>
    <form method="post" action="/_locale">
      <input type="hidden" name="locale" value="pt-PT">
      <input type="hidden" name="return" value="/">
      <button type="submit" lang="pt-PT">Português</button>
    </form>
    <form method="post" action="/_locale">
      <input type="hidden" name="locale" value="bn">
      <input type="hidden" name="return" value="/">
      <button type="submit" lang="bn">বাংলা</button>
    </form>
    <form method="post" action="/_locale">
      <input type="hidden" name="locale" value="ru">
      <input type="hidden" name="return" value="/">
      <button type="submit" lang="ru">Русский</button>
    </form>
    <form method="post" action="/_locale">
      <input type="hidden" name="locale" value="ja">
      <input type="hidden" name="return" value="/">
      <button type="submit" lang="ja">日本語</button>
    </form>
    <form method="post" action="/_locale">
      <input type="hidden" name="locale" value="yue">
      <input type="hidden" name="return" value="/">
      <button type="submit" lang="yue">廣東話</button>
    </form>
    <form method="post" action="/_locale">
      <input type="hidden" name="locale" value="vi">
      <input type="hidden" name="return" value="/">
      <button type="submit" lang="vi">Tiếng Việt</button>
    </form>
    <form method="post" action="/_locale">
      <input type="hidden" name="locale" value="ar">
      <input type="hidden" name="return" value="/">
      <button type="submit" lang="ar" aria-current="true">العربية</button>
    </form>
  </div>
</details>
{{template "locale-menu" dict "Items" .Locales "Return" "/"}}

هذا يرسل إلى /_locale، لذا يحتاج إلى خادم. تأتي Items الخاصة به من rastrillo.LocaleItems(r). أمّا المبدّل في ترويسة هذه الصفحة فهو النسخة المبنيّة على الروابط وحدها.

scheme-menu

مبدّل نظام الألوان: قائمة details من نماذج POST بحقل واحد إلى /_theme للفاتح والداكن وحسب النظام، فيُحفظ الاختيار في ملفّ تعريف الارتباط الخاص بنظام الألوان ويبقى القارئ في الصفحة نفسها.

ثلاثة خيارات، والداكن هو الحالي.

معاينة
<details rst-dropdown rst-scheme name="rst-menus">
  <summary>
    نظام الألوان
    <span rst-caret aria-hidden="true">
      <svg class="icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m6 9 6 6 6-6"/></svg>
    </span>
  </summary>
  <div rst-dropdown-menu role="group" aria-label="نظام الألوان">
    <form method="post" action="/_theme">
      <input type="hidden" name="scheme" value="light">
      <input type="hidden" name="return" value="/">
      <button type="submit">فاتح</button>
    </form>
    <form method="post" action="/_theme">
      <input type="hidden" name="scheme" value="dark">
      <input type="hidden" name="return" value="/">
      <button type="submit" aria-current="true">داكن</button>
    </form>
    <form method="post" action="/_theme">
      <input type="hidden" name="scheme" value="system">
      <input type="hidden" name="return" value="/">
      <button type="submit">حسب النظام</button>
    </form>
  </div>
</details>
{{template "scheme-menu" dict "Scheme" "dark" "Return" "/"}}

هذا يرسل إلى /_theme، لذا يحتاج إلى خادم. يأتي Scheme الخاص به من rastrillo.SchemeFrom(r)؛ ويحمله ui.ForRequest. أمّا المبدّل في شريط هذه الصفحة فهو مبدّل المعرض نفسه.

api-tokens

صفحة الرموز من PageData في apitoken: الكشف لمرة واحدة، ونموذج الإنشاء، والقائمة، وأزرار الإلغاء.

أربعة رموز، اثنان منها فعّالان

معاينة
<div rst-tokens>
  <section rst-box>
    <form rst-form method="post" action="/tokens">
      <div rst-field>
        <label rst-field-label for="agent">اسم الوكيل</label>
        <input rst-input type="text" id="agent" name="agent" maxlength="40">
      </div>
      <label rst-switch>
        <input type="checkbox" name="for_self" value="on">
        <span rst-switch-track aria-hidden="true"></span>
        هذا الرمز لي، وليس لوكيل
      </label>
      <fieldset rst-choice>
        <legend>الوصول</legend>
        <div rst-choice-cards>
          <label>
            <input type="radio" name="access" value="write" checked>
            <span>
              <span rst-choice-title>قراءة وكتابة</span>
            </span>
          </label>
          <label>
            <input type="radio" name="access" value="read">
            <span>
              <span rst-choice-title>قراءة فقط</span>
            </span>
          </label>
        </div>
      </fieldset>
      <div rst-field>
        <label rst-field-label for="expiry">تنتهي الصلاحية</label>
        <select rst-input="short" id="expiry" name="expiry">
          <option value="30">30 يومًا</option>
          <option value="90" selected>90 يومًا</option>
          <option value="365">سنة واحدة</option>
          <option value="never">أبدًا</option>
        </select>
      </div>
      <div rst-form-foot>
        <button rst-btn="primary lg" type="submit">إنشاء رمز</button>
      </div>
    </form>
  </section>
  <div rst-card rst-tokens-list>
    <div rst-lrow="head">
      <span>الرمز</span>
      <span class="rst-m-hide">الوصول</span>
      <span class="rst-m-hide">تاريخ الإنشاء</span>
      <span class="rst-m-hide">آخر استخدام</span>
      <span class="rst-m-hide">تنتهي الصلاحية</span>
      <span></span>
      <span></span>
    </div>
    <div rst-lrow>
      <span class="rst-nm"><span rst-actor>Claude نيابةً عن Grace Hopper</span>
        <small>
          <code>k3Jx9QpL2mWa</code>
        </small>
      </span>
      <span rst-tokens-fact><span rst-tokens-fact-label>الوصول</span>قراءة وكتابة</span>
      <span rst-tokens-fact><span rst-tokens-fact-label>تاريخ الإنشاء</span><time datetime="2026-08-02">2026-08-02</time></span>
      <span rst-tokens-fact><span rst-tokens-fact-label>آخر استخدام</span><time datetime="2026-08-11">2026-08-11</time></span>
      <span rst-tokens-fact><span rst-tokens-fact-label>تنتهي الصلاحية</span><time datetime="2026-10-31">2026-10-31</time></span>
      <span rst-tokens-state></span>
      <details rst-row-menu name="rst-menus">
        <summary aria-label="إجراءات Claude نيابةً عن Grace Hopper">
          <svg class="icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"/><circle cx="12" cy="5" r="1"/><circle cx="12" cy="19" r="1"/></svg>
        </summary>
        <div rst-row-menu-panel>
          <form method="post" action="/tokens/revoke">
            <input type="hidden" name="id" value="k3Jx9QpL2mWa">
            <button type="submit">إلغاء</button>
          </form>
        </div>
      </details>
    </div>
    <div rst-lrow>
      <span class="rst-nm"><span rst-actor>Grace Hopper</span>
        <small>
          <code>Qm2vR8sT4xYb</code>
        </small>
      </span>
      <span rst-tokens-fact><span rst-tokens-fact-label>الوصول</span>قراءة فقط</span>
      <span rst-tokens-fact><span rst-tokens-fact-label>تاريخ الإنشاء</span><time datetime="2026-08-02">2026-08-02</time></span>
      <span rst-tokens-fact><span rst-tokens-fact-label>آخر استخدام</span></span>
      <span rst-tokens-fact><span rst-tokens-fact-label>تنتهي الصلاحية</span>أبدًا</span>
      <span rst-tokens-state></span>
      <details rst-row-menu name="rst-menus">
        <summary aria-label="إجراءات Grace Hopper">
          <svg class="icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"/><circle cx="12" cy="5" r="1"/><circle cx="12" cy="19" r="1"/></svg>
        </summary>
        <div rst-row-menu-panel>
          <form method="post" action="/tokens/revoke">
            <input type="hidden" name="id" value="Qm2vR8sT4xYb">
            <button type="submit">إلغاء</button>
          </form>
        </div>
      </details>
    </div>
    <div rst-lrow>
      <span class="rst-nm"><span rst-actor>Codex نيابةً عن Grace Hopper</span>
        <small>
          <code>Zp7wN1cH6kLd</code>
        </small>
      </span>
      <span rst-tokens-fact><span rst-tokens-fact-label>الوصول</span>قراءة وكتابة</span>
      <span rst-tokens-fact><span rst-tokens-fact-label>تاريخ الإنشاء</span><time datetime="2026-08-02">2026-08-02</time></span>
      <span rst-tokens-fact><span rst-tokens-fact-label>آخر استخدام</span></span>
      <span rst-tokens-fact><span rst-tokens-fact-label>تنتهي الصلاحية</span>أبدًا</span>
      <span rst-tokens-state><span rst-status rst-tone="neutral">مُلغى</span></span>
    </div>
    <div rst-lrow>
      <span class="rst-nm"><span rst-actor>Nightly import نيابةً عن Grace Hopper</span>
        <small>
          <code>Vb4tG9yK3nMe</code>
        </small>
      </span>
      <span rst-tokens-fact><span rst-tokens-fact-label>الوصول</span>قراءة فقط</span>
      <span rst-tokens-fact><span rst-tokens-fact-label>تاريخ الإنشاء</span><time datetime="2026-08-02">2026-08-02</time></span>
      <span rst-tokens-fact><span rst-tokens-fact-label>آخر استخدام</span></span>
      <span rst-tokens-fact><span rst-tokens-fact-label>تنتهي الصلاحية</span><time datetime="2026-08-11">2026-08-11</time></span>
      <span rst-tokens-state><span rst-status rst-tone="warning">منتهي الصلاحية</span></span>
    </div>
  </div>
  <div rst-tokens-revoke>
    <form method="post" action="/tokens/revoke-agent">
      <input type="hidden" name="agent" value="Claude">
      <button rst-btn type="submit">إلغاء كل رموز هذا الوكيل: Claude</button>
    </form>
    <form method="post" action="/tokens/revoke-all">
      <button rst-btn="danger" type="submit">إلغاء كل الرموز</button>
    </form>
  </div>
</div>
{{template "api-tokens" dict "Page" .Page "Path" "/tokens"}}

مرّر ما يسلّمه Handlers إلى Render بوصفه Page، ومسار الصفحة نفسها بوصفه Path. ترسل نماذج الإلغاء إلى Path/revoke وPath/revoke-agent وPath/revoke-all؛ اضبط RevokePath أو RevokeAgentPath أو RevokeAllPath لتغيير أحدها.

أُنشئ للتو: السر، معروض مرة واحدة

معاينة
<div rst-tokens>
  <div rst-callout rst-tone="positive" tabindex="-1" autofocus>
    <span rst-callout-ic aria-hidden="true">
      <svg class="icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="10"/><path d="m9 12 2 2 4-4"/></svg>
    </span>
    <div rst-callout-body>
      <strong>انسخ هذا الرمز الآن. لن يُعرض مرة أخرى.</strong>
      <p>
        <code rst-tokens-secret>harbour_k3Jx9QpL2mWa_6bD2qK9xWz4rT8vN1mP3sL7yF5hJ0cG2aE4uB</code>
      </p>
    </div>
  </div>
  <section rst-box>
    <form rst-form method="post" action="/tokens">
      <div rst-field>
        <label rst-field-label for="agent">اسم الوكيل</label>
        <input rst-input type="text" id="agent" name="agent" maxlength="40">
      </div>
      <label rst-switch>
        <input type="checkbox" name="for_self" value="on">
        <span rst-switch-track aria-hidden="true"></span>
        هذا الرمز لي، وليس لوكيل
      </label>
      <fieldset rst-choice>
        <legend>الوصول</legend>
        <div rst-choice-cards>
          <label>
            <input type="radio" name="access" value="write" checked>
            <span>
              <span rst-choice-title>قراءة وكتابة</span>
            </span>
          </label>
          <label>
            <input type="radio" name="access" value="read">
            <span>
              <span rst-choice-title>قراءة فقط</span>
            </span>
          </label>
        </div>
      </fieldset>
      <div rst-field>
        <label rst-field-label for="expiry">تنتهي الصلاحية</label>
        <select rst-input="short" id="expiry" name="expiry">
          <option value="30">30 يومًا</option>
          <option value="90" selected>90 يومًا</option>
          <option value="365">سنة واحدة</option>
          <option value="never">أبدًا</option>
        </select>
      </div>
      <div rst-form-foot>
        <button rst-btn="primary lg" type="submit">إنشاء رمز</button>
      </div>
    </form>
  </section>
  <div rst-card rst-tokens-list>
    <div rst-lrow="head">
      <span>الرمز</span>
      <span class="rst-m-hide">الوصول</span>
      <span class="rst-m-hide">تاريخ الإنشاء</span>
      <span class="rst-m-hide">آخر استخدام</span>
      <span class="rst-m-hide">تنتهي الصلاحية</span>
      <span></span>
      <span></span>
    </div>
    <div rst-lrow>
      <span class="rst-nm"><span rst-actor>Claude نيابةً عن Grace Hopper</span>
        <small>
          <code>k3Jx9QpL2mWa</code>
        </small>
      </span>
      <span rst-tokens-fact><span rst-tokens-fact-label>الوصول</span>قراءة وكتابة</span>
      <span rst-tokens-fact><span rst-tokens-fact-label>تاريخ الإنشاء</span><time datetime="2026-08-02">2026-08-02</time></span>
      <span rst-tokens-fact><span rst-tokens-fact-label>آخر استخدام</span><time datetime="2026-08-11">2026-08-11</time></span>
      <span rst-tokens-fact><span rst-tokens-fact-label>تنتهي الصلاحية</span><time datetime="2026-10-31">2026-10-31</time></span>
      <span rst-tokens-state></span>
      <details rst-row-menu name="rst-menus">
        <summary aria-label="إجراءات Claude نيابةً عن Grace Hopper">
          <svg class="icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"/><circle cx="12" cy="5" r="1"/><circle cx="12" cy="19" r="1"/></svg>
        </summary>
        <div rst-row-menu-panel>
          <form method="post" action="/tokens/revoke">
            <input type="hidden" name="id" value="k3Jx9QpL2mWa">
            <button type="submit">إلغاء</button>
          </form>
        </div>
      </details>
    </div>
    <div rst-lrow>
      <span class="rst-nm"><span rst-actor>Grace Hopper</span>
        <small>
          <code>Qm2vR8sT4xYb</code>
        </small>
      </span>
      <span rst-tokens-fact><span rst-tokens-fact-label>الوصول</span>قراءة فقط</span>
      <span rst-tokens-fact><span rst-tokens-fact-label>تاريخ الإنشاء</span><time datetime="2026-08-02">2026-08-02</time></span>
      <span rst-tokens-fact><span rst-tokens-fact-label>آخر استخدام</span></span>
      <span rst-tokens-fact><span rst-tokens-fact-label>تنتهي الصلاحية</span>أبدًا</span>
      <span rst-tokens-state></span>
      <details rst-row-menu name="rst-menus">
        <summary aria-label="إجراءات Grace Hopper">
          <svg class="icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"/><circle cx="12" cy="5" r="1"/><circle cx="12" cy="19" r="1"/></svg>
        </summary>
        <div rst-row-menu-panel>
          <form method="post" action="/tokens/revoke">
            <input type="hidden" name="id" value="Qm2vR8sT4xYb">
            <button type="submit">إلغاء</button>
          </form>
        </div>
      </details>
    </div>
    <div rst-lrow>
      <span class="rst-nm"><span rst-actor>Codex نيابةً عن Grace Hopper</span>
        <small>
          <code>Zp7wN1cH6kLd</code>
        </small>
      </span>
      <span rst-tokens-fact><span rst-tokens-fact-label>الوصول</span>قراءة وكتابة</span>
      <span rst-tokens-fact><span rst-tokens-fact-label>تاريخ الإنشاء</span><time datetime="2026-08-02">2026-08-02</time></span>
      <span rst-tokens-fact><span rst-tokens-fact-label>آخر استخدام</span></span>
      <span rst-tokens-fact><span rst-tokens-fact-label>تنتهي الصلاحية</span>أبدًا</span>
      <span rst-tokens-state><span rst-status rst-tone="neutral">مُلغى</span></span>
    </div>
    <div rst-lrow>
      <span class="rst-nm"><span rst-actor>Nightly import نيابةً عن Grace Hopper</span>
        <small>
          <code>Vb4tG9yK3nMe</code>
        </small>
      </span>
      <span rst-tokens-fact><span rst-tokens-fact-label>الوصول</span>قراءة فقط</span>
      <span rst-tokens-fact><span rst-tokens-fact-label>تاريخ الإنشاء</span><time datetime="2026-08-02">2026-08-02</time></span>
      <span rst-tokens-fact><span rst-tokens-fact-label>آخر استخدام</span></span>
      <span rst-tokens-fact><span rst-tokens-fact-label>تنتهي الصلاحية</span><time datetime="2026-08-11">2026-08-11</time></span>
      <span rst-tokens-state><span rst-status rst-tone="warning">منتهي الصلاحية</span></span>
    </div>
  </div>
  <div rst-tokens-revoke>
    <form method="post" action="/tokens/revoke-agent">
      <input type="hidden" name="agent" value="Claude">
      <button rst-btn type="submit">إلغاء كل رموز هذا الوكيل: Claude</button>
    </form>
    <form method="post" action="/tokens/revoke-all">
      <button rst-btn="danger" type="submit">إلغاء كل الرموز</button>
    </form>
  </div>
</div>
{{template "api-tokens" dict "Page" .Page "Path" "/tokens"}}

اعرض استجابة نموذج الإنشاء مع ضبط Created، ولا تُعد توجيهها: السر موجود في تلك الاستجابة ولا في أي مكان آخر.

لا توجد رموز بعد

معاينة
<div rst-tokens>
  <section rst-box>
    <form rst-form method="post" action="/tokens">
      <div rst-field>
        <label rst-field-label for="agent">اسم الوكيل</label>
        <input rst-input type="text" id="agent" name="agent" maxlength="40">
      </div>
      <label rst-switch>
        <input type="checkbox" name="for_self" value="on">
        <span rst-switch-track aria-hidden="true"></span>
        هذا الرمز لي، وليس لوكيل
      </label>
      <fieldset rst-choice>
        <legend>الوصول</legend>
        <div rst-choice-cards>
          <label>
            <input type="radio" name="access" value="write" checked>
            <span>
              <span rst-choice-title>قراءة وكتابة</span>
            </span>
          </label>
          <label>
            <input type="radio" name="access" value="read">
            <span>
              <span rst-choice-title>قراءة فقط</span>
            </span>
          </label>
        </div>
      </fieldset>
      <div rst-field>
        <label rst-field-label for="expiry">تنتهي الصلاحية</label>
        <select rst-input="short" id="expiry" name="expiry">
          <option value="30">30 يومًا</option>
          <option value="90" selected>90 يومًا</option>
          <option value="365">سنة واحدة</option>
          <option value="never">أبدًا</option>
        </select>
      </div>
      <div rst-form-foot>
        <button rst-btn="primary lg" type="submit">إنشاء رمز</button>
      </div>
    </form>
  </section>
  <div rst-empty>
    <p rst-empty-body>لا توجد رموز بعد.</p>
  </div>
</div>
{{template "api-tokens" dict "Page" .Page "Path" "/tokens"}}