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