GitHubBeitragen in GitHub: Online bearbeiten

Detaillierte Ansicht der Entität anpassen

Einleitung

Sie können die Detailansicht einer Entität auf jede beliebige Weise anpassen, einschließlich:

  • Ausblenden überflüssiger Registerkarten, Umbenennen vorhandener Registerkarten oder Hinzufügen neuer Registerkarten;
  • Erstellen Sie Ihre eigenen Abschnitte, um native und benutzerdefinierte Felder so zu gruppieren, wie Sie es benötigen.

❗️ So leistungsfähig sie auch ist, die Anpassung der Ansicht hat ihre Grenzen.

Um die Detailansicht zu ändern, öffnen Sie den Menüpunkt Zielprozesseinstellungen > Detailansichten. Hier finden Sie Standardlayouts für jede Entität. Diese Layouts werden im JSON-Format beschrieben und enthalten die Liste aller Registerkarten, Abschnitte, Felder und Schaltflächen, die als Komponenten dargestellt werden.

📘 Wenn Sie eine neue Komponente erstellen, müssen Sie keine Einstellungen vornehmen: componentID, wird automatisch generiert.

Jede Entität hat ihr eigenes Standardlayout, ähnlich wie die alte, nicht anpassbare Detailansicht. Sie können jederzeit auf die Standardvorlage zurücksetzen oder die Anpassung vollständig deaktivieren. Jede Vorlage definiert das Layout für eine bestimmte Entität in einem bestimmten Prozess (z. B. Merkmale im Kanban-Prozess).

🚧 Sie sehen die Option Detailansichten nicht?

  1. Stellen Sie sicher, dass Sie ein Systemadministrator sind. Wenn die einzigen beiden Optionen, die Sie in den Einstellungen sehen, "Diagnose und Protokolle" und "Import" sind, bedeutet dies, dass Sie kein Systemadministrator sind.
  2. Die Anpassung der Detailansicht kann aus einem bestimmten Grund vorübergehend für das Konto Ihres Unternehmens deaktiviert sein. Stellen Sie eine Anfrage an tp-support@apptio.com und wir werden Ihnen mitteilen, wann die Freigabe möglich ist.

In diesem Beispiel arbeiten wir mit der Entität "Feature" im "Scrum"-Prozess. Navigieren Sie dazu zu Zielprozess-Einstellungen > Detailansichten und wählen Sie in der Dropdown-Liste der Entitäten "Features" und in der Dropdown-Liste der Prozesse "Scrum". Dann schalten wir die anpassbare Ansicht ein. Das Standardlayout wird geladen.

Zielprozess-Einstellungen > Detailansichten anzeigen, und wählen Sie dann im Dropdown-Menü der Entität "Features" und im Dropdown-Menü des Prozesses "Scrum".

bei Interpunktions- oder Syntaxfehlern in JSON hebt der Layout-Editor die Fehler hervor. Die Schaltfläche "Änderungen übernehmen" ist deaktiviert, bis Sie das Problem behoben haben. Wenn etwas schief gelaufen ist, können Sie die bearbeitete Version auf ein Standardlayout zurücksetzen, indem Sie auf die Schaltfläche "Auf Standard zurücksetzen" klicken.

Registerkarten

Registerkarten werden in der Komponente sections definiert. Jede Registerkarte besteht aus drei Teilen:

  • title (Titel der Registerkarte)
  • titleExtra (Zähler für den Titel der Registerkarte)
  • component (Inhalt der Registerkarte)
{
   "id":"tabs",
   "type":"sections",
   "location":"tabs",
   "sections":[
      {
         "title":{
            "type":"string",
            "value":"Relations",
            "localize":true
         },
         "titleExtra":{
            "type":"component",
            "component":"label.relationCount",
            "properties":{
               "text":""
            },
            "componentId":"component_v47vknl"
         },
         "component":{
            "type":"component",
            "component":"relations.container",
            "properties":{
               "name":"relations container"
            },
            "componentId":"component_0eye9w9"
         },
         "componentId":"section_nlbsdtj"
      },
      {
         "title":{
            "type":"string",
            "value":"History",
            "localize":true
         },
         "component":{
            "type":"component",
            "component":"auditHistory",
            "componentId":"component_uovrhva"
         },
         "componentId":"section_a6ede8w"
      }
   ],
   "componentId":"sections_smnpnfl"
}

Eine vorhandene Registerkarte umbenennen

Um eine Registerkarte umzubenennen, ändern Sie die value des Teils title . Benennen wir die Registerkarte Flow in Change Log um.

{
   "title":{
      "type":"string",
      "value":"Change Log",
      "localize":true
   },
   "component":{
      "type":"component",
      "component":"auditHistory",
      "componentId":"component_uovrhva"
   },
   "componentId":"section_a6ede8w"
}

Umbenennen einer Entität

Verschieben einer vorhandenen Registerkarte

Verschieben wir die Registerkarte "Tests" an das Ende. Dazu nehmen wir den gesamten Abschnitt und verschieben ihn an das Ende des Arrays sections .

verschieben einer vorhandenen Registerkarte

verschieben einer vorhandenen Registerkarte

Eine neue Registerkarte hinzufügen

Verschieben wir 'Vorlauf- und Zykluszeit' auf eine neue Registerkarte. Standardmäßig wird sie als klappbare Komponente angezeigt:

{
   "type":"collapsible",
   "title":{
      "type":"string",
      "value":"Lead cycle time",
      "localize":true
   },
   "component":{
      "type":"component",
      "component":"leadCycleTime",
      "properties":{
         "evictProperties":[
            "leadTime",
            "cycleTime"
         ]
      },
      "componentId":"component_qkvjg2l"
   },
   "componentId":"collapsible_x9y2yu3"
},

Wir werden sie in eine section Komponente umwandeln:

{
   "title":{
      "type":"string",
      "value":"Lead cycle time",
      "localize":true
   },
   "component":{
      "type":"component",
      "component":"leadCycleTime",
      "properties":{
         "evictProperties":[
            "leadTime",
            "cycleTime"
         ]
      }
   }
}

hinzufügen einer neuen Registerkarte

Vorhandene Registerkarte entfernen

Entfernen wir die Registerkarte "Test":

eine vorhandene Registerkarte entfernen

eine bestehende Registerkarte entfernen

Geben Sie eine Registerkarte an, die standardmäßig geöffnet werden soll

Sie können festlegen, welche Registerkarte bei jedem Öffnen einer Karte geöffnet werden soll, indem Sie die zusätzliche Eigenschaft "ausgewählt" hinzufügen.

Legen Sie fest, dass die Registerkarte "Aufgaben" jedes Mal geöffnet wird, wenn Sie die Detailansicht der User Story öffnen.

festlegen, dass die Registerkarte Aufgaben standardmäßig geöffnet wird

Registerkarte "Fluss" zur Entität "Erweiterte Domäne" hinzufügen

Ab der Version 2403.3 von Targetprocess ist es möglich, eine Registerkarte "Flow" zu Extended Domain Entities hinzuzufügen.

{
                    "type": "section",
                    "title": {
                      "type": "string",
                      "value": "Flow",
                      "localize": true
                    },
                    "component": {
                      "type": "component",
                      "component": "implementationHistory"
                    }
                  },

hinzufügen einer Flussregisterkarte zur erweiterten Domänenentität

Eine eingebettete Seite als Registerkarte hinzufügen

Sie können die Seiten über Links sehen, die Sie in einem URL und das benutzerdefinierte Feld Template URL als zusätzliche Registerkarte in einer Entity-Ansicht angezeigt, so dass Sie mit den externen Seiten und Dokumenten in Targetprocess arbeiten können.

Fügen wir ein benutzerdefiniertes Feld "Doc" unter dem Objekt "Effort" des Abschnitts "Info" in JSON hinzu.

hinzufügen einer eingebetteten Seite als Registerkarte

Fügen wir nun nach der Registerkarte "Beziehungen" eine neue Registerkarte mit der Bezeichnung " Google Doc" hinzu: Fügen Sie das gesamte Objekt unter dem Objekt "Beziehungen" in JSON ein.

{
  "title": {
    "type": "string",
    "value": "Google Doc"
  },
  "component": {
    "type": "embeddedPage",
    "customFieldName": "Doc"
  }
}

eine neue Registerkarte mit der Bezeichnung " Google Doc" nach der Registerkarte "Beziehungen" hinzufügen

Gehen Sie zur Detailansicht des Merkmals und füllen Sie das benutzerdefinierte Feld URL mit einem externen Link (z. B. zu einem Google Dokument). Magie!

Gehen Sie zur Detailansicht des Merkmals und füllen Sie das benutzerdefinierte Feld URL mit einem externen Link aus

Eine eingebettete Roadmap (Zeitleiste) als Registerkarte hinzufügen

Es ist möglich, die Roadmap auf der Registerkarte Detailansicht hinzuzufügen, navigieren Sie hier für die Anleitung.

Ein eingebettetes Board als Registerkarte hinzufügen

Zurzeit nicht möglich. Bitte fügen Sie Ihre Stimme für die entsprechende Idee hinzu.

Aufgabe/Testfallvorlage hinzufügen

Mit dieser Komponente können Sie eine Reihe von Testfällen oder Aufgaben erstellen und sie sofort zu einer beliebigen User Story hinzufügen. Es funktioniert für jedes Projekt, jedes Team und jeden Prozess.

Die Komponente fügt der User-Story-Ansicht eine Registerkarte hinzu. Auf dieser Registerkarte können Sie Vorlagen erstellen, die Aufgaben oder Testfälle enthalten, die Sie auf mehrere User Stories anwenden müssen. Nachdem Sie die Vorlage und die Aufgaben und/oder Testfälle, die Sie verwenden möchten, erstellt haben, können Sie sie auf eine beliebige Benutzergeschichte anwenden, indem Sie auf die Registerkarte Vorlage gehen und Vorlage anwenden wählen.

Bitte fügen Sie diese Komponente zur User Story Entität hinzu:

{
    "title": {
      "type": "string",
      "value": "Template",
      "localize": true
    },
    "component": {
      "type": "taskTestCaseTemplate"
    }
 }

Fügen wir eine Registerkarte "Vorlage" vor der Registerkarte "Tests" ein:

Aufgabe/Testfallvorlage hinzufügen

Aufgabe/Testfallvorlage hinzufügen

Persistente Inhalte in Registerkarten zulassen

Standardmäßig wird jedes Mal, wenn Sie zu einer anderen Registerkarte wechseln, deren Inhalt vom Backend angefordert. Diese Anfrage nimmt einige (kurze) Zeit in Anspruch und veranlasst das System, Ihnen einen Spinner zu zeigen. Sie können dieses Verhalten deaktivieren und das System veranlassen, alle Registerkarten für die aktuell geöffnete Entität zwischenzuspeichern. Dann wird der Inhalt der Registerkarten beständig: Jede Registerkarte wird nur einmal angefordert, und wenn Sie nach dem Wechsel zu anderen Registerkarten zu ihr zurückkehren, wird ihr Inhalt sofort angezeigt, ohne dass er erneut angefordert und wiedergegeben wird.

Um dauerhafte Registerkarteninhalte zu ermöglichen, verwenden Sie die Eigenschaft "cacheOpenedTabs" in der Komponente mit "type": "sections", die Ihre Registerkarten enthält. Setzen Sie die Eigenschaft auf "true". (Sie wird standardmäßig als "false" betrachtet.)

{
                "id": "tabs",
                "type": "sections",
                "location": "tabs",
                "cacheOpenedTabs": "true",
                "sections": [

                    // YOUR TABS HERE...

                ]
              }

Beachten Sie, dass die Einstellung dieser Eigenschaft auf "true" bei einer großen Anzahl von Inner Lists in Tabs zu einer erheblichen Belastung bei Live-Aktualisierungen führen kann. Wenn Sie Probleme mit Live-Updates oder mit der allgemeinen Leistung Ihres Browsers oder Ihres Geräts haben, versuchen Sie, "cacheOpenedTabs" auf "false" zu setzen.

Blöcke in der rechten Spalte

Einen Block entfernen

Lassen Sie uns nun das rechte Feld der Ansicht anpassen. Um den Abschnitt 'Lead Cycle Time' zu entfernen, löschen Sie einfach das gesamte Objekt mit "value": "Lead cycle time".

entfernen des Abschnitts über den Vorlaufzeitzyklus

entfernen des Abschnitts über den Vorlaufzeitzyklus

Einen Block hinzufügen

Möchten Sie Datumsfelder in einem neuen Abschnitt gruppieren? Um sicherzustellen, dass die JSON-Formatierung nicht verloren geht, duplizieren Sie einen beliebigen Abschnitt, z. B. "Info", und geben Sie dem neuen Abschnitt einen Namen, indem Sie "value": "Info" string bearbeiten. Löschen Sie Felder, die für diesen Abschnitt unbrauchbar sind, indem Sie das gesamte Objekt zu jedem Feld aus JSON entfernen.

gruppe-datum-felder

gruppe-datum-felder

Einen Abschnitt für DevOps Integrationen hinzufügen

Um Zweige und Zusammenführungen/Anfragen zu sehen, die mit einer beliebigen Targetprocess-Entitäts-ID verbunden sind, müssen Sie die Ansicht dieses Entitätstyps anpassen.
Dieser Code fügt einen neuen Block in das rechte Feld ein:

{
   "type": "devops-info/v2",
   "component": "DevOpsInfoV2",
   "componentId": "devops_component"
 },

Fügen wir sie unterhalb des Abschnitts "Aufgaben" hinzu:

hinzufügen von DevOps Integrationen unter dem Abschnitt Zuweisung

Einen Abschnitt für die Integration mit Jira hinzufügen

Um Informationen zur Jira-Integration anzuzeigen, verwenden Sie den folgenden Code:

{
  "type": "work-sharing-v2/v2",
    "component": "WorkSharingInfoComponentV2",
    "componentId": "work_sharing_component"
},

Einen TestRail Block hinzufügen

Diese Komponente arbeitet mit TestRail Integration zusammen. Der Code fügt eine neue Registerkarte hinzu, auf der die Liste der Testfälle von TestRail angezeigt wird.

{ 
   "title": { 
      "type": "string", 
      "value": "TestRail", 
      "localize": false 
   }, 
   "component": { 
      "type": "testrail-list", 
      "component": "TestRailTestCasesComponent",
      "componentId": "testrail_testcases" 
   }, 
"componentId": "section_testrail" 
},

Einen Direktzugriffsblock hinzufügen

Diese Komponente ermöglicht die Kontrolle der Benutzerzugriffsrechte auf Entitäten:

{"type": "direct-access-component"},

Felder

Felder ausblenden

❗️ Beachten Sie, dass Felder, die nicht sichtbar sind, immer noch über die API v.2 verfügbar sind. Es ist also keine gute Idee, Felder aus Sicherheitsgründen auf diese Weise zu verbergen.

Da die Datumsfelder bereits im neuen Abschnitt "Daten" angezeigt werden, müssen sie aus dem Abschnitt "Info" entfernt werden: Löschen Sie die vollständigen Objekte der Felder aus dem Feld "Info".

entfernungs-Felder

entfernungs-Felder

Natives Feld umbenennen

❗️ Benennen Sie systemeigene Felder nicht über den Layout-Editor um, da sich dies nur auf die Detailansicht auswirkt, nicht auf alle Ansichten im System, und zu Inkonsistenz führt.

Benutzerdefiniertes Feld hinzufügen

🚧 Benutzerdefiniertes Feld vom Typ Targetprocess Multiple Entity wird nicht unterstützt

Bitte fügen Sie Ihre Stimme für die entsprechende Idee hinzu, wenn Sie ein benutzerdefiniertes Feld dieses Typs anzeigen möchten.

Fügen wir das benutzerdefinierte Feld "Extra" unter dem Feld "Eigentümer" im Abschnitt "Info" hinzu. Vergessen Sie nicht, dieses Feld im Menüpunkt Targetprocess Settings > Custom Fields hinzuzufügen. Fügen Sie nun das gesamte Objekt unter dem Objekt "Owner" in JSON hinzu.

{
                  "type": "property.customField",
                  "properties": {
                    "name": "Extra"
                  }
                }

das benutzerdefinierte Feld "Extra" unter dem Feld "Eigentümer" des Abschnitts "Info" hinzufügen

das benutzerdefinierte Feld "Extra" unter dem Feld "Eigentümer" des Abschnitts "Info" hinzufügen

Benutzerdefiniertes Feld umbenennen

Wenn Sie ein vorhandenes benutzerdefiniertes Feld umbenennen möchten, fügen Sie innerhalb von properties die zusätzliche Eigenschaft label hinzu. label sollte "type":"string" und value mit dem erforderlichen Namen enthalten.

{
   "type":"property.customField",
   "properties":{
      "name":"Custom Field Name",
      "label":{
         "type":"string",
         "value":"Updated Name",
         "localize":true
      }
   },
   "componentId":"property.customField_0gustmk"
}

zusätzliche Eigenschaftsbeschriftung innerhalb der Eigenschaften hinzufügen.

Benutzerdefiniertes Feld ausblenden

{
   "type":"property.customField",
   "properties":{
      "name":"Cost Type"
   },
   "visibilityConfig":{
      "entityQuerySelector":"false"
   }
}

Hinzufügen eines benutzerdefinierten Feldes vom Typ Rich Text

Ein benutzerdefiniertes Rich-Text-Feld wird normalerweise in den Hauptteil der Ansicht eingefügt, da es viel Platz benötigt. Fügen wir auf der Registerkarte "Info" unter dem Objekt "Beschreibung" in JSON ein Feld "Zusätzliche Informationen" ein.

Hinzufügen eines benutzerdefinierten Feldes vom Typ Rich Text

Hinzufügen eines benutzerdefinierten Feldes vom Typ Rich Text

Ein Feld schreibgeschützt machen

Ersetzen Sie "editable": true, durch "editable": false,

Reset deaktivieren

Durch die Hinzufügung von "allowReset": false,wird ein einmal gesetzter Wert nicht mehr mit einem leeren Wert oder mit X zurückgesetzt.

Ein Feld schreibgeschützt machen

Ein Feld schreibgeschützt machen

Hinzufügen eines Tooltips

Eine tooltip Komponente kann jeder beliebigen label

{
   "type": "property.plannedEndDate.assignable",
   "properties": {
      "label": {
         "type": "string",
         "value": "Planned end",
         "localize": true
      },
      "editable": true,
      "tooltip": "HEre!"
   },
   "componentId": "property.plannedEndDate.assignable_nl5etxp"
   },

Hinzufügen eines Tooltips

LAYOUT

Raster

Es ist auch möglich, ein **Gitter ** hinzuzufügen, das bestimmte Werte enthält, z. B. benutzerdefinierte Felder der Entität:

ein **Gitter **mit spezifischen Werten hinzugefügt

{
  "type": "grid",
  "columns": [
    "auto",
    "auto",
    "auto"
  ],
  "rows": [
    "auto",
    "auto"
  ],
  "components": [
    {
      "gridRow": 1,
      "gridColumn": 1,
      "type": "property.customField",
      "properties": {
        "name": "Select your pet"
      },
      "componentId": "property.customField_h9ow2c2"
    },
    {
      "gridRow": 1,
      "gridColumn": 2,
      "type": "property.customField",
      "properties": {
        "name": "Select your pet"
      },
      "componentId": "property.customField_20bua0m"
    },
    {
      "gridRow": 1,
      "gridColumn": 3,
      "type": "property.customField",
      "properties": {
        "name": "Select your pet"
      },
      "componentId": "property.customField_6kf34yv"
    },
    {
      "gridRow": 2,
      "gridColumn": 1,
      "type": "property.customField",
      "properties": {
        "name": "Select your pet"
      },
      "componentId": "property.customField_ppm9uf6"
    },
    {
      "gridRow": 2,
      "gridColumn": 3,
      "type": "property.customField",
      "properties": {
        "name": "Select your pet"
      },
      "componentId": "property.customField_qoa5oaj"
    }
  ],
  "componentId": "grid_7p9bi2i"
}

Stack

Wenn Sie mehrere Felder/Komponenten /etc innerhalb der faltbaren haben wollen, können Sie diese Komponente als Stapel machen, so dass Sie eine beliebige Anzahl von Kindern in ihr platzieren können

Stapel

Stapel

{
                    "title": {
                      "type": "string",
                      "value": "Defenition of Done",
                      "localize": true
                    },
                    "component": {
                      "type": "stack",
                      "orientation": "column",
                      "components": [
                        {
                          "type": "property.customField",
                          "properties": {
                            "name": "Select your pet"
                          },
                          "componentId": ""
                        },
                        {
                          "type": "property.customField",
                          "properties": {
                            "name": "Remain Developer"
                          },
                          "componentId": ""
                        },
                        {
                          "type": "property.customField",
                          "properties": {
                            "name": "Default or not"
                          },
                          "componentId": ""
                        }
                      ],
                      "componentId": ""
                    },
                    "componentId": "",
                    "type": "section"
                  }

Zusammenklappbar

Sie können auch ausklappbare Registerkarten mit den benutzerdefinierten oder anderen Feldern konfigurieren. Sie müssen nur die Namen und Titel der benutzerdefinierten Felder durch die von Ihnen benötigten ersetzen:

kollabierbare Registerkarten

faltbare Registerkarten

{
                    "title": {
                      "type": "string",
                      "value": "Cost benefit",
                      "localize": true
                    },
                    "component": {
                      "type": "stack",
                      "orientation": "column",
                      "components": [
                        {
                          "type": "collapsible",
                          "title": {
                            "type": "string",
                            "value": "First Custom Fields set",
                            "localize": true
                          },
                          "component": {
                            "type": "stack",
                            "orientation": "column",
                            "components": [
                              {
                                "type": "property.customField",
                                "properties": {
                                  "name": "Select your pet"
                                },
                                "componentId": ""
                              },
                              {
                                "type": "property.customField",
                                "properties": {
                                  "name": "Remain Developer"
                                },
                                "componentId": ""
                              },
                              {
                                "type": "property.customField",
                                "properties": {
                                  "name": "Default or not"
                                },
                                "componentId": ""
                              }
                            ],
                            "componentId": "stack_9dfo0xr"
                          },
                          "componentId": "collapsible_6hw534j"
                        },
                        {
                          "type": "collapsible",
                          "title": {
                            "type": "string",
                            "value": "Second Custom Fields set",
                            "localize": true
                          },
                          "component": {
                            "type": "stack",
                            "orientation": "column",
                            "components": [
                              {
                                "type": "property.customField",
                                "properties": {
                                  "name": "Probability"
                                },
                                "componentId": ""
                              },
                              {
                                "type": "property.customField",
                                "properties": {
                                  "name": "Tested"
                                },
                                "componentId": ""
                              },
                              {
                                "type": "property.customField",
                                "properties": {
                                  "name": "Due Date"
                                },
                                "componentId": ""
                              }
                            ],
                            "componentId": "stack_iuphs2j"
                          },
                          "componentId": "collapsible_qynefma"
                        },
                        {
                          "type": "collapsible",
                          "title": {
                            "type": "string",
                            "value": "Third Custom Fields set",
                            "localize": true
                          },
                          "component": {
                            "type": "stack",
                            "orientation": "column",
                            "components": [
                              {
                                "type": "",
                                "properties": {
                                  "name": "Entity Release"
                                },
                                "componentId": ""
                              },
                              {
                                "type": "property.customField",
                                "properties": {
                                  "name": "Simulated Effort"
                                },
                                "componentId": ""
                              },
                              {
                                "type": "property.customField",
                                "properties": {
                                  "name": "AuthDate"
                                },
                                "componentId": ""
                              }
                            ],
                            "componentId": ""
                          },
                          "componentId": ""
                        }
                      ],
                      "componentId": ""
                    },
                    "componentId": ""
                  }

Klappbare Objekte standardmäßig (un)klappbar machen

Sie können das Verhalten eines Collapsible in Bezug auf das Ein- oder Ausklappen bei jedem Öffnen der Seite definieren. Dies wird durch die Eigenschaft "defaultState" gesteuert, die 3 mögliche Werte hat: "collapsed", "uncollapsed", "user" (der Standardwert).

Mit "defaultState": "collapsed" wird das Collapsible immer eingeklappt, nachdem die Seite geladen oder aktualisiert wurde. Eine letzte Änderung dieses Zustands - z. B. wenn der Benutzer das Klappmenü erweitert - bleibt bis zur Aktualisierung der Seite bestehen, d. h. ein Wechsel zwischen den Registerkarten führt nicht dazu, dass der Zustand wieder eingeklappt wird.

Mit "defaultState": "uncollapsed" wird das Collapsible immer ausgeklappt (d.h. erweitert), nachdem die Seite geladen oder aktualisiert wurde. Wie bei dem obigen Wert "collapsed" bleibt eine letzte Änderung dieses Zustands durch den Benutzer bis zur Aktualisierung der Seite bestehen.

Wenn "defaultState" auf "user" gesetzt oder nicht angegeben ist, hat das Klappmenü bei der Aktualisierung denselben Zustand (zusammengeklappt oder aufgeklappt), in dem der Benutzer es vor der Aktualisierung verlassen hat.

Beachten Sie, dass diese Eigenschaft sowohl für Collapsibles in Tabs als auch für Collapsibles in der rechten Spalte funktioniert - genauer gesagt für jede Layoutkomponente vom Typ "collapsible".

Hier ist ein Beispiel für ein Collapsible, das standardmäßig eingeklappt ist:

{
    "type": "collapsible",
    "title": {
        "type": "string",
        "value": "Short Description",
        "localize": true
    },
    "component": {
        "type": "stack",
        "components": [
            {
                "type": "description"
            }
        ],
        "orientation": "column"
    },
    "properties": {
        "defaultState": "collapsed"
    }
}

Und so verhält sich dieses Collapsible:

standardmäßig zusammenklappbar

Hinzufügen einer horizontalen Linie

Sie können eine horizontale Linie hinzufügen, um Felder voneinander zu trennen:

{
	"type": "separator"
}

Fügen wir ein Trennzeichen unter dem Feld "Beschreibung" ein:

trennzeichen unter dem Beschreibungsfeld hinzugefügt

Separator

Ein Leerzeichen hinzufügen

Sie können Felder voneinander trennen, indem Sie ein zusätzliches Leerzeichen einfügen:

{
   "type": "space"
}

Fügen wir ein Leerzeichen unter dem Feld "Beschreibung" ein:

code-space

Bereich

Einfachen Text hinzufügen

Zusammen mit einer klappbaren Abschnittsüberschrift können Sie der benutzerdefinierten Entitätsansicht benutzerdefinierten Text hinzufügen.
Sie müssen nur das JSON zwischen den erforderlichen Abschnitten einfügen:

individuellen Text hinzufügen

individuellen Text hinzufügen

{
      "type": "component",
      "component": "label",
      "properties": {
         "text": "This is the Header",
         "cssClass": "bold"
      },
      "componentId": ""
   },
   {
      "type": "component",
      "component": "label",
      "properties": {
         "text": "Use them well",
         "cssClass": "normal"
      },
      "componentId": ""
   }

Gesamtaufwand aus der Liste Zuweisungen ausblenden

Wenn Sie den Gesamtaufwand im Steuerelement "Zuweisungen" nicht anzeigen müssen, können Sie ihn ausblenden, indem Sie die Eigenschaft HideTotalEffort zur Komponente assignmentsList hinzufügen:

Gesamtaufwand aus der Liste Zuweisungen ausblenden

Gesamtaufwand aus der Liste Zuweisungen ausblenden

Weitere Informationen zur Konfiguration der Zuweisungssteuerung finden Sie in einem separaten Artikel.

Felder und Registerkarten bei Bedingung ausblenden

Sie können Felder in der Detailansicht abhängig von der Benutzerrolle oder von Werten in anderen Feldern anzeigen.

❗️ Sie impliziert keine Erlaubnis. Technisch gesehen können alle Felder über die API gelesen und geschrieben werden, und alle Felder können auf Tafeln angezeigt werden. Dies dient nur der Vereinfachung oder Entrümpelung der Ansicht für eine bestimmte Rolle, nicht der Festlegung von Berechtigungen oder der Zugriffskontrolle.

📘 Wird visibilityConfig mehrfach angegeben, werden sie über AND miteinander kombiniert, d.h. ein Benutzer muss sowohl die angegebenen Rollen als Benutzer als auch eine der angegebenen Rollen als Projektzuordnung haben.

Basierend auf der Projektrolle des Benutzers

"visibilityConfig": {
  "showForProjectRoles": [
     "Support Person",
     "Top Manager"
  ]
}

Basierend auf der Standardbenutzerrolle

"visibilityConfig": {
  "showForUserRoles": [
     "Developer",
     "QA Engineer"
  ]
}

Basierend auf Werten in anderen Feldern

"visibilityConfig": {
    "entityQuerySelector": "<any selector>"
}

Jeder APIv2 Selektor kann verwendet werden.

Zum Beispiel:

  • Nur anzeigen, wenn das benutzerdefinierte Feld “checkboxCF” wahr ist: checkboxCF==true
  • Nur anzeigen, wenn Team mit ID 44 zugeordnet ist: assignedTeams.where( team.id==44 ).count()>0
  • Wird nur für den nicht endgültigen Entitätsstatus angezeigt: entityState.isFinal==false

Die Registerkarte "Beschreibung" wird nur angezeigt, wenn der Entität ein Team mit id=185765 zugeordnet ist:

Registerkarte "Beschreibung" nur, wenn Team mit id=185765 der Entität zugeordnet ist

Registerkarte "Beschreibung" nur, wenn Team mit id=185765 der Entität zugeordnet ist

Basierend auf den Praktiken des Prozesses

Wenn die entsprechende Praxis ausgeschaltet ist, wird das Element nicht angezeigt:

"visibilityConfig": {
                      "requiredPractices": [
                        "Test Cases"
                      ]
                    }

praxis der "Zeiterfassung" - "Zeiten",
Praxis der "Fehlerverfolgung" - "Fehler",
Praxis der "Anfragen" - "Help Desk",
Praxis der "Testfälle", "Versionskontrolle", "Iterationen", "Funktionen", "Epics" und "Portfolio Epics".

die Praxis ist ausgeschaltet