Update README.md with additional SonarCloud badges and improve CI workflow for coverage reporting
ci / build-backend (push) Successful in 2m34s
ci / build-frontend (push) Successful in 41s
ci / tests (push) Successful in 2m55s
ci / sonar (push) Successful in 5m21s

Enhanced the README.md file by adding new SonarCloud badges for coverage, bugs, code smells, security rating, and maintainability rating. Updated the CI workflow to remove coverage collection from the test step, as it is now handled by SonarCloud, streamlining the process and ensuring accurate badge representation.
This commit is contained in:
Leonid Pershin
2026-07-27 03:19:18 +03:00
parent 464355434b
commit 790d01b587
22 changed files with 2891 additions and 99 deletions
+7
View File
@@ -129,6 +129,7 @@ export const en = {
parts: 'Parts',
units: 'Units',
addShow: 'Add show',
pickShow: 'Pick a show',
empty: 'Collection is empty',
orderHint: 'Drag to set the order of the parts — that is the order they air in.',
},
@@ -295,6 +296,12 @@ export const en = {
originalName: 'Original name (eng)',
kind: 'Kind',
kinds: { Series: 'Series', Single: 'Movie', Interstitial: 'Clip' },
pickerPlaceholder: 'Pick a show',
pickerSearch: 'Search by name…',
pickerEmpty: 'Nothing found',
pickerCreate: 'Create series “{{name}}”',
pickerCreateSingleHint: 'Create as a movie',
pickerCreated: 'Show created',
audience: 'Rating',
audienceUnset: 'Not rated',
audiences: {
+7
View File
@@ -129,6 +129,7 @@ export const ru = {
parts: 'Части',
units: 'Единиц',
addShow: 'Добавить шоу',
pickShow: 'Выберите шоу',
empty: 'Коллекция пуста',
orderHint: 'Порядок частей задаётся перетаскиванием — в нём они и пойдут в эфир.',
},
@@ -296,6 +297,12 @@ export const ru = {
originalName: 'Оригинальное название (eng)',
kind: 'Тип',
kinds: { Series: 'Сериал', Single: 'Полнометражка', Interstitial: 'Ролик' },
pickerPlaceholder: 'Выберите шоу',
pickerSearch: 'Поиск по названию…',
pickerEmpty: 'Ничего не найдено',
pickerCreate: 'Создать сериал «{{name}}»',
pickerCreateSingleHint: 'Создать как полнометражку',
pickerCreated: 'Шоу создано',
audience: 'Рейтинг',
audienceUnset: 'Не проставлен',
audiences: {
+24
View File
@@ -0,0 +1,24 @@
import * as PopoverPrimitive from '@radix-ui/react-popover'
import { type ComponentPropsWithoutRef, type ElementRef, forwardRef } from 'react'
import { cn } from '@/shared/lib/cn'
export const Popover = PopoverPrimitive.Root
export const PopoverTrigger = PopoverPrimitive.Trigger
export const PopoverAnchor = PopoverPrimitive.Anchor
export const PopoverContent = forwardRef<
ElementRef<typeof PopoverPrimitive.Content>,
ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>
>(({ className, align = 'start', sideOffset = 4, ...props }, ref) => (
<PopoverPrimitive.Portal>
<PopoverPrimitive.Content
ref={ref}
align={align}
sideOffset={sideOffset}
// z-50 — как у диалога: поповер живёт и внутри диалогов, и должен быть над ними.
className={cn('crt-panel z-50 rounded-sm outline-none', className)}
{...props}
/>
</PopoverPrimitive.Portal>
))
PopoverContent.displayName = PopoverPrimitive.Content.displayName