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

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

تحسينات مفتاح واجهة برمجة التطبيقات (API) للمدير

تُعد واجهة برمجة تطبيقات Discourse أداة قوية للتفاعل مع موقع Discourse. في النسخة التجريبية الأحدث، قمنا بإدخال عدد من التحسينات على نظام مفاتيح واجهة برمجة التطبيقات، مما يعزز الأمان والوظائف على حد سواء.

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

رسالة ترحيب من الطاقم

تمامًا مثل المستخدمين الجدد والمستخدمين الذين يصلون إلى مستوى TL1، يتلقى أعضاء الطاقم الآن رسالة ترحيب عند منحهم صلاحية المشرف أو المدير. ترحب هذه الرسالة بالمستخدم بفريق الطاقم، وتخبرهم بكيفية الوصول إلى واجهة الإدارة، وتوفر رابطًا إلى https://meta.discourse.org/t/discourse-moderation-guide/63116، وهو مورد رائع لأعضاء الطاقم الجدد.

إعدادات موقع جديدة لحالة إشعارات الوسوم الافتراضية

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

  • default_tags_watching
  • default_tags_tracking
  • default_tags_muted
  • default_tags_watching_first_post

تحديث تفضيلات المستخدمين لجميع المستخدمين عند تغيير إعداد الموقع الافتراضي

في السابق، عند تعديل إعداد موقع يبدأ بـ default_، كان التغيير ينطبق فقط على المستخدمين الجدد. لم يتأثر المستخدمون الحاليون بالتغيير. الآن، سيكون لدى المدراء خيار تطبيق التغيير تاريخيًا، أو فقط للمستخدمين الجدد.

إعداد فئة جديد: اشتراط أن تحتوي المواضيع الجديدة على وسوم من مجموعة وسوم

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

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

مجموعة أساسية قابلة للاختيار من قبل المستخدم

أضفنا إعداد موقع جديد، user selected primary groups، والذي عند تفعيله يسمح للمستخدمين باختيار المجموعة التي يريدون أن تكون مجموعتهم الأساسية. يمكن أن يكون هذا مفيدًا في المواقع حيث توفر المجموعات الأساسية تزيين صورة الملف الشخصي، ويريد المستخدمون القدرة على التبديل بين التزيين الذي يعرضونه. عند تفعيل إعداد الموقع، سيرى المستخدمون الذين هم أعضاء في مجموعات قائمة منسدلة جديدة لتفضيلات المجموعة الأساسية في تبويب الحساب.

image

تنسيق البريد الإلكتروني قابل للتكوين

يمكن للمواقع الآن تخصيص مظهر رسائل البريد الإلكتروني للإشعارات باستخدام HTML و CSS مخصصين. يمكن العثور على خيارات تخصيص البريد الإلكتروني الجديدة في /admin/customize/email_style

البحث عن المواضيع عند إدراج رابط تشعبي

عند إدراج رابط في محرر الموضوع، يمكنك الآن البحث عن مواضيع موجودة مباشرة من نافذة الرابط التشعبي.

37 إعجابًا

Even more!

But wait, there’s more! We do our best to highlight new features and changes for you, but there’s always too many changes to detail. For a full list of new features, bug fixes, UX improvements, and more, be sure to review the Additional Features and Fixes listed below.

Security Updates

This beta includes 1 security fix for issues reported by our community and HackerOne.

  • Check permissions when autocompleting mentions

Plugin improvements

User Notes

  • Bug fix

Voting

  • Bug fixes

Solved

  • Bug fixes

Patreon

  • Add optional donation prompt
  • Bug fixes

OAuth2 Basic

  • Copy improvement

Data Explorer

  • Shareable links to reports
  • Bug fixes

Assign

  • New category setting to add “unassigned” navigation menu
  • Order assign list by reverse bump date (previous random)
  • Bug fixes

Akismet

  • Bug fixes
  • Code refactor

Docker Manager

  • Dependency updates to resolve reported vulnerabilities
  • Always show link to /admin/upgrade from dashboard

Translator

  • Bug fix

RSS Polling

  • Rename from wellfed
  • Bug fixes

Onebox

  • Bug fixes

No Bump

  • Bug fix

Restricted replies

  • Initial release

WP Discourse

  • Use unique transient key for DiscourseUtilities::get_discourse_categories. This function returns more data than is stored in the transient that is set for internal use by the plugin.
  • Fix incorrectly formatted header keys

Zendesk

  • Bug fix

Styleguide

  • Add support for new date-time-inputs

Policy

  • Keep history of policy acceptance
  • Bug fix

Additional Features and Fixes

Click to expand

New Features

  • Load translation overrides without JS eval
  • Add an “init” method for extra nav items
  • Allow publishing docker dev either locally or net wide
  • Fallback to image alt before filename if there’s no title in lightboxes
  • Create New Topic button on embed with params
  • Stop updating last_posted_at on users for messages and whispers
  • Allow sending bulk invites to staged users
  • Remove attachments and truncate raw field for incoming emails
  • Add SES spam header to recognised spam headers
  • Add remembering topic list for group pms
  • Wiki editors are allowed edit tags for wiki topics.
  • Include image url in topic serializer
  • Remember scroll position in private message lists
  • Remember position in private message lists
  • Experimental hidden setting for draft backups
  • Allow staff to use topic_url for customizing email template
  • Improve honeypot and challenge logic
  • Use the ‘ugc’ rel attribute alongside ‘nofollow’
  • Add short site description on login page title

Bug Fixes

  • Skip invalid URLs when checking for audio/video in search blurbs
  • Add <img> alt attribute for Summary emails
  • Tweak restorer spec to make it stableish
  • Display tags topic list correctly when none is selected for subcategories
  • Build with prettier for imports
  • Allow theme translations to be accessed in initializers
  • FilterQueryParams mutates state that is essentially global
  • Improve regex used for image sizing controls
  • On mobile setting active on navItem would not work
  • Skip composer blur event when switching apps in iOS
  • Do not update created_at date when resending invites
  • Do not consider mobile app traffic as crawler visits
  • No need to pass cache option in onebox
  • Dropbox videos were not loading
  • Ensure menu not too tall on desktop only
  • Prevents whitelisted_generic_onebox_spec to fail with zeitwerk
  • Update action should be in setting-component mixin
  • Ensures menu panel is not too tall for screen
  • TopicQuery doesn’t react well to subcategories without definitions
  • Do not add personal message link in user menu if they are disabled
  • Linting
  • Move makeArray to discourse-common
  • Missing run import
  • Do not load plugin CSS/JS assets when disabled
  • Unread topics not clearing when whisper is last post
  • Hide muted subcategories for mobile
  • Enter key on forms submits rather than refresh
  • Make notification consent banner usable via keyboard and screenreader
  • Move attachment_css_class constant out of upload-short-url for discourse-markdown-it
  • Cache Discourse.system_user separately for each multisite tenant
  • Under some conditions draft would say it was saving when not
  • Tags can be filtered on categoryId without a q param
  • Default user preferenced categories are not updating in admin site setting UI.
  • Prettier on importing mixin
  • Ensure there’s an excerpt before showing the bio
  • Correct slug validation
  • Account for empty uploads directory upon backup restore
  • Generate category url correctly when slugs are empty
  • Require q param in /tags/filter/search route
  • Don’t use ember imports in pretty text
  • Use modules for Ember.run.debounce hack in testing
  • Yet more linting fixes
  • Upserting custom fields using keywords converts the array key to a string
  • More flaky jobs_base_spec.rb
  • Flaky jobs_base_spec.rb
  • Place image scale buttons unconditionally
  • Close modals on ESC key and clicking outside
  • Correct error when sending PM to email address
  • Prefer Category.find_by_slug over Category.find_by(slug: …)
  • TopicQuery category lookup by slug
  • Respond to user search correctly when category_id is blank
  • Theme component setting was not getting updated in the UI
  • Reload plugin translations in development
  • When running the wizard and using a custom theme, fallback to the color_scheme name if the base_scheme_id is nil
  • Allow storage of non unique rows in oauth2_user_infos
  • Update rack-mini-profiler
  • Hide muted subcategories
  • Handle nil case for avatar, just in case
  • Allow avatar downloads to follow redirects
  • Broken certificates
  • Failing build with prettier
  • Show poll voters in Oneboxed posts.
  • Check for presence of liked post before creating notification
  • Rubocop rule on restorer spec
  • Restore for non-multisite is not raising an error on reconnect step
  • Backwards compatibility for uncompiled email style css
  • Do not load group members when user can’t see it.
  • Should not disable topic inputs while creating new topic.
  • Wizard tests were broken with new loader
  • Sortable controller var conflict
  • Fixed testsuite
  • Correct path to ImportExport module
  • Reconnect in restore process connects to correct DB
  • Notifications are missing under certain conditions
  • Respect tl3 links no follow setting
  • Return blank avatar when downloading an avatar is not possible due to file size
  • Exclude image_url from web_hook_topic_view_serializer
  • Prevent null-byte searches causing 500 error
  • Follow redirect returns url if response code is 200
  • Do not resize xkcd image
  • Include user id in notification webhook
  • Load user model when some attributes are missing.
  • Make category updates slug validation idempotent
  • Reload only notifications when refreshing notification count
  • Zeitwerk-related fixes for jobs.
  • Rate limit and hijack certificate generation.
  • Add common HTML5 media extensions to onebox audio and video tags
  • Correct mention autocomplete in new topics in unsecured categories
  • ‘only_hidden_tags_changed?’ method returned ‘true’ even when tags are not changed.
  • Id is always true since it’s been to_i’d
  • D-button should default type to button
  • Fixes plugin generator with zeitwerk
  • Various fixes to draft system
  • Update Redis gem to version 4.1.3
  • Polyfills forEach support on NodeList for IE11
  • Handle encoded slugs for subcategories
  • Do not truncate encoded slugs
  • Display site text overrides for non ‘_MF’ keys
  • Transform pluralized keys to .other, to check valid interpolation
  • Update Redis gem to version 4.1.3
  • Get rid of redis freedom patch
  • More encoded slug fixes
  • Do not encode the URL twice
  • More places do deal with encoded slugs
  • Handle the nil slug on /categories
  • Account for nil when looking up subcategories
  • Correct topic timeline position calculation
  • Tag cannot be used if it belongs to two tag groups with parent tag
  • Use the quote generator in the example text
  • Do not send notification to empty push_url
  • Do not make notification API call if push_url is blank
  • Add migrations to fix index on category slugs
  • Prevents trash button to get focus when submiting input on profile
  • Respect private_email setting for user invited notification email
  • Include topic link when inviting existing users to a topic/PM
  • Correct line count link in GitHub commit onebox
  • Public_file_server.enabled is false in test
  • Add unique index to prevent duplicate slugs for categories
  • Category.find_by_slug
  • Do not unpin reply box in iOS when selecting Emoji
  • Remove hiredis gem which is no longer needed
  • Subcategory permissions validation
  • Validation of category tree depth
  • Move notification level only when user posted
  • Zeitwerk-related fixes for jobs.
  • Ensure that scheduled jobs are loaded.
  • ‘local_cdn_url’ method should work for local relative urls too.
  • Allow themes to upload and serve js files
  • Use upload’s cdn url in composer preview if available.
  • Allow change password with TOTP
  • Allows scrolling of search menu panel when showing more results
  • Remove another broken test
  • This emoji test was broken too
  • Flaky tests
  • Accurate sub_total calculation for reviewable_scores
  • Properly encoded slugs when configured to
  • Ensure we remove tempfiles from disk when creating an upload
  • Show a correct diff when editing consecutive paragraphs
  • Prevent from creation of duplicated TopicAllowedUsers
  • Minor Github onebox layout issues
  • Mobile adjustments for reviewable list

UX Changes

  • Tag input suggests required tags if none have been selected
  • Show user email address on “grant admin access” email and UI
  • Widen tag group name input field and add placeholder text
  • Convert alert & modal close to buttons for improved accessibility
  • Applies correct background to <select> on dark themes
  • Improve quoting on iOS
  • Fixes regression with iOS composer
  • Update disabled dropdowns style w/ color variables
  • Standardize tag display in search menu results
  • Dashboard links to git commits list instead of git comparison
  • Make group membership UI clearer
  • Emphasizes on local-dates being UTC in excerpts
  • Ensure GitHub onebox info does not wrap unnecessarily
  • Improve new GitHub onebox rendering in emails
  • Add newline after closing poll tag for poll builder
  • Wrap digest email footer in a table for better alignment options
  • Include metadata in composer link modal search results
  • Add CSS classes to digest email template to allow for easier styling

Performance

  • Add a filtered index for banners
  • Add index to notifications to speed up moving of posts
  • Stop destroying drafts on client when posting replies
  • Run expensive clean up uploads less frequently
  • Cache new users counts in summary emails
  • Add index on group to category_groups
  • Add unique index oauth2_user_infos(user_id, provider)
  • Faster moving of read state
26 إعجابًا