diff --git a/plugins/bazaar/README.md b/plugins/bazaar/README.md index bd4589f2d3..9b5fb466df 100644 --- a/plugins/bazaar/README.md +++ b/plugins/bazaar/README.md @@ -127,6 +127,7 @@ The other fields are: - project - link Bazaar project to existing entity in the catalog - community link - link to where the project members can communicate, e.g. Teams or Discord link +- docs link - link to visit the documentation of the project - start date - end date diff --git a/plugins/bazaar/src/components/AddProjectDialog/AddProjectDialog.tsx b/plugins/bazaar/src/components/AddProjectDialog/AddProjectDialog.tsx index 45392206d9..c07ae0cfd1 100644 --- a/plugins/bazaar/src/components/AddProjectDialog/AddProjectDialog.tsx +++ b/plugins/bazaar/src/components/AddProjectDialog/AddProjectDialog.tsx @@ -45,6 +45,7 @@ export const AddProjectDialog = ({ title: '', community: '', description: '', + docs: '', status: 'proposed' as Status, size: 'medium' as Size, responsible: '', diff --git a/plugins/bazaar/src/components/EntityBazaarInfoContent/EntityBazaarInfoContent.tsx b/plugins/bazaar/src/components/EntityBazaarInfoContent/EntityBazaarInfoContent.tsx index e0a3a9b881..0c7b0bb126 100644 --- a/plugins/bazaar/src/components/EntityBazaarInfoContent/EntityBazaarInfoContent.tsx +++ b/plugins/bazaar/src/components/EntityBazaarInfoContent/EntityBazaarInfoContent.tsx @@ -26,6 +26,7 @@ import ChatIcon from '@material-ui/icons/Chat'; import PersonAddIcon from '@material-ui/icons/PersonAdd'; import DashboardIcon from '@material-ui/icons/Dashboard'; import LinkOffIcon from '@material-ui/icons/LinkOff'; +import Description from '@material-ui/icons/Description'; import { EditProjectDialog } from '../EditProjectDialog'; import { useApi, identityApiRef } from '@backstage/core-plugin-api'; import { BazaarProject, Member } from '../../types'; @@ -128,6 +129,12 @@ export const EntityBazaarInfoContent = ({ href: bazaarProject?.community, disabled: bazaarProject?.community === '' || !isMember, }, + { + label: 'Docs', + icon: , + href: bazaarProject?.docs, + disabled: bazaarProject?.docs === null || bazaarProject?.docs === '', + }, ]; const handleEditClose = () => { diff --git a/plugins/bazaar/src/components/HomePageBazaarInfoCard/HomePageBazaarInfoCard.tsx b/plugins/bazaar/src/components/HomePageBazaarInfoCard/HomePageBazaarInfoCard.tsx index 7c6491c8a5..782b7d3c67 100644 --- a/plugins/bazaar/src/components/HomePageBazaarInfoCard/HomePageBazaarInfoCard.tsx +++ b/plugins/bazaar/src/components/HomePageBazaarInfoCard/HomePageBazaarInfoCard.tsx @@ -34,6 +34,7 @@ import InsertLinkIcon from '@material-ui/icons/InsertLink'; import DashboardIcon from '@material-ui/icons/Dashboard'; import CloseIcon from '@material-ui/icons/Close'; import LinkOffIcon from '@material-ui/icons/LinkOff'; +import Description from '@material-ui/icons/Description'; import { EditProjectDialog } from '../EditProjectDialog'; import ExitToAppIcon from '@material-ui/icons/ExitToApp'; import { @@ -197,6 +198,13 @@ export const HomePageBazaarInfoCard = ({ href: bazaarProject.value?.community, disabled: !bazaarProject.value?.community || !isMember, }, + { + label: 'Docs', + icon: , + href: bazaarProject.value?.docs, + disabled: + bazaarProject.value?.docs === null || bazaarProject.value?.docs === '', + }, ]; const handleUnlinkSubmit = async () => { diff --git a/plugins/bazaar/src/components/InputField/InputField.tsx b/plugins/bazaar/src/components/InputField/InputField.tsx index a2c8ca4ac4..a926ac41ad 100644 --- a/plugins/bazaar/src/components/InputField/InputField.tsx +++ b/plugins/bazaar/src/components/InputField/InputField.tsx @@ -30,7 +30,7 @@ type Rules = { }; type Props = { - inputType: 'description' | 'community' | 'responsible' | 'title'; + inputType: 'description' | 'community' | 'responsible' | 'title' | 'docs'; error?: FieldError | undefined; control: Control; helperText?: string; diff --git a/plugins/bazaar/src/components/ProjectDialog/ProjectDialog.tsx b/plugins/bazaar/src/components/ProjectDialog/ProjectDialog.tsx index ec7312576d..3a0d156fd8 100644 --- a/plugins/bazaar/src/components/ProjectDialog/ProjectDialog.tsx +++ b/plugins/bazaar/src/components/ProjectDialog/ProjectDialog.tsx @@ -144,6 +144,18 @@ export const ProjectDialog = ({ placeholder="Community link to e.g. Teams or Discord" /> + + diff --git a/plugins/bazaar/src/types.ts b/plugins/bazaar/src/types.ts index 055ec2fcab..7ca8e07aad 100644 --- a/plugins/bazaar/src/types.ts +++ b/plugins/bazaar/src/types.ts @@ -39,6 +39,7 @@ export type BazaarProject = { startDate?: string | null; endDate?: string | null; responsible: string; + docs: string; }; export type FormValues = { @@ -50,4 +51,5 @@ export type FormValues = { startDate?: string | null; endDate?: string | null; responsible: string; + docs: string; }; diff --git a/plugins/bazaar/src/util/parseMethods.ts b/plugins/bazaar/src/util/parseMethods.ts index b93f70c9f1..3be2be2aa9 100644 --- a/plugins/bazaar/src/util/parseMethods.ts +++ b/plugins/bazaar/src/util/parseMethods.ts @@ -30,6 +30,7 @@ export const parseBazaarProject = (metadata: any): BazaarProject => { startDate: metadata.start_date, endDate: metadata.end_date, responsible: metadata.responsible, + docs: metadata.docs, } as BazaarProject; };