แอพการบำรุงรักษาส่วนใหญ่ขับเคลื่อนโดยแอพ config และ schemas จาก API schemas อ่านโดยตรงจาก API (โดย D2) เอกสารต่อไปนี้การกำหนดค่าแอป:
src/config/ ...maintenance-models.js กำหนดประเภทของรุ่นที่แสดงในแอพfield-config/ มีการกำหนดค่าสำหรับแต่ละรุ่นประเภทfield-order.js กำหนดลำดับของฟิลด์ภายในแบบฟอร์มสำหรับแต่ละรุ่นfield-groups.js กำหนดการจัดกลุ่มฟิลด์สำหรับแบบฟอร์มสำหรับแต่ละรุ่น ปัจจุบันใช้สำหรับโปรแกรมเฉพาะ แต่อาจเป็นความคิดที่ดีที่จะขยายไปยังรุ่นอื่น ๆ เช่นกันfield-overrides/ มีการกำหนดค่าพิเศษสำหรับฟิลด์ที่ต้องการพฤติกรรมที่ไม่ได้มาตรฐาน โดยทั่วไปนี่หมายถึงฟิลด์ที่ต้องใช้ส่วนประกอบพิเศษindex.js แสดงรายการทุกรุ่นที่มีการแทนที่ฟิลด์อย่างน้อยหนึ่งรายการindex.js บางรุ่นหรือฟิลด์ที่ต้องการตรรกะจำนวนมากจะถูกแยกออกเป็นโฟลเดอร์ย่อยinlinehelp-mapping.json ระบุการแมปจากแต่ละส่วน/รุ่นไปยังหน้าในเอกสารfield-rules.js มีตรรกะตามเงื่อนไขที่สามารถใช้ในการแสดงหรือซ่อนฟิลด์หรือตั้งค่าฟิลด์ตามค่าของฟิลด์อื่น ๆperiodTypes.json มีรายการประเภทระยะเวลาที่รองรับโดย API เวอร์ชันปัจจุบันdisabled-on-edit/ มีไฟล์ที่มีฟิลด์รายการที่จะแสดงเป็นแบบอ่านอย่างเดียวเสมอเมื่อมีการแก้ไขวัตถุindex.js นำเข้ารายการชื่อฟิลด์จากไฟล์ที่มีชื่อหลังจากแต่ละรุ่นที่เกี่ยวข้องสำหรับบันทึก "schemas" และ "ประเภทแบบจำลอง" เป็นหลักในสิ่งเดียวกันและคำศัพท์เหล่านี้ใช้แทนกันได้ทั้งในแอพบำรุงรักษาและที่อื่น ๆ Schemas ถูกเปิดเผยโดย API แต่ไม่ใช่ทุกรุ่นที่แสดงอยู่ใน schemas เพื่อเพิ่มความสับสน "โมเดล" นั้นบางครั้งก็เรียกว่า "วัตถุ"
เพื่อให้ประเภทรุ่นที่จะแสดงในแอพบำรุงรักษาต้องปฏิบัติตามเงื่อนไขต่อไปนี้:
src/config/maintenance-models.js เมื่อมีการปฏิบัติตามเงื่อนไขเหล่านี้แล้วประเภทของรุ่นจะปรากฏในแอพบำรุงรักษาภายใต้ส่วนที่ระบุไว้ใน maintenance-models.js เมื่อสร้างหรือแก้ไขโมเดลประเภทใหม่แบบฟอร์มจะเป็นค่าเริ่มต้นจะมีฟิลด์ที่กำหนดไว้ล่วงหน้าเพียงไม่กี่แห่งเท่านั้น เพื่อให้ฟิลด์เพิ่มเติมที่จะแสดงในรูปแบบจะต้องปฏิบัติตามเงื่อนไขต่อไปนี้:
src/config/field-config/field-order.jsการเพิ่มโมเดลใหม่ในการบำรุงรักษาโดยทั่วไปจะเกี่ยวข้องกับขั้นตอนต่อไปนี้:
src/config/maintenance-models.jssrc/config/field-config/field-order.jssrc/config/field-config/field-groups.jssrc/config/field-overrides/ เปิด src/config/field-overrides/index.js นำเข้าไฟล์ที่สร้างขึ้นใหม่และเพิ่มลงในวัตถุ overridesByTypesrc/config/field-overrides/newType.js ) เริ่มเพิ่มการปรับแต่งสำหรับฟิลด์ที่ต้องการ โดยทั่วไปจะเกี่ยวข้องกับการสร้างส่วนประกอบใหม่และ/หรือเอาชนะคุณสมบัติของฟิลด์บางอย่าง ดูที่ฟิลด์ที่มีอยู่แทนที่จะเป็นตัวอย่าง** string ** ใน UI ขาดการแปล สิ่งเหล่านี้จะต้องเพิ่มลงในไฟล์การแปลที่อยู่ใน src/i18n/ สตริงบางอย่างถูกสร้างขึ้นแบบไดนามิกและอาจปรากฏขึ้นในบางสถานการณ์ตัวอย่างเช่นเมื่อพยายามลบโมเดล หมายเหตุ: เวิร์กโฟลว์การแปลควรเปลี่ยนเป็นบางจุดเป็นการใช้ I18NEXT เพื่อสนับสนุน d2.i18n บางรุ่นต้องการการปรับแต่งเกินกว่าสิ่งที่เป็นไปได้โดยใช้การกำหนดค่าและการแทนที่ฟิลด์ ในกรณีเหล่านั้นอาจจำเป็นต้องสร้างองค์ประกอบระดับบนสุดใหม่และเชื่อมโยงส่วนประกอบนั้นกับเส้นทางพิเศษใน src/router.js
ตัวอย่างของวิธีการนี้รวมถึง:
src/EditModel/event-program/EditEventProgram.component.jssrc/EditModel/EditDataEntryForm.component.js