ردیفهای دستهبندی: یک منو و دریافت یک Blink مستقیماً در یک دسته
چه چیزی تغییر کرد
هر ردیف دسته — در Blinks, Goals, Projects and Businesses — قبلاً شامل پنج کنترل بود: نام، یک نشان شمارش، و دکمههایی برای پروفایل، ویرایش و حذف، به علاوه یک “+” برای افزودن زیر دسته. در گوشی، این دکمهها به خط دوم منتقل میشدند و ردیف شلوغ به نظر میرسید.
اکنون یک ردیف دو چیز را پس از نام و شمارش نشان میدهد:
- یک آیکون دریافت یک Blink، که یک Blink جدید را مستقیماً در آن دسته قرار میدهد؛
- یک “…” منو که پروفایل، ویرایش، افزودن زیر دسته و حذف را در خود دارد.
به این ترتیب، ردیف یک ویژگی جدید به دست آورد و همزمان سه کنترل را از دست داد. گزینه حذف آخرین در منو قرار دارد با یک تقسیمکننده بالای آن، زیرا اقدام ویرانگر هرگز نباید بهطور تصادفی تحت انگشت شما باشد.
| عرض | ظاهر یک ردیف |
|---|---|
| دسکتاپ | # Work Everything for the day job 12 Blinks (↓) (…) |
| گوشی | # Work 12 (↓) (…) — نام کوتاه میشود و نشان شمارش شماره را حفظ میکند و کلمه را حذف میکند |
دریافت یک Blink در یک دسته
روی آیکون دریافت در هر ردیف کلیک کنید و فرم Blink عادی با آن دسته قبلاً انتخاب شده در تب Linkage باز میشود. آن را مانند معمول پر کنید. وقتی ذخیره میکنید، به صفحه دستهای که از آن شروع کردید برمیگردید، بنابراین میتوانید بلافاصله یک مورد دیگر را بدون نیاز به بازگشت ناوبری کنید.
هیچ چیز در مورد فرم تغییر نمیکند — این همان صفحه، همان فیلدها و همان ذخیره است. تنها تفاوت این است که شما از کجا شروع کردهاید و به کجا میرسید.
کدام اپلیکیشنها کدام گزینهها را دارند
ردیف آرام و منو “…” در همه چهار اپلیکیشن وجود دارد، زیرا آنها یک جزء ردیف مشترک دارند. دو مورد منو تنها در جایی که واقعاً میتوانند کار کنند ظاهر میشود:
- افزودن زیر دسته — در حال حاضر فقط برای Blinks. صفحات ایجاد سه اپلیکیشن دیگر هنوز نمیتوانند یک دسته والد را قبول کنند و ارائه کنترلی که بیصدا هیچ کاری نمیکند بدتر از عدم ارائه آن است.
- آیکون دریافت — در حال حاضر فقط برای Blinks، به همین دلیل: تنها فرم Blink میتواند در حال حاضر با یک دسته پیشانتخاب شده باز شود. هر یک از دیگر اپلیکیشنها میتوانند بعداً آن را با عبور یک مقدار اضافی به ردیف روشن کنند؛ هیچ کد جدیدی برای خود رفتار لازم نیست.
صفحهکلید و خوانندگان صفحه
هر دو آیکون نام دسته را در برچسب خود دارند — “دریافت یک Blink در کار”، “فعالیتهای بیشتر برای کار” — زیرا کسی که صفحه را یک ردیف در هر بار گوش میدهد باید بداند کدام ردیف در حال صحبت است. منو با صفحهکلید باز میشود، با دکمه Escape بسته میشود و تمرکز را از طریق موارد خود حرکت میدهد. کلیک روی نام دسته هنوز صفحه دسته را باز میکند، دقیقاً مانند قبل.
برای توسعهدهندگان
| قطعه | کجا |
|---|---|
| ردیف (مشترک بین چهار اپلیکیشن) | templates/_shared/_category_row_inner.html |
| گره درخت (جایی که “+” قبلاً وجود داشت) | templates/_shared/_category_node.html |
| استایلها | static/css/orbitingfox-ui.css § 23t |
| پیشانتخاب دسته + مسیر بازگشت | blink/views.py (?category=, next → next_url) |
| آزمایشات | config/test_category_row_actions.py, config/test_capture_return_path.py |
منو یک منوی کشویی Bootstrap است که با .of-dropdown-menu موجود پوستهگذاری شده است — نه یک الگوی ششم یکی دیگر برای گسترش/فروپاشی. یک منو یک افشاگری نیست: <details> نمیتواند بالای ردیف شناور باشد، بنابراین لیست را به جای اینکه روی آن بیفتد، باز میکند.
مسیر بازگشت در هر دو انتها اعتبارسنجی میشود. مقدار next در یک رشته پرس و جو میرسد، بنابراین توسط حملهکننده انتخاب میشود: مگر اینکه یک مسیر همان سایت باشد، رد میشود نه زمانی که فرم رندر شده و نه زمانی که ذخیره هدایت میشود. یک //host نسبتی نیز رد میشود — با یک اسلش شروع میشود و یک چک ساده را پشت سر میگذارد.
دو تله پیدا شده در حین ساخت این، ارزش دانستن: min-w-0 در این کدپایه یک کلاس نیست (کلاس خانگی of-min-w-0 است)، و پنج عمل بیصدای بیفایده دلیل Overflow ردیف در گوشی بود؛ و btn-outline-* کلاسهای رنگ Bootstrap هستند که تطبیق طراحی فعلاً آنها را در نظر نمیگیرد، بنابراین میتوانند بهطور نامحسوس جمع شوند.
This guide was translated automatically. Read the English original.