حفظ مسودة موضوع جديد

الأولوية: منخفضة

المنصة: تطبيق Discourse المحمول لنظام iOS (لم يتم اختباره على منصات أخرى). تم تكرار المشكلة في Discourse meta و try.Discourse.org.

الوصف: عند حفظ مسودة لموضوع جديد عند الطلب، لا يعمل زر “فتح المسودة”.

خطوات التكرار:

  1. انتقل إلى الصفحة الرئيسية لـ Discourse.
  2. انقر على + موضوع جديد.
  3. اكتب في سطر العنوان “اختبار المسودات”. واكتب في جسم المحرر “اختبار”. اتركه بدون تصنيف.
  4. انقر على إلغاء (أيقونة سلة المهملات في تطبيق Discourse المحمول). سيُطلب منك حفظ مسودة لاستخدامها لاحقًا - اختر هذا الخيار.
  5. يتغير زر + موضوع جديد إلى + فتح مسودة.
  6. انقر على + فتح مسودة. لا يحدث شيء.
  7. تحقق من مجلد المسودات - لم يتم حفظ أي مسودة.

النتيجة: أدى ذلك إلى عدم قدرتي المؤقتة على إنشاء موضوع جديد.

الحل البديل: عند النقر على زر + فتح مسودة غير النشط عدة مرات، ينهار موقع Discourse في التطبيق المحمول ويعود إلى اختيار النطاق. عند العودة إلى Discourse، يتم مسح زر + فتح مسودة ويعود إلى + موضوع جديد.

5 إعجابات

العنوان غير كافٍ الطول لاجتياز هذا التحقق

https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/app/models/composer.js#L1184

لكنني أتساءل، لماذا يحل الكود المشكلة بدلاً من الرفض ثم التقاط الأخطاء؟

أعتقد أنه يمكن التقاط الأخطاء هنا

https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/app/controllers/composer.js#L1244

شيء على هذا المنوال

this._saveDraftPromise = model.saveDraft().then(() => {
    this._lastDraftSaved = Date.now();
    ...
}, error => {
    // معالجة الأخطاء هنا
}).finally(() => {
    this._saveDraftPromise = null;
});

@eviltrout أي أفكار؟


7 إعجابات

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

أعتقد أن حدسك على الأرجح صحيح هنا، لكن من المستحيل عليّ التأكد دون رؤية كيفية تشغيل جميع اختباراتنا. إذا كان لديك وقت لتقديم طلب سحب (PR) في المستقبل، فسيكون ذلك رائعًا.

5 إعجابات

تمكّنت من إعادة إنتاج هذا الخطأ في متصفح كروم على نظام macOS في موقع Discourse Meta، وذلك باتباع الخطوات التي حدّدها Rhidian أدناه:

إعجابَين (2)

مرحبًا،

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

4 إعجابات

تم إغلاق هذا الموضوع تلقائيًا بعد 3 أيام. لم تعد الردود الجديدة مسموحًا بها.