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
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:
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"
"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.