Aplikasi pemeliharaan sebagian besar didorong oleh konfigurasi aplikasi dan skema dari API. Skema dibaca langsung dari API (oleh D2). Dokumen berikut ini konfigurasi aplikasi:
src/config/ ...maintenance-models.js mendefinisikan jenis model yang ditampilkan dalam aplikasifield-config/ berisi konfigurasi untuk setiap jenis modelfield-order.js mendefinisikan urutan bidang dalam bentuk untuk setiap jenis modelfield-groups.js mendefinisikan pengelompokan lapangan untuk formulir untuk setiap model. Ini saat ini hanya digunakan untuk program, tetapi mungkin merupakan ide yang baik untuk memperluasnya ke jenis model lain juga.field-overrides/ berisi konfigurasi tambahan untuk bidang yang membutuhkan perilaku non-standar. Paling umum ini berarti bidang yang membutuhkan komponen khusus.index.js mencantumkan semua model yang memiliki satu atau lebih override bidangindex.js . Beberapa jenis model atau bidang yang membutuhkan banyak logika dipisahkan menjadi sub folder.inlinehelp-mapping.json Menentukan pemetaan dari setiap bagian/tipe model ke halaman dalam dokumentasi.field-rules.js berisi logika bersyarat yang dapat digunakan untuk menampilkan atau menyembunyikan bidang atau mengatur nilai bidang berdasarkan nilai bidang lain.periodTypes.json berisi daftar jenis periode yang didukung oleh versi API saat ini.disabled-on-edit/ berisi file yang mencantumkan bidang yang akan selalu ditampilkan sebagai baca saja ketika suatu objek sedang diedit.index.js mengimpor daftar nama bidang dari file yang dinamai setelah setiap model yang relevanSebagai catatan, "skema" dan "tipe model" pada dasarnya adalah hal yang sama dan istilah -istilah ini digunakan secara bergantian baik di aplikasi pemeliharaan maupun di tempat lain. Skema diekspos oleh API, tetapi tidak setiap jenis model tercantum dalam skema. Untuk menambah "model" kebingungan juga beberapa kali disebut sebagai "objek".
Agar jenis model muncul di aplikasi pemeliharaan, kondisi berikut perlu dipenuhi:
src/config/maintenance-models.js Setelah kondisi ini dipenuhi, jenis model akan muncul di aplikasi pemeliharaan di bawah bagian yang ditentukan dalam maintenance-models.js . Saat membuat atau mengedit model jenis baru, formulir akan secara default hanya berisi beberapa bidang yang telah ditentukan. Agar bidang tambahan ditampilkan dalam formulir, kondisi berikut perlu dipenuhi:
src/config/field-config/field-order.jsMenambahkan model baru ke pemeliharaan biasanya melibatkan langkah -langkah berikut:
src/config/maintenance-models.jssrc/config/field-config/field-order.jssrc/config/field-config/field-groups.js .src/config/field-overrides/ . Buka src/config/field-overrides/index.js , impor file yang baru dibuat dan tambahkan ke objek overridesByType .src/config/field-overrides/newType.js ), mulailah menambahkan kustomisasi untuk bidang yang memerlukannya. Ini biasanya melibatkan pembuatan komponen baru dan/atau mengesampingkan sifat bidang tertentu. Lihatlah overrides bidang yang ada untuk contoh.** string ** di UI kurang terjemahan. Ini perlu ditambahkan ke file terjemahan yang terletak di src/i18n/ . Beberapa string dihasilkan secara dinamis dan hanya dapat muncul dalam situasi tertentu, misalnya ketika mencoba menghapus model. Catatan: Alur kerja terjemahan pada suatu titik harus berubah untuk menggunakan i18Next yang mendukung d2.i18n . Model tertentu memerlukan kustomisasi di luar apa yang mungkin menggunakan overrides konfigurasi dan bidang. Dalam kasus tersebut mungkin perlu membuat komponen tingkat atas baru dan mengaitkan komponen itu dengan rute khusus di src/router.js
Contoh dari pendekatan ini meliputi:
src/EditModel/event-program/EditEventProgram.component.jssrc/EditModel/EditDataEntryForm.component.js