Make it possible to define control buttons text (Back, Create, Review) per template

Signed-off-by: Bogdan Nechyporenko <bnechyporenko@bol.com>
This commit is contained in:
Bogdan Nechyporenko
2023-10-16 14:47:46 +02:00
parent b5dcf6b120
commit 4db0d9903c
4 changed files with 36 additions and 1 deletions
+10
View File
@@ -44,6 +44,15 @@ export interface TaskStep {
name: string;
}
// @public
export interface TemplateConfigurationsV1beta3 extends JsonObject {
buttonLabels?: {
backButtonText?: string;
createButtonText?: string;
reviewButtonText?: string;
};
}
// @public
export interface TemplateEntityStepV1beta3 extends JsonObject {
// (undocumented)
@@ -66,6 +75,7 @@ export interface TemplateEntityV1beta3 extends Entity {
kind: 'Template';
spec: {
type: string;
configurations?: TemplateConfigurationsV1beta3;
parameters?: TemplateParametersV1beta3 | TemplateParametersV1beta3[];
steps: Array<TemplateEntityStepV1beta3>;
output?: {
@@ -46,6 +46,9 @@ export interface TemplateEntityV1beta3 extends Entity {
*/
type: string;
/**
* Template specific configurations.
*/
configurations?: TemplateConfigurationsV1beta3;
/**
@@ -70,10 +73,27 @@ export interface TemplateEntityV1beta3 extends Entity {
};
}
export interface TemplateConfigurationsV1beta3 {
/**
* The configuration of the template.
*
* @public
*/
export interface TemplateConfigurationsV1beta3 extends JsonObject {
/**
* Overrides default buttons' text
*/
buttonLabels?: {
/**
* The text for the button which leads to the previous template page
*/
backButtonText?: string;
/**
* The text for the button which starts the execution of the template
*/
createButtonText?: string;
/**
* The text for the button which opens template's review/summary
*/
reviewButtonText?: string;
};
}
@@ -25,6 +25,7 @@ import { ScaffolderStep } from '@backstage/plugin-scaffolder-react';
import { ScaffolderTaskOutput } from '@backstage/plugin-scaffolder-react';
import { SetStateAction } from 'react';
import { TaskStep } from '@backstage/plugin-scaffolder-common';
import { TemplateConfigurationsV1beta3 } from '@backstage/plugin-scaffolder-common';
import { TemplateEntityV1beta3 } from '@backstage/plugin-scaffolder-common';
import { TemplateParameterSchema } from '@backstage/plugin-scaffolder-react';
import { UIOptionsType } from '@rjsf/utils';
@@ -183,6 +184,7 @@ export type StepperProps = {
onCreate: (values: Record<string, JsonValue>) => Promise<void>;
components?: {
ReviewStateComponent?: (props: ReviewStateProps) => JSX.Element;
backButtonText?: ReactNode;
createButtonText?: ReactNode;
reviewButtonText?: ReactNode;
};
@@ -303,6 +305,7 @@ export const useTemplateParameterSchema: (templateRef: string) => {
// @alpha
export const useTemplateSchema: (manifest: TemplateParameterSchema) => {
steps: ParsedTemplateSchema[];
configurations?: TemplateConfigurationsV1beta3 | undefined;
};
// @alpha (undocumented)
+2
View File
@@ -19,6 +19,7 @@ import { PropsWithChildren } from 'react';
import { default as React_2 } from 'react';
import { TaskSpec } from '@backstage/plugin-scaffolder-common';
import { TaskStep } from '@backstage/plugin-scaffolder-common';
import { TemplateConfigurationsV1beta3 } from '@backstage/plugin-scaffolder-common';
// @public
export type Action = {
@@ -317,6 +318,7 @@ export type TaskStream = {
export type TemplateParameterSchema = {
title: string;
description?: string;
configurations?: TemplateConfigurationsV1beta3;
steps: Array<{
title: string;
description?: string;