Die Wartungs -App wird größtenteils von der App -Konfiguration und den Schemas aus der API angetrieben. Die Schemata werden direkt aus der API (nach D2) gelesen. Die folgenden Dokumente dokumentieren die App -Konfiguration:
src/config/ ...maintenance-models.js definiert die Modelltypen, die in der App angezeigt werdenfield-config/ Enthält Konfiguration für jeden Modelltypfield-order.js definiert die Reihenfolge der Felder innerhalb des Formulars für jeden Modelltypfield-groups.js definiert die Feldgruppierung für das Formular für jedes Modell. Dies wird derzeit nur für Programme verwendet, aber es könnte eine gute Idee sein, es auch auf andere Modelltypen zu erweitern.field-overrides/ enthält zusätzliche Konfiguration für Felder, die ein nicht standardmäßiges Verhalten erfordern. Am häufigsten bedeutet dies Felder, die spezielle Komponenten erfordern.index.js listet alle Modelle auf, die ein oder mehrere Feldüberschreibungen habenindex.js importiert wird. Einige Modelltypen oder Felder, die viel Logik erfordern, werden in Subordner unterteilt.inlinehelp-mapping.json gibt die Zuordnung von jedem Abschnitt/Modell-Typ zu Seiten in der Dokumentation fest.field-rules.js enthält eine bedingte Logik, mit der Felder angezeigt oder ausblenden oder Feldwerte basierend auf dem Wert anderer Felder festgelegt werden können.periodTypes.json enthält die Liste der Periodypen, die von der aktuellen Version der API unterstützt werden.disabled-on-edit/ Enthält Dateien, in denen Felder auflisten, die immer als schreibgeschützt angezeigt werden, wenn ein Objekt bearbeitet wird.index.js importiert Listen von Feldnamen aus Dateien, die nach jedem relevanten Modell benannt sindFür den Datensatz sind "Schemas" und "Modelltypen" im Wesentlichen dasselbe und diese Begriffe werden sowohl in der Wartungs -App als auch in anderen Teilen synonym verwendet. Schemata werden von der API ausgesetzt, aber nicht jeder Modelltyp ist in den Schemata aufgeführt. Zu den Verwirrungsmodellen "werden auch einige Male als" Objekte "bezeichnet.
Damit ein Modelltyp in der Wartungs -App angezeigt werden kann, müssen die folgenden Bedingungen erfüllt sein:
src/config/maintenance-models.js aufgeführt Sobald diese Bedingungen erfüllt sind, wird der Modelltyp in der Wartungs-App unter dem in maintenance-models.js angegebenen Abschnitt angezeigt. Beim Erstellen oder Bearbeiten von Modellen des neuen Typs enthält das Formular standardmäßig nur eine Handvoll vordefinierter Felder. Damit zusätzliche Felder im Formular angezeigt werden können, müssen die folgenden Bedingungen erfüllt sein:
src/config/field-config/field-order.js aufgeführt.Das Hinzufügen eines neuen Modells zur Wartung umfasst in der Regel die folgenden Schritte:
src/config/maintenance-models.js hinzusrc/config/field-config/field-order.js angezeigt werden sollten.src/config/field-config/field-groups.js angegeben werden.src/config/field-overrides/ benannt ist. Öffnen Sie src/config/field-overrides/index.js , importieren Sie die neu erstellte Datei und fügen Sie sie dem overridesByType -Objekt hinzu.src/config/field-overrides/newType.js ) können Anpassungen für die erforderlichen Felder hinzugefügt werden. Dies beinhaltet in der Regel das Erstellen neuer Komponenten und/oder das Überschreiben bestimmter Feldeigenschaften. Schauen Sie sich die vorhandenen Feldüberschreibungen für Beispiele an.** string ** in den UI -Übersetzungen auftreten. Diese müssen zu den Übersetzungsdateien in src/i18n/ hinzugefügt werden. Einige Zeichenfolgen werden dynamisch erzeugt und können nur in bestimmten Situationen angezeigt werden, beispielsweise beim Versuch, ein Modell zu löschen. Hinweis: Der Übersetzungs -Workflow sollte sich irgendwann ändern, wenn I18Next zugunsten von d2.i18n verwendet wird. Bestimmte Modelle erfordern eine Anpassung über das, was mit den Konfigurations- und Feldüberschreibungen möglich ist. In diesen Fällen kann es erforderlich sein, eine neue Komponente der obersten Ebene zu erstellen und diese Komponente mit einer speziellen Route in src/router.js zu assoziieren
Beispiele für diesen Ansatz umfassen:
src/EditModel/event-program/EditEventProgram.component.jssrc/EditModel/EditDataEntryForm.component.js