ملاحظات إصدار Discourse 2.4.0.beta8

ميزات جديدة في 2.4.0.beta8

مرادفات الوسوم (Tag Synonyms)

يدعم Discourse الآن مرادفات الوسوم، بالإضافة إلى دمج الوسوم. يمكن الآن دمج الوسوم المتشابهة، والأخطاء الشائعة في كتابة الوسوم، والمصطلحات العامية، وغيرها في وسم واحد. علاوة على ذلك، إذا كان الوسم الذي يتم تعيينه كمرادف موجودًا بالفعل، فسيتم دمج الوسوم تلقائيًا، مع إعادة وسم جميع المواضيع بالوسم الأساسي.

تحسينات إدارة السمات (Theme Management)

تطوّر نظام السمات في Discourse بشكل هائل خلال إصدارات Discourse الأخيرة. تم تقديم مكونات السمات، مما يسمح لمصممي المواقع بإنشاء تصميم أو ميزة واحدة يمكن إضافتها بسهولة إلى أي سمة موجودة عبر واجهة المستخدم. ومع نمو المواقع، وزيادة عدد السمات والمكونات المُنشأة، قد يصبح من الصعب تذكر تضمين كل مكون في كل سمة، كما أن ذلك يستغرق وقتًا طويلاً عند تذكره.

يمكن لمصممي المواقع الآن إضافة مكون إلى سمة بسهولة دون مغادرة صفحة مكون السمة، بالإضافة إلى إضافة مكون بسرعة إلى جميع السمات النشطة. يمكن للمصممين أيضًا إضافة جميع المكونات النشطة إلى سمة واحدة بسهولة، دون الحاجة إلى تحديد كل مكون على حدة.

لاحظ أن ميزة “الإضافة الكل” تضيف فقط السمات/المكونات النشطة. إذا لم تكن سمة أو مكون مستخدمًا من قبل أي سمات/مكونات أخرى، فلن يتم إضافته عبر ميزة “الإضافة الكل”. سيتعين إضافة مثل هذه السمات/المكونات بشكل فردي مرة واحدة على الأقل أولاً.

تحسينات الاستطلاعات

تم إضافة ميزتين جديدتين إلى استطلاعات Discourse. سابقًا، كانت نتائج الاستطلاعات تُعرض على شكل مخططات شريطية. الآن، يمكن لمُنشئي الاستطلاعات أيضًا اختيار عرض المخطط الدائري. لاحظ أنه لا يمكن إظهار من صوت (أصوات عامة) مع عرض المخطط الدائري.

يمكن الآن أيضًا تصدير الاستطلاعات (الشريطية والدائرية) بسرعة من قبل المشرفين، مباشرة من المنشور. عند التصدير، يتلقى المشرف ملف CSV يحتوي على نتائج الاستطلاع الكاملة، والتي يمكن تحليلها لاحقًا حسب الحاجة. لاحظ أنه يجب تثبيت وتفعيل إضافة Data Explorer لتعمل هذه الميزة.

إزالة إعداد الفئة suppress from latest

كان إعداد suppress from latest يسمح لمسؤولي الموقع بإزالة مواضيع فئة معينة من الصفحة الرئيسية الافتراضية للموقع، سواء كانت /latest، أو /categories، أو أي شيء آخر. ومع ذلك، تسببت هذه الميزة في ارتباك للمسؤولين والمستخدمين عندما غيّر المستخدمون تفضيلاتهم للصفحة الرئيسية. كما تلقينا طلبات لإخفاء الفئات بشكل أكثر شمولاً، وليس فقط على الصفحة الرئيسية. كما كان إعدادًا على مستوى الموقع، لذا لم يكن لدى المستخدمين الذين يرغبون في رؤية الفئة على صفحتهم الرئيسية خيار للقيام بذلك.

ستتم جميع الفئات المُعدّة على suppress_from_latest تلقائيًا على أنها مكتومة (muted) لجميع المستخدمين. يمكن للمستخدمين بعد ذلك اختيار إلغاء كتم الفئة إذا فضلوا رؤيتها على صفحتهم الرئيسية، بالإضافة إلى عرض آخر داخل Discourse. علاوة على ذلك، تم إضافة إعداد موقع جديد mute all categories by default للمواقع التي تحتوي على عدد كبير من الفئات، ومعظمها لا يحتاج المستخدمون إلى رؤيته افتراضيًا. عند تفعيل mute all categories by default، يجب على المسؤولين تكوين الفئات في إعدادات default_categories_tracking و default_categories_watching لتجاوز الكتم، وضمان رؤية المستخدمين الجدد شيئًا عند تسجيلهم في الموقع.

مستوى الثقة 2 والرسائل الخاصة (Trust Level 2 PM)

سيحصل المستخدمون الذين يصلون إلى مستوى الثقة 2 (TL2) الآن على رسالة خاصة (PM) تلقائية تهنئهم على ترقيةتهم، وتشجعهم على بدء الدليل المتقدم للمستخدم. مثل جميع النصوص في Discourse، يمكن للمسؤولين تخصيص هذه الرسالة الخاصة حسب الحاجة.

المزيد من الميزات!

لكن انتظر، هناك المزيد! نبذل قصارى جهدنا لتسليط الضوء على الميزات والتغييرات الجديدة من أجلك، ولكن هناك دائمًا عدد كبير جدًا من التغييرات لا يمكن تفصيلها. لقد أبرزنا بعض الميزات الجديدة أدناه، ولكن للحصول على قائمة كاملة بالميزات الجديدة وإصلاحات الأخطاء وتحسينات تجربة المستخدم وغيرها، تأكد من مراجعة الميزات والإصلاحات الإضافية المدرجة أدناه.

  • دعم لصق قائمة بأسماء المستخدمين في رسالة خاصة
  • تحسين اكتشاف المستخدمين المشتبه بهم
  • توحيد إشعارات طلبات انضمام المجموعة
  • تحديد عدد الجلسات النشطة للمستخدم
  • إخفاء المنشورات الواردة عبر البريد الإلكتروني بناءً على حكم DMARC
  • تحسين سير عمل تغيير البريد الإلكتروني
  • تصفية العناصر القابلة للمراجعة حسب نطاق التاريخ
  • تجاهل جديد لكل فئة
  • إعادة التوجيه تلقائيًا إلى المصادق عند وجود واحد فقط
  • إشعار متابعي الوسوم عند إضافة وسم إلى منشور
37 إعجابًا

Plugin improvements

Akismet

  • Track Akismet state for users
  • Bug fixes

Encrypt

  • Bug fixes

Assign

  • Add support for sending emails only when assigned by a different user (no self-assign emails)
  • Support filtering review queue by assigned user
  • Bug fixes

BCC

Initial release. See:

Math

  • Update KaTeX render to v0.11.1

Translator

  • Add Vietnamese support with Microsoft translator

Solved

  • Bug fixes

Chat integration

  • Bug fix

Voting

  • Bug fix

Tooltips

  • Bug fix

Yearly Review

  • Misc improvements

SAML

  • Support for syncing moderator, trust level, and groups by SAML attribute
  • Support additional SAML configuration like frame width/height, button title, and more.

Onebox

  • Bug fixes

Calendar

  • Use new core timezone user option instead of plugin user option.

Data Explorer

  • Adds poll result query to support new core poll export feature
  • Bug fixes

Patreon

  • Bug fixes

Group Tracker

  • Bug fix

Code Review

  • Prefer newer topics over older when showing next unreviewed topic
  • Bug fixes

Policy

  • Bug fix

RSS Polling

  • Bug fix

Additional Features and Fixes

Click to expand

New Features

  • Add topic_filtered_posts_count attribute to web hook post serializer.
  • Add hidden setting to allow unsafe-eval in CSP
  • Plugin outlet adjacent to new topic btn
  • Make site texts controller handle pages and locales
  • Add timezone to core user_options
  • New API to apply custom filters to the review queue
  • Support RS256 algorithm for webauthn
  • Normalize the service worker route
  • Block screaming frog SEO spider by default
  • Introduce default application level rate limiting by IP
  • Allow scoping search to tag
  • Allow FinalDestination to use custom user agent for specific hosts

Bug Fixes

  • Keep ruby & rt tags in html to markdown conversion.
  • Secure Upload URLs in lightbox
  • BufferedValuesString.split is not a function
  • Prevents multiple jumps to happen with LockOn
  • Allow for nil upload record when migrating to S3
  • Ensures the element is on the page before scroll with lockon
  • Use filtered posts when determining the next page
  • Add a component to all themes takes only active ones
  • Move select components/themes to top
  • Improve defaultIsAvailable
  • Add filter(Boolean) and remove btn class
  • Inbound link when the only slug available
  • Don’t allow category slugs to be entirely digits
  • Respect enable_inline_emoji_translation setting in titles
  • Prepends whitespace when inserting via emoji picker
  • Linting
  • Filter readers avatars correctly when the post is a whisper
  • Call the right method
  • Guarantee order to correctly defer replies in review queue
  • 500 error for missing badge grouping
  • Hide pie legend when results are grouped
  • Poll pie container was too large
  • Do not autocomplete categories or emojis in code blocks
  • Generate redirect URL correctly when using a subdirectory
  • Handle none path correctly with three levels
  • Ensures censor has always at least an empty string to handle
  • Delay the ‘send_advanced_tutorial_message’ job to prevent race conditions
  • Optimize quoted images
  • Add a unique index to developers table
  • Fix typo
  • Make sure the suspended status is up to date
  • Adds data-topic-id to quick-access-item
  • Improvement after code review
  • Improvement after code review2
  • Use mapBy and filterBy directly
  • Make Google Groups scraper work for G Suite users
  • Cache failed onebox URL request server-side
  • Mark secure media upload insecure automatically if used for theme component
  • Serve crawler view to Google PageSpeed
  • Correctly ignore/approve replies when acting on a flagged post
  • Do not start the login flow when logging out from SSO/Authenticator
  • Use dedicated Vimeo onebox for all video types
  • Correctly resize lazy loaded images in Oneboxes
  • Correct hostname in vimeo.com
  • Bypass finaldestination check for Vimeo links.
  • Do not validate topic when resetting bumped_at
  • Show updated_at for invite sent date.
  • Draft not clearing when replying to new topic
  • Oneboxer.js infinitely retrying failed requests
  • Improves recurring by ensuring DST is computed correctly
  • Don’t error when the empty current value in dif
  • The build; ran prettier
  • Update site data when we receive a list of categories
  • Only trigger upload ACL update when needed
  • Show quoted images correctly.
  • Be more tactical with replacing markdown chars
  • Replace %20 with space in markdown file name for uploads
  • When dismissing category inform via MessageBus
  • Prevents exception and more duplicates
  • Prevents timezone to show duplicated zones in preview
  • Method names incorrect
  • Always return secure_proxy_without_cdn url for secure media
  • Remove uneeded from discourse loader
  • Aliases for require functioning
  • Allow private media uploads to be reused in login_required sites
  • Replace this.get(“foo”) with this.foo to fix linting checks
  • Followup to a8d58c3b
  • Handle german quotes in discourse local-dates
  • Mobile top topic list with a period and a category or tag
  • Do not log if an invalid mime type is passed to app
  • EventTarget error
  • Add skip_validations in one more place for narrative bot plugin
  • Allow advanced tutorial when title emojis are disabled
  • Use correct MIME type for theme exports
  • Abort CensoredWordsValidator early if censored_words_regexp nil
  • Amazon video oneboxes were not working.
  • Allow secure uploads if global s3 setting active and enable_s3_uploads validations
  • More Promise uses that were not imported
  • For a single authenticator, do not interrupt registration flow
  • Email excerpts for posts starting with a quote were displaying a username
  • Turn off auto bumping for topics with scheduled bumps
  • Parallel spec system needs needs a dedicated upload folder for each worker.
  • ‘default_categories_muted’ site setting not working for anonymous users.
  • Do not insert conflict rows into category user
  • Automatically recover from bad sprockets cache in development
  • Unable to remove required tag group from a category
  • Errors when using tags with colons in their name
  • Ensure load-more considers current position
  • Better handling of Group model state
  • Enter key should submit password reset form, not refresh the page
  • PM glyph in user-menu should always be shown to staff
  • We don’t need to refresh dates so often
  • Attempts to be correct about dst when using recurrence
  • A pmOnly tag should link to messages
  • Don’t error CleanUpInactiveUserJob when user is missing
  • Ensure revisions are made to store edit reasons and no reasons get wiped
  • Support for rake db:rollback with plugins
  • Include 5 participants in topic summary
  • Use this.content.category instead of this.category on navigation-item
  • Confirm new email with backup codes enabled
  • Don’t show bots as post readers
  • Revert mobile jump to last post behaviour
  • SVG Sprite version hash should be based on bundle result
  • Tag topic lists should pass on noSubcategories when building the top menu
  • Tracking Topic State know about category_seen_at
  • Need to require open-uri for discourse-narrative-bot plugin
  • Allow importing themes with subdirectories in extra_js
  • Missing User objects in Utilities
  • Failing tests
  • Missing braces
  • Computed is part of @ember/object not @ember/object/computed
  • Allow forceActive without a customHref
  • Do not strip nil string
  • Do not deactivate admin accounts with recent posts or api keys
  • Update quotes after moving posts
  • Topic lists filtered by tag and a specified filter don’t work
  • Tag and category watchers regression
  • Better error handling for invalid locale bundle versions
  • In case @ember/object hasn’t been loaded yet
  • Do not skip some emails in user search
  • Keep emoji images in group bio excerpt
  • More missing RSVP imports
  • Was using a native browser Promise instead of RSVP
  • Use correct class variable to get notification levels.
  • Remove magic numbers in notification levels.
  • Update api_key rake task for recent changes
  • Return a deprecation for Discourse.Session
  • Add deprecation for Discourse.NavItem in case themes are using it
  • Ran prettier to fix build
  • Alias modules that are required AND imported
  • Count current penalty if it started more than 6 months ago
  • Use ‘about.json’ endpoint instead of using ember model to get the data.
  • Badge and user title interaction fixes
  • Ensure enforce 2FA for staff satisfied by security keys
  • Drafts are unique by draft_key and user_id
  • Correct display of last used date in API key details UI
  • Prettier to fix build
  • Downcase SSO external email before checking against Discourse email
  • Include onebox default options in development environment
  • The internal position on the topic timeline is a scroll position
  • Regression not showing excerpts in mobile timeline
  • Use long version of month names in date formats
  • Unicode group names encoded for url
  • Too much blank padding in video oneboxes

UX Changes

  • Prevent scrollbars on initial panel load
  • Adjusts wizard step margins
  • Skip leading spaces in selection when adding a link.
  • Show group full name even when title is same.
  • Do not show shadow on hover images on touch devices
  • Show obvious message when backup restoration is disabled
  • Adds hover effect on lightboxed images
  • Rename ‘Hide results’ to ‘Show vote’ in polls
  • Set selected scale to 100% if scale is undefined
  • Make share icons consistent color for dark themes
  • Increase fade on long sign-up form content for more evident scroll
  • More obvious alt auth link
  • Allow enter key to submit test email in admin panel
  • Instead of total user count display only the count of users going to be affected.
  • Adds +n indicator in PM topic list
  • Add CSP documentation link to content_security_policy_script_src setting
  • Do not add leading/trailing spaces when copying API key in Firefox

Performance

  • Do fewer queries when converting posts.
  • Cache static assets in NGINX for longer
23 إعجابًا