Add document type field

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
This commit is contained in:
Jonathan
2025-06-02 20:40:38 +02:00
committed by Sacha Al Himdani
parent 7a65ec8672
commit 7d2d26aab5
20 changed files with 166 additions and 253 deletions

View File

@@ -0,0 +1,14 @@
type Translator = (s: string) => string;
export const documentTypes = ["OTHER", "ISMS", "POLICY"] as const;
export function getDocumentTypeLabel(__: Translator, type: string) {
switch (type) {
case "OTHER":
return __("Other");
case "ISMS":
return __("ISMS");
case "POLICY":
return __("Policy");
}
}

View File

@@ -1,5 +1,5 @@
export { objectKeys, objectEntries } from "./object";
export { sprintf, faviconUrl } from "./string";
export { sprintf, faviconUrl, slugify } from "./string";
export {
getTreatment,
getRiskImpacts,
@@ -13,3 +13,4 @@ export { getMeasureStateLabel, measureStates } from "./measure";
export { getRole, getRoles, peopleRoles } from "./people";
export { certificationCategoryLabel, certifications } from "./certifications";
export { availableFrameworks } from "./frameworks";
export { getDocumentTypeLabel, documentTypes } from "./documents";

View File

@@ -20,3 +20,13 @@ export function faviconUrl(url?: string | null): string | null {
return null;
}
}
export function slugify(str: string): string {
return str
.normalize("NFD") // split an accented letter in the base letter and the acent
.replace(/[\u0300-\u036f]/g, "") // remove all previously split accents
.toLowerCase()
.trim()
.replace(/[^a-z0-9 ]/g, "") // remove all chars not letters, numbers and spaces (to be replaced)
.replace(/\s+/g, "-");
}