Dela via


Lägga till anpassade objektinställningar

Objektinställningar är information som är associerad med ett visst objekt, inklusive egenskaper som uppdateras ofta och de resurser som är kopplade till objektet. De här inställningarna visas för att tillhandahålla nödvändig information om objektmetadata till användarna, så att de enkelt kan läsa värdena för objektinställningarna.

Objektmanifest

För att kunna lägga till anpassade objektinställningar måste du först inkludera getItemSettings under itemSettings i klientdelsobjektmanifestet:

    "itemSettings": {
      "getItemSettings": {
            "action": "getItemSettings"
        },
      "schedule": {
        "itemJobType": "ScheduledJob",
        "refreshType": "Refresh"
      },
      "recentRun": {
        "useRecentRunsComponent": true
      }
    },
  • getItemSettings måste innehålla en åtgärd sträng.
  • Åtgärden är namnet på motsvarande åtgärd som returnerar listan med anpassade objektinställningar.

Exempel på hur du lägger till flikar för anpassade objekt

Skärmbild av ett objekts anpassade inställningar. Fliken för anpassat objekt är markerad med rött bildrutenummer 1. Den inlästa iframe som läses in efter val av den här fliken är markerad i röd ruta nummer 2 och visas till höger på skärmen.

Hantera åtgärden

I det här exemplet listar vi två anpassade flikar i index.worker.ts fil:

workloadClient.action.onAction(async function ({ action, data }) {
    switch (action) {
        case 'getItemSettings': {
            return [
                {
                    name: 'customItemSettings',
                    displayName: 'Custom item Settings',
                    workloadSettingLocation: {
                        workloadName: sampleWorkloadName,
                        route: 'custom-item-settings',
                    },
                    searchTokenMatchesBySection: {
                        'custom search': [
                            'key words for search',
                            'custom item'
                        ],
                    },
                },
                {
                    name: 'customItemSettings2',
                    displayName: 'Custom item Settings2',
                    workloadSettingLocation: {
                        workloadName: sampleWorkloadName,
                        route: 'custom-item-settings2',
                    },
                },
            ];
        }
        default:
            throw new Error('Unknown action received');
    }
});

Vi returnerar en matris med definierade anpassade objekt. Var och en innehåller:

  • namn (sträng): En unik identifierare för inställningen.
  • displayName (sträng): Den visade strängen, som ska lokaliseras (vi kan se det visade namnet på det första objektet - 1).
  • arbetsbelastningsinställningsplats (objekt):
    • workloadName (sträng): Arbetsbelastningens namn.
    • rutt (objekt): När en specifik inställningsflik klickas i objektinställningarna läses en panel-iframe in i det högra innehållsområdet för att läsa in den specifika rutt som tillhör arbetsbelastningen (vi kan se den i 2).
  • searchTokenMatchesBySection (objekt): Ett valfritt objekt som tar emot ett avsnittsnamn som en nyckel och en matris med nyckelord som värde. Nyckeln utlöses när något av matrisorden genomsöks. Exempel: Skärmbild av ett exempel på söktoken. Sökrutan är markerad med rött bildrutenummer 1. Avsnittet med resultatalternativ för sökningen är markerat med rött bildrutenummer 2. Motsvarande flik i resultatet är markerad med rött bildrutenummer 3. I det här exemplet började vi skriva ett av nyckelordsvärdena (1) och det utlöste avsnittsnamnet som ett resultatalternativ (2). Om du klickar på det här alternativet navigerar vi till motsvarande anpassade flik (3). Det här fältet är anpassat för och kan användas för lokalanpassning.

Iframe-routningsdefinition

För att kunna läsa in en iframe ska en komponent definieras och sedan läggas till i appvägen:

Komponentdefinition

export function CustomItemSettings2() {
    return (
      <div>
        You can have additional tabs for item settings.
      </div>
    );
  }

Routerexempel

export function App({ history, workloadClient }: AppProps) {
    return <Router history={history}>
        <Switch>
            ...
            <Route path="/custom-item-settings">
                <CustomItemSettings workloadClient={workloadClient}  />
            </Route>
            <Route path="/custom-item-settings2">
                <CustomItemSettings2 />
            </Route>
        </Switch>
    </Router>;
}

Anpassa sidan "Om"

Skärmbild av en om anpassade inställningar. Vi kan se att den aktuella valda fliken i inställningarna är fliken om, som är markerad i svart ram. Till höger ser vi den inlästa fliken. Längst upp är standardinställningen för inställningar, som innehåller namn, beskrivning, plats och information. Under standardavsnittet läser vi in den anpassade om avsnitts-iframe, som är markerad i röd ram.

"Sidan Om för objekt har stöd för att lägga till arbetsbelastningsspecifikt innehåll med hjälp av hybridvyn (standard om inställningar och anpassad iframe för arbetsbelastning). För att uppnå det bör du lägga till en annan anpassad objektinställning.

workloadClient.action.onAction(async function ({ action, data }) {
    switch (action) {
        case 'getItemSettings': {
            return [
                {
                    name: 'about',
                    displayName: 'About',
                    workloadSettingLocation: {
                        workloadName: sampleWorkloadName,
                        route: 'custom-about',
                    },
                    workloadIframeHeight: '1000px'
                },
                ...
            ];
        }
        default:
            throw new Error('Unknown action received');
    }
});
  • namn : Måste definieras som gällande.
  • displayName : Måste definieras som Om.
  • rutt : Behövs för att lägga till den anpassade, Om-komponent som laddas i iframen, enligt bilden.
  • workloadIframeHeight (sträng): Vi kan ange iframe-höjden. Iframe-höjden ska anges som en sträng (i bildpunkter). Om höjden inte anges, ställs iframe-höjden in på ett standardvärde av 102vh.