maintenance app
v32.33.5
メンテナンスアプリは、主にAPPの構成とAPIのスキーマによって駆動されます。スキーマは、APIから直接読み取られます(D2)。以下のドキュメントアプリの構成は次のとおりです。
src/config/ ...maintenance-models.jsアプリに表示されるモデルタイプを定義しますfield-config/各モデルタイプの構成を含みますfield-order.js各モデルタイプのフォーム内のフィールドの順序を定義しますfield-groups.js各モデルのフォームのフィールドグループ化を定義します。現在、これはプログラムにのみ使用されていますが、他のモデルタイプにも拡張することをお勧めします。field-overrides/含まれているのは、非標準の動作を必要とするフィールドの追加構成を含みます。最も一般的には、これは特別なコンポーネントを必要とするフィールドを意味します。index.js 、1つ以上のフィールドオーバーライドを持つすべてのモデルをリストしますindex.jsにインポートされます。多くのロジックを必要とするいくつかのモデルタイプまたはフィールドは、サブフォルダーに分離されます。inlinehelp-mapping.json各セクション/モデルタイプからドキュメント内のページへのマッピングを指定します。field-rules.jsには、他のフィールドの値に基づいてフィールドを表示または非表示にしたり、フィールド値を設定したりするために使用できる条件付きロジックが含まれています。periodTypes.jsonには、APIの現在のバージョンでサポートされている期間タイプのリストが含まれています。disabled-on-edit/オブジェクトが編集されているときに、常に読み取り専用として表示されるフィールドをリストするファイルを含みます。index.js各関連モデルにちなんで名付けられたファイルからフィールド名のリストをインポートする記録では、「スキーマ」と「モデルタイプ」は本質的に同じものであり、これらの用語はメンテナンスアプリと他の場所で同じ意味で使用されます。スキーマはAPIによって公開されますが、すべてのモデルタイプがスキーマにリストされているわけではありません。混乱に追加するために、「モデル」も「オブジェクト」と呼ばれることもあります。
メンテナンスアプリにモデルタイプを表示するには、次の条件を満たす必要があります。
src/config/maintenance-models.jsのセクションにリストされていますこれらの条件が満たされると、 maintenance-models.jsで指定されたセクションのメンテナンスアプリにモデルタイプが表示されます。新しいタイプのモデルを作成または編集する場合、フォームにはデフォルトでは、ほんの一握りの事前定義されたフィールドのみが含まれます。フォームで追加のフィールドを表示するには、次の条件を満たす必要があります。
src/config/field-config/field-order.jsのモデルタイプの下にリストされていますメンテナンスに新しいモデルを追加するには、通常、次の手順が含まれます。
src/config/maintenance-models.jsに追加しますsrc/config/field-config/field-order.jsに表示する必要があるフィールドのリストを追加しますsrc/config/field-config/field-groups.jsで指定できます。src/config/field-overrides/の新しいモデルタイプにちなんで名付けられた新しいファイルを作成します。 src/config/field-overrides/index.jsを開き、新しく作成したファイルをインポートし、 overridesByTypeオブジェクトに追加します。src/config/field-overrides/newType.js )内で、それを必要とするフィールドのカスタマイズの追加を開始します。これには通常、新しいコンポーネントの作成や特定のフィールドプロパティをオーバーライドすることが含まれます。例については、既存のフィールドオーバーライドを見てください。** string **として表示される文字列は翻訳がありません。これらはsrc/i18n/にある翻訳ファイルに追加する必要があります。一部の文字列は動的に生成され、モデルを削除しようとする場合、特定の状況でのみ表示される場合があります。注:翻訳ワークフローは、ある時点でd2.i18nを支持してi18Nextの使用に変更する必要があります。 特定のモデルでは、構成とフィールドのオーバーライドを使用して可能なことを超えてカスタマイズが必要です。そのような場合、新しいトップレベルコンポーネントを作成し、そのコンポーネントをsrc/router.jsの特別なルートに関連付ける必要がある場合があります
このアプローチの例には以下が含まれます。
src/EditModel/event-program/EditEventProgram.component.jssrc/EditModel/EditDataEntryForm.component.js